Documentation
¶
Index ¶
- Constants
- Variables
- func Cleanup(h *Harness)
- func ConditionExists(d *v1alpha1.Device, condType v1alpha1.ConditionType, ...) bool
- func ConditionStatusExists(conditions []v1alpha1.Condition, condType v1alpha1.ConditionType, ...) bool
- func ExecuteReadOnlyResourceOperations(harness *Harness, resourceTypes []string, shouldSucceed bool) error
- func ExecuteResourceOperations(ctx context.Context, harness *Harness, resourceTypes []string, ...) error
- func GetBaseDiskPath() (string, error)
- func GetDeviceConfig[T any](device *v1alpha1.Device, configType v1alpha1.ConfigProviderType, ...) (T, error)
- func GetRenderedVersion(device *v1alpha1.Device) (int, error)
- func GetWorkerContext() context.Context
- func GinkgoBeforeSuite()
- func HaveReason(expected string) types.GomegaMatcher
- func HaveStatus(expected v1alpha1.ConditionStatus) types.GomegaMatcher
- func RemoveVMFromPool(workerID int) error
- func SetupVMForWorker(workerID int, tempDir string, sshPortBase int) (vm.TestVMInterface, error)
- type ConsoleSession
- type GitServerConfig
- type Harness
- func (h *Harness) AddConfigToDeviceWithRetries(deviceId string, config v1alpha1.ConfigProviderSpec) error
- func (h *Harness) AddLabelsToYAML(yamlContent string, addLabels map[string]string) (string, error)
- func (h *Harness) ApiEndpoint() string
- func (h *Harness) ApplyResource(yamlPath string) (string, error)
- func (h *Harness) ApproveEnrollment(id string, approval *v1alpha1.EnrollmentRequestApproval)
- func (h *Harness) CLI(args ...string) (string, error)
- func (h *Harness) CLIWithEnvAndShell(env map[string]string, shellCommand string) (string, error)
- func (h *Harness) CLIWithStdin(stdin string, args ...string) (string, error)
- func (h *Harness) ChangeK8sContext(ctx context.Context, k8sContext string) (string, error)
- func (h *Harness) CheckApplicationComposeFileExist(applicationName string, ComposeFile string) error
- func (h *Harness) CheckApplicationDirectoryExist(applicationName string) error
- func (h Harness) CheckApplicationStatus(deviceId string, applicationName string) (v1alpha1.ApplicationStatusType, error)
- func (h *Harness) CheckDeviceStatus(deviceId string, status v1alpha1.DeviceSummaryStatusType) (*v1alpha1.Device, error)
- func (h *Harness) CheckEnvInjectedToApplication(envVarName string, image string) (string, error)
- func (h *Harness) CheckRunningContainers() (string, error)
- func (h *Harness) CleanUpAllTestResources() error
- func (h *Harness) CleanUpResource(resourceType string, resourceName string) (string, error)
- func (h *Harness) CleanUpTestResources(resourceTypes ...string) error
- func (h *Harness) Cleanup(printConsole bool)
- func (h *Harness) CleanupClusterRoles(ctx context.Context, kubernetesClient kubernetes.Interface, ...)
- func (h *Harness) CleanupGitRepositories() error
- func (h *Harness) CleanupRoles(ctx context.Context, kubernetesClient kubernetes.Interface, roles []string, ...)
- func (h *Harness) CloneGitRepositoryFromServer(repoName, localPath string) error
- func (h *Harness) CreateClusterRole(ctx context.Context, kubernetesClient kubernetes.Interface, ...) (*rbacv1.ClusterRole, error)
- func (h *Harness) CreateClusterRoleBinding(ctx context.Context, kubernetesClient kubernetes.Interface, ...) (*rbacv1.ClusterRoleBinding, error)
- func (h *Harness) CreateDeviceConfigInGitRepo(repoName, deviceName string, deviceSpec v1alpha1.DeviceSpec) error
- func (h *Harness) CreateFleetConfigInGitRepo(repoName, fleetName string, fleetSpec v1alpha1.FleetSpec) error
- func (h *Harness) CreateFleetDeviceSpec(deviceImageTag string, additionalConfigs ...v1alpha1.ConfigProviderSpec) (v1alpha1.DeviceSpec, error)
- func (h *Harness) CreateGitRepository(repoName string, repositorySpec v1alpha1.RepositorySpec) error
- func (h *Harness) CreateGitRepositoryOnServer(repoName string) error
- func (h *Harness) CreateGitRepositoryWithContent(repoName, filePath, content string, repositorySpec v1alpha1.RepositorySpec) error
- func (h *Harness) CreateOrUpdateTestFleet(testFleetName string, fleetSpecOrSelector interface{}, ...) error
- func (h *Harness) CreateRepository(repositorySpec v1alpha1.RepositorySpec, metadata v1alpha1.ObjectMeta) error
- func (h *Harness) CreateResource(resourceType string) (string, string, []byte, error)
- func (h *Harness) CreateResourceSync(name, repoName string, spec v1alpha1.ResourceSyncSpec) error
- func (h *Harness) CreateRole(ctx context.Context, kubernetesClient kubernetes.Interface, flightCtlNs string, ...) (*rbacv1.Role, error)
- func (h *Harness) CreateRoleBinding(ctx context.Context, kubernetesClient kubernetes.Interface, flightCtlNs string, ...) (*rbacv1.RoleBinding, error)
- func (h *Harness) CreateTestFleetWithConfig(testFleetName string, testFleetSelector v1alpha1.LabelSelector, ...) error
- func (h *Harness) DeleteClusterRole(ctx context.Context, client kubernetes.Interface, clusterRoleName string) error
- func (h *Harness) DeleteClusterRoleBinding(ctx context.Context, client kubernetes.Interface, ...) error
- func (h *Harness) DeleteFleet(testFleetName string) error
- func (h *Harness) DeleteGitRepositoryOnServer(repoName string) error
- func (h *Harness) DeleteRepository(name string) error
- func (h *Harness) DeleteResourceSync(name string) error
- func (h *Harness) DeleteRole(ctx context.Context, client kubernetes.Interface, namespace string, ...) error
- func (h *Harness) DeleteRoleBinding(ctx context.Context, client kubernetes.Interface, namespace string, ...) error
- func (h *Harness) EnableTPMForDevice() error
- func (h *Harness) EnrollAndWaitForOnlineStatus(labels ...map[string]string) (string, *v1alpha1.Device)
- func (h *Harness) EnsureDeviceContents(deviceId string, description string, condition func(*v1alpha1.Device) bool, ...)
- func (h *Harness) FixNetworkFailure() error
- func (h *Harness) FixNetworkFailureForCLI(ip, port string) error
- func (h *Harness) GetAgentVersion() (string, error)
- func (h *Harness) GetAgentVersionFromLogs() (string, error)
- func (h *Harness) GetCertificateSigningRequestByYaml(csrYaml string) v1alpha1.CertificateSigningRequest
- func (h *Harness) GetCurrentDeviceGeneration(deviceId string) (deviceRenderedVersionInt int64, err error)
- func (h *Harness) GetCurrentDeviceRenderedVersion(deviceId string) (int, error)
- func (h *Harness) GetDefaultK8sContext() (string, error)
- func (h *Harness) GetDevice(deviceId string) (*v1alpha1.Device, error)
- func (h *Harness) GetDeviceByYaml(deviceYaml string) v1alpha1.Device
- func (h *Harness) GetDeviceFromTestContext() (string, *v1alpha1.Device, bool)
- func (h *Harness) GetDeviceGitConfig(device *v1alpha1.Device, configName string) (v1alpha1.GitConfigProviderSpec, error)
- func (h *Harness) GetDeviceHttpConfig(device *v1alpha1.Device, configName string) (v1alpha1.HttpConfigProviderSpec, error)
- func (h *Harness) GetDeviceInlineConfig(device *v1alpha1.Device, configName string) (v1alpha1.InlineConfigProviderSpec, error)
- func (h *Harness) GetDeviceOsImage(device *v1alpha1.Device) (image string, err error)
- func (h *Harness) GetDeviceSystemInfo(deviceID string) *v1alpha1.DeviceSystemInfo
- func (h *Harness) GetDeviceWithStatusSummary(enrollmentID string) (v1alpha1.DeviceSummaryStatusType, error)
- func (h *Harness) GetDeviceWithStatusSystem(enrollmentID string) (*apiclient.GetDeviceResponse, error)
- func (h *Harness) GetDeviceWithUpdateStatus(enrollmentID string) (v1alpha1.DeviceUpdatedStatusType, error)
- func (h *Harness) GetEnrollmentIDFromServiceLogs(serviceName string) string
- func (h *Harness) GetEnrollmentRequestByYaml(erYaml string) *v1alpha1.EnrollmentRequest
- func (h *Harness) GetFleet(fleetName string) (*v1alpha1.Fleet, error)
- func (h *Harness) GetFleetByYaml(fleetYaml string) v1alpha1.Fleet
- func (h *Harness) GetFlightctlAgentLogs() (string, error)
- func (h *Harness) GetFlightctlPath() string
- func (h *Harness) GetGitRepoURL(repoName string) (string, error)
- func (h *Harness) GetGitServerConfig() GitServerConfig
- func (h *Harness) GetK8sApiEndpoint(ctx context.Context, k8sContext string) (string, error)
- func (h *Harness) GetRepository(repositoryName string) (*v1alpha1.Repository, error)
- func (h *Harness) GetRepositoryByYaml(repoYaml string) v1alpha1.Repository
- func (h *Harness) GetResourceSyncByYaml(rSyncYaml string) v1alpha1.ResourceSync
- func (h *Harness) GetResourcesByName(resourceType string, resourceName ...string) (string, error)
- func (h *Harness) GetRolloutStatus(fleetName string) (v1alpha1.Condition, error)
- func (h *Harness) GetSelectedDevicesForBatch(fleetName string) ([]*v1alpha1.Device, error)
- func (h *Harness) GetServiceLogs(serviceName string) (string, error)
- func (h *Harness) GetTestContext() context.Context
- func (h *Harness) GetTestDataFromContext(key string) (interface{}, bool)
- func (h *Harness) GetTestIDFromContext() string
- func (h *Harness) GetUnavailableDevicesPerGroup(fleetName string, groupBy []string) (map[string][]*v1alpha1.Device, error)
- func (h *Harness) GetUpdatedDevices(fleetName string) ([]*v1alpha1.Device, error)
- func (h *Harness) GetVMFromPool(workerID int) (vm.TestVMInterface, error)
- func (h *Harness) GetVersionsFromCLI() (clientVersion, serverVersion, agentVersion string, err error)
- func (h *Harness) ManageResource(operation, resource string, args ...string) (string, error)
- func (h *Harness) MarkClientAccessTokenExpired(filePath string) error
- func (h *Harness) NewConsoleSession(deviceID string) *ConsoleSession
- func (h *Harness) PrepareNextDeviceGeneration(deviceId string) (int64, error)
- func (h *Harness) PrepareNextDeviceVersion(deviceId string) (int, error)
- func (h *Harness) PushContentToGitServerRepo(repoName, filePath, content, commitMessage string) error
- func (h *Harness) ReadClientConfig(filePath string) (*client.Config, error)
- func (h *Harness) ReadPrimaryVMAgentLogs(since string, unit string) (string, error)
- func (h *Harness) RegistryEndpoint() string
- func (h *Harness) ReloadFlightCtlAgent() error
- func (h *Harness) ReplaceRepository(repositorySpec v1alpha1.RepositorySpec, metadata v1alpha1.ObjectMeta) error
- func (h *Harness) ReplaceResourceSync(name, repoName string, spec v1alpha1.ResourceSyncSpec) error
- func (h *Harness) ReplaceVariableInString(s string, old string, new string) string
- func (h *Harness) ResetAgent() error
- func (h *Harness) RestartFlightCtlAgent() error
- func (h *Harness) RunConsoleCommand(deviceID string, flags []string, cmd ...string) (string, error)
- func (h *Harness) RunGetDevices(args ...string) (string, error)
- func (h *Harness) RunGetEvents(args ...string) (string, error)
- func (h *Harness) RunInteractiveCLI(args ...string) (io.WriteCloser, io.ReadCloser, error)
- func (h *Harness) SH(command string, args ...string) (string, error)
- func (h *Harness) SHWithStdin(stdin, command string, args ...string) (string, error)
- func (h *Harness) SetAgentConfig(cfg *agentcfg.Config) error
- func (h *Harness) SetLabelsForDevice(deviceId string, labels map[string]string) error
- func (h *Harness) SetLabelsForDeviceMetadata(metadata *v1alpha1.ObjectMeta, labels map[string]string)
- func (h *Harness) SetLabelsForDevicesByIndex(deviceIDs []string, labelsList []map[string]string, fleetName string) error
- func (h *Harness) SetLabelsForFleetMetadata(metadata *v1alpha1.ObjectMeta, labels map[string]string)
- func (h *Harness) SetLabelsForRepositoryMetadata(metadata *v1alpha1.ObjectMeta, labels map[string]string)
- func (h *Harness) SetLabelsForResource(metadata *v1alpha1.ObjectMeta, labels map[string]string)
- func (h *Harness) SetTestContext(ctx context.Context)
- func (h *Harness) SetupDeviceWithTPM(workerID int) error
- func (h *Harness) SetupVMFromPoolAndStartAgent(workerID int) error
- func (h *Harness) SimulateNetworkFailure() error
- func (h *Harness) SimulateNetworkFailureForCLI(ip, port string) (func() error, error)
- func (h *Harness) StartFlightCtlAgent() error
- func (h *Harness) StartVMAndEnroll() string
- func (h *Harness) StopFlightCtlAgent() error
- func (h *Harness) StoreDeviceInTestContext(deviceId string, device *v1alpha1.Device)
- func (h *Harness) StoreTestDataInContext(key string, value interface{})
- func (h *Harness) TestEnrollmentApproval(labels ...map[string]string) *v1alpha1.EnrollmentRequestApproval
- func (h *Harness) UpdateApplication(withRetries bool, deviceId string, appName string, appProvider any, ...) error
- func (h *Harness) UpdateClusterRole(ctx context.Context, kubernetesClient kubernetes.Interface, ...) (*rbacv1.ClusterRole, error)
- func (h *Harness) UpdateDevice(deviceId string, updateFunction func(*v1alpha1.Device)) error
- func (h *Harness) UpdateDeviceConfigWithRetries(deviceId string, configs []v1alpha1.ConfigProviderSpec, ...) error
- func (h *Harness) UpdateDeviceWithRetries(deviceId string, updateFunction func(*v1alpha1.Device)) error
- func (h *Harness) UpdateFleet(fleetName string, updateFunc func(*v1alpha1.Fleet)) error
- func (h *Harness) UpdateFleetWithRetries(fleetName string, updateFunction func(*v1alpha1.Fleet))
- func (h *Harness) UpdateGitServerRepository(repoName, filePath, content, commitMessage string) error
- func (h *Harness) UpdateRole(ctx context.Context, kubernetesClient kubernetes.Interface, flightCtlNs string, ...) (*rbacv1.Role, error)
- func (h *Harness) VerifyDeviceTPMAttestationData(device *v1alpha1.Device) error
- func (h *Harness) VerifyEnrollmentTPMAttestationData(systemInfo v1alpha1.DeviceSystemInfo) error
- func (h *Harness) VerifyTPMFunctionality() error
- func (h *Harness) WaitForBatchStart(fleetName string, batchNumber int)
- func (h *Harness) WaitForBootstrapAndUpdateToVersion(deviceId string, version string) (*v1alpha1.Device, string, error)
- func (h *Harness) WaitForClusterRegistered(deviceId string, timeout time.Duration) error
- func (h *Harness) WaitForDeviceContents(deviceId string, description string, condition func(*v1alpha1.Device) bool, ...)
- func (h *Harness) WaitForDeviceNewGeneration(deviceId string, newGeneration int64) (err error)
- func (h *Harness) WaitForDeviceNewRenderedVersion(deviceId string, newRenderedVersionInt int) (err error)
- func (h *Harness) WaitForEnrollmentRequest(id string) *v1alpha1.EnrollmentRequest
- func (h *Harness) WaitForFileInDevice(filePath string, timeout string, polling string) (*bytes.Buffer, error)
- func (h *Harness) WaitForFleetContents(fleetName string, description string, ...)
- func (h *Harness) WaitForFleetUpdateToFail(fleetName string)
- func (h *Harness) WaitForResourceSyncStatus(name string, expectedStatus v1alpha1.ConditionStatus, timeout string) error
- func (h *Harness) WaitForTPMInitialization() error
- type VMPool
- type VMPoolConfig
Constants ¶
const ( OperationCreate = "create" OperationUpdate = "update" OperationGet = "get" OperationList = "list" OperationDelete = "delete" OperationAll = "all" )
Operation constants for RBAC testing
const LONGTIMEOUT = "10m"
const POLLING = "250ms"
const POLLINGLONG = "1s"
const TIMEOUT = "5m"
Variables ¶
var (
InvalidRenderedVersionErr = fmt.Errorf("invalid rendered version")
)
Functions ¶
func Cleanup ¶ added in v0.10.0
func Cleanup(h *Harness)
Cleanup performs standard harness cleanup and removes VMs from the global pool This should be used for rollout tests and other scenarios where VMs are created with custom worker IDs
func ConditionExists ¶ added in v0.7.0
func ConditionExists(d *v1alpha1.Device, condType v1alpha1.ConditionType, condStatus v1alpha1.ConditionStatus, condReason string) bool
ConditionExists checks if a specific condition exists for the device with the given type, status, and reason.
func ConditionStatusExists ¶ added in v0.9.0
func ConditionStatusExists(conditions []v1alpha1.Condition, condType v1alpha1.ConditionType, status v1alpha1.ConditionStatus) bool
ConditionStatusExists returns true if the specified type and status exists on the condition slice
func ExecuteReadOnlyResourceOperations ¶ added in v0.10.0
func ExecuteReadOnlyResourceOperations(harness *Harness, resourceTypes []string, shouldSucceed bool) error
ExecuteReadOnlyResourceOperations tests read-only operations for the given resource types shouldSucceed determines whether the operations are expected to succeed or fail
func ExecuteResourceOperations ¶ added in v0.10.0
func ExecuteResourceOperations(ctx context.Context, harness *Harness, resourceTypes []string, shouldSucceed bool, testLabels *map[string]string, namespace string, operations []string) error
ExecuteResourceOperations tests all CRUD operations for the given resource types shouldSucceed determines whether the operations are expected to succeed or fail
func GetBaseDiskPath ¶ added in v0.10.0
GetBaseDiskPath finds the base qcow2 disk path
func GetDeviceConfig ¶ added in v0.6.0
func GetDeviceConfig[T any](device *v1alpha1.Device, configType v1alpha1.ConfigProviderType, asConfig func(v1alpha1.ConfigProviderSpec) (T, error)) (T, error)
GetDeviceConfig is a generic helper function to retrieve device configurations
func GetRenderedVersion ¶ added in v0.9.0
func GetWorkerContext ¶ added in v0.10.0
GetWorkerContext retrieves the context for the current worker.
func GinkgoBeforeSuite ¶ added in v0.10.0
func GinkgoBeforeSuite()
GinkgoBeforeSuite is a convenience function that sets up worker harness in BeforeSuite. Use this in your test suite's BeforeSuite if you want a simple setup.
func HaveReason ¶ added in v0.10.0
func HaveReason(expected string) types.GomegaMatcher
HaveReason returns a type-safe Gomega matcher for the Condition's Reason field.
func HaveStatus ¶ added in v0.10.0
func HaveStatus(expected v1alpha1.ConditionStatus) types.GomegaMatcher
HaveStatus returns a type-safe Gomega matcher for the Condition's Status field.
func RemoveVMFromPool ¶ added in v0.10.0
RemoveVMFromPool removes a VM from the global pool for the given worker ID Note: This should be called AFTER harness.Cleanup() which handles VM destruction
func SetupVMForWorker ¶ added in v0.10.0
SetupVMForWorker is a convenience function that initializes the VM pool and returns a VM for the worker. VMs are created on-demand if they don't already exist in the pool.
Types ¶
type ConsoleSession ¶ added in v0.9.0
type ConsoleSession struct {
Stdin io.WriteCloser
Stdout *Buffer
}
ConsoleSession represents a PTY console session to a device
func (*ConsoleSession) Close ¶ added in v0.9.0
func (cs *ConsoleSession) Close()
Close terminates the console session
func (*ConsoleSession) MustExpect ¶ added in v0.9.0
func (cs *ConsoleSession) MustExpect(pattern string)
MustExpect waits for a pattern to appear in the console output
func (*ConsoleSession) MustSend ¶ added in v0.9.0
func (cs *ConsoleSession) MustSend(cmd string)
MustSend sends a command to the console session
type GitServerConfig ¶ added in v0.10.0
type GitServerConfig struct {
Host string
Port int
User string
Password string
SSHKey string // path to SSH private key if using key auth
}
GitServerConfig holds configuration for the git server
type Harness ¶
type Harness struct {
Client *apiclient.ClientWithResponses
Context context.Context
Cluster kubernetes.Interface
VM vm.TestVMInterface
// contains filtered or unexported fields
}
func GetWorkerHarness ¶ added in v0.10.0
func GetWorkerHarness() *Harness
GetWorkerHarness retrieves the harness for the current worker. This should be called from your test suite's BeforeEach or tests.
func NewTestHarnessWithVMPool ¶ added in v0.10.0
NewTestHarnessWithVMPool creates a new test harness with VM pool management. This centralizes the VM pool logic that was previously duplicated in individual tests.
func NewTestHarnessWithoutVM ¶ added in v0.10.0
func SetupWorkerHarness ¶ added in v0.10.0
SetupWorkerHarness sets up a VM and harness for the current worker. This should be called in BeforeSuite.
func (*Harness) AddConfigToDeviceWithRetries ¶ added in v0.9.0
func (h *Harness) AddConfigToDeviceWithRetries(deviceId string, config v1alpha1.ConfigProviderSpec) error
func (*Harness) AddLabelsToYAML ¶ added in v0.10.0
TODO: Modify addTestLabelsToYAML to include other labels and remove addLabelsToYAML
func (*Harness) ApiEndpoint ¶
func (*Harness) ApplyResource ¶ added in v0.10.0
func (*Harness) ApproveEnrollment ¶
func (h *Harness) ApproveEnrollment(id string, approval *v1alpha1.EnrollmentRequestApproval)
func (*Harness) CLIWithEnvAndShell ¶ added in v0.10.0
CLIWithEnvAndShell runs a shell command with custom environment variables (for complex commands with pipes)
func (*Harness) CLIWithStdin ¶
func (*Harness) ChangeK8sContext ¶ added in v0.10.0
ChangeK8sContext changes the kubernetes context
func (*Harness) CheckApplicationComposeFileExist ¶ added in v0.8.0
func (*Harness) CheckApplicationDirectoryExist ¶ added in v0.8.0
func (Harness) CheckApplicationStatus ¶ added in v0.8.0
func (*Harness) CheckDeviceStatus ¶ added in v0.6.0
func (h *Harness) CheckDeviceStatus(deviceId string, status v1alpha1.DeviceSummaryStatusType) (*v1alpha1.Device, error)
Check that the device summary status is equal to the status input
func (*Harness) CheckEnvInjectedToApplication ¶ added in v0.8.0
func (*Harness) CheckRunningContainers ¶ added in v0.7.0
CheckRunningContainers verifies the expected number of running containers on the VM.
func (*Harness) CleanUpAllTestResources ¶ added in v0.10.0
func (*Harness) CleanUpResource ¶ added in v0.10.0
func (*Harness) CleanUpTestResources ¶ added in v0.10.0
CleanUpTestResources deletes only resources that have the test label for the current test
func (*Harness) Cleanup ¶
Harness cleanup, this will delete the VM and cancel the context if something failed we try to gather logs, console logs are optional and can be enabled by setting printConsole to true
func (*Harness) CleanupClusterRoles ¶ added in v0.10.0
func (*Harness) CleanupGitRepositories ¶ added in v0.10.0
CleanupGitRepositories removes all git repositories created by the harness
func (*Harness) CleanupRoles ¶ added in v0.10.0
func (*Harness) CloneGitRepositoryFromServer ¶ added in v0.10.0
CloneGitRepositoryFromServer clones a repository from the git server to a local working directory
func (*Harness) CreateClusterRole ¶ added in v0.10.0
func (h *Harness) CreateClusterRole(ctx context.Context, kubernetesClient kubernetes.Interface, clusterRole *rbacv1.ClusterRole) (*rbacv1.ClusterRole, error)
func (*Harness) CreateClusterRoleBinding ¶ added in v0.10.0
func (h *Harness) CreateClusterRoleBinding(ctx context.Context, kubernetesClient kubernetes.Interface, clusterRoleBinding *rbacv1.ClusterRoleBinding) (*rbacv1.ClusterRoleBinding, error)
func (*Harness) CreateDeviceConfigInGitRepo ¶ added in v0.10.0
func (h *Harness) CreateDeviceConfigInGitRepo(repoName, deviceName string, deviceSpec v1alpha1.DeviceSpec) error
CreateDeviceConfigInGitRepo creates a device configuration and pushes it to a git repository
func (*Harness) CreateFleetConfigInGitRepo ¶ added in v0.10.0
func (h *Harness) CreateFleetConfigInGitRepo(repoName, fleetName string, fleetSpec v1alpha1.FleetSpec) error
CreateFleetConfigInGitRepo creates a fleet configuration and pushes it to a git repository
func (*Harness) CreateFleetDeviceSpec ¶ added in v0.8.1
func (h *Harness) CreateFleetDeviceSpec(deviceImageTag string, additionalConfigs ...v1alpha1.ConfigProviderSpec) (v1alpha1.DeviceSpec, error)
func (*Harness) CreateGitRepository ¶ added in v0.10.0
func (h *Harness) CreateGitRepository(repoName string, repositorySpec v1alpha1.RepositorySpec) error
CreateRepository creates a Repository resource pointing to the git server repository
func (*Harness) CreateGitRepositoryOnServer ¶ added in v0.10.0
CreateGitRepositoryOnServer creates a new Git repository on the e2e git server
func (*Harness) CreateGitRepositoryWithContent ¶ added in v0.10.0
func (h *Harness) CreateGitRepositoryWithContent(repoName, filePath, content string, repositorySpec v1alpha1.RepositorySpec) error
CreateGitRepositoryWithContent creates a git repository with initial content
func (*Harness) CreateOrUpdateTestFleet ¶ added in v0.6.0
func (h *Harness) CreateOrUpdateTestFleet(testFleetName string, fleetSpecOrSelector interface{}, deviceSpec ...v1alpha1.DeviceSpec) error
Create a test fleet resource
func (*Harness) CreateRepository ¶ added in v0.6.0
func (h *Harness) CreateRepository(repositorySpec v1alpha1.RepositorySpec, metadata v1alpha1.ObjectMeta) error
Create a repository resource
func (*Harness) CreateResource ¶ added in v0.10.0
func (*Harness) CreateResourceSync ¶ added in v0.10.0
func (h *Harness) CreateResourceSync(name, repoName string, spec v1alpha1.ResourceSyncSpec) error
CreateResourceSync creates a ResourceSync resource that points to a git repository
func (*Harness) CreateRole ¶ added in v0.10.0
func (*Harness) CreateRoleBinding ¶ added in v0.10.0
func (h *Harness) CreateRoleBinding(ctx context.Context, kubernetesClient kubernetes.Interface, flightCtlNs string, roleBinding *rbacv1.RoleBinding) (*rbacv1.RoleBinding, error)
func (*Harness) CreateTestFleetWithConfig ¶ added in v0.6.0
func (h *Harness) CreateTestFleetWithConfig(testFleetName string, testFleetSelector v1alpha1.LabelSelector, configProviderSpec v1alpha1.ConfigProviderSpec) error
Create a test fleet with a configuration
func (*Harness) DeleteClusterRole ¶ added in v0.10.0
func (*Harness) DeleteClusterRoleBinding ¶ added in v0.10.0
func (*Harness) DeleteFleet ¶ added in v0.9.0
func (*Harness) DeleteGitRepositoryOnServer ¶ added in v0.10.0
DeleteGitRepositoryOnServer deletes a Git repository from the e2e git server
func (*Harness) DeleteRepository ¶ added in v0.9.0
DeleteRepository deletes the specified repository
func (*Harness) DeleteResourceSync ¶ added in v0.10.0
DeleteResourceSync deletes the specified ResourceSync
func (*Harness) DeleteRole ¶ added in v0.10.0
func (*Harness) DeleteRoleBinding ¶ added in v0.10.0
func (*Harness) EnableTPMForDevice ¶ added in v0.10.0
EnableTPMForDevice configures the agent to use TPM for device identity. This reads existing agent config, updates TPM settings, and writes it back.
func (*Harness) EnrollAndWaitForOnlineStatus ¶ added in v0.4.0
func (*Harness) EnsureDeviceContents ¶ added in v0.9.0
func (h *Harness) EnsureDeviceContents(deviceId string, description string, condition func(*v1alpha1.Device) bool, timeout string)
EnsureDeviceContents ensures that the contents of the device match the specified condition for the entire timeout
func (*Harness) FixNetworkFailure ¶ added in v0.8.1
func (*Harness) FixNetworkFailureForCLI ¶ added in v0.8.1
FixNetworkFailureForCLI removes an entry from iptables if it exists. returns an error if no entry for the ip:port combo exists
func (*Harness) GetAgentVersion ¶ added in v0.10.0
GetAgentVersion returns the agent version from the flightctl-agent version command
func (*Harness) GetAgentVersionFromLogs ¶ added in v0.10.0
GetAgentVersionFromLogs returns the agent version from the flightctl-agent service logs
func (*Harness) GetCertificateSigningRequestByYaml ¶ added in v0.4.0
func (h *Harness) GetCertificateSigningRequestByYaml(csrYaml string) v1alpha1.CertificateSigningRequest
Wrapper function for CertificateSigningRequest
func (*Harness) GetCurrentDeviceGeneration ¶ added in v0.6.0
func (*Harness) GetCurrentDeviceRenderedVersion ¶ added in v0.4.0
func (*Harness) GetDefaultK8sContext ¶ added in v0.10.0
GetDefaultK8sContext returns the a K8s context with default in its name
func (*Harness) GetDeviceByYaml ¶ added in v0.4.0
Wrapper function for Device
func (*Harness) GetDeviceFromTestContext ¶ added in v0.10.0
GetDeviceFromTestContext retrieves device data from the test context
func (*Harness) GetDeviceGitConfig ¶ added in v0.6.0
func (h *Harness) GetDeviceGitConfig(device *v1alpha1.Device, configName string) (v1alpha1.GitConfigProviderSpec, error)
Get GitConfig
func (*Harness) GetDeviceHttpConfig ¶ added in v0.6.0
func (h *Harness) GetDeviceHttpConfig(device *v1alpha1.Device, configName string) (v1alpha1.HttpConfigProviderSpec, error)
Get HttpConfig
func (*Harness) GetDeviceInlineConfig ¶ added in v0.6.0
func (h *Harness) GetDeviceInlineConfig(device *v1alpha1.Device, configName string) (v1alpha1.InlineConfigProviderSpec, error)
Get InlineConfig
func (*Harness) GetDeviceOsImage ¶ added in v0.6.0
Get an http config of a device resource
func (*Harness) GetDeviceSystemInfo ¶ added in v0.9.0
func (h *Harness) GetDeviceSystemInfo(deviceID string) *v1alpha1.DeviceSystemInfo
GetDeviceSystemInfo returns the device system info with proper error handling
func (*Harness) GetDeviceWithStatusSummary ¶ added in v0.4.0
func (h *Harness) GetDeviceWithStatusSummary(enrollmentID string) (v1alpha1.DeviceSummaryStatusType, error)
func (*Harness) GetDeviceWithStatusSystem ¶
func (h *Harness) GetDeviceWithStatusSystem(enrollmentID string) (*apiclient.GetDeviceResponse, error)
func (*Harness) GetDeviceWithUpdateStatus ¶ added in v0.4.0
func (h *Harness) GetDeviceWithUpdateStatus(enrollmentID string) (v1alpha1.DeviceUpdatedStatusType, error)
func (*Harness) GetEnrollmentIDFromServiceLogs ¶ added in v0.10.0
GetEnrollmentIDFromServiceLogs returns the enrollment ID from the service logs using journalctl. This is more reliable than console output as it captures service output regardless of how the service is started.
func (*Harness) GetEnrollmentRequestByYaml ¶ added in v0.4.0
func (h *Harness) GetEnrollmentRequestByYaml(erYaml string) *v1alpha1.EnrollmentRequest
Wrapper function for EnrollmentRequest
func (*Harness) GetFleetByYaml ¶ added in v0.4.0
Wrapper function for Fleet
func (*Harness) GetFlightctlAgentLogs ¶ added in v0.10.0
GetServiceLogs returns the logs from the specified service using journalctl. This is useful for debugging service output and capturing logs from the latest service invocation.
func (*Harness) GetFlightctlPath ¶ added in v0.10.0
GetFlightctlPath returns the path to the flightctl binary
func (*Harness) GetGitRepoURL ¶ added in v0.10.0
GetGitRepoURL returns the SSH URL for a git repository on the server
func (*Harness) GetGitServerConfig ¶ added in v0.10.0
func (h *Harness) GetGitServerConfig() GitServerConfig
GetGitServerConfig returns the configuration for the e2e git server
func (*Harness) GetK8sApiEndpoint ¶ added in v0.10.0
GetK8sApiEndpoint returns the API endpoint for a given K8s context
func (*Harness) GetRepository ¶ added in v0.10.0
func (h *Harness) GetRepository(repositoryName string) (*v1alpha1.Repository, error)
func (*Harness) GetRepositoryByYaml ¶ added in v0.4.0
func (h *Harness) GetRepositoryByYaml(repoYaml string) v1alpha1.Repository
Wrapper function for Repository
func (*Harness) GetResourceSyncByYaml ¶ added in v0.4.0
func (h *Harness) GetResourceSyncByYaml(rSyncYaml string) v1alpha1.ResourceSync
Wrapper function for ResourceSync
func (*Harness) GetResourcesByName ¶ added in v0.8.1
Wrapper function for Shell command to get resources by name
func (*Harness) GetRolloutStatus ¶ added in v0.8.1
func (*Harness) GetSelectedDevicesForBatch ¶ added in v0.8.1
func (*Harness) GetServiceLogs ¶ added in v0.10.0
GetServiceLogs returns the logs from the specified service using journalctl. This is useful for debugging service output and capturing logs from the latest service invocation.
func (*Harness) GetTestContext ¶ added in v0.10.0
GetTestContext returns the current test context. If no test context has been set, it returns the suite context.
func (*Harness) GetTestDataFromContext ¶ added in v0.10.0
GetTestDataFromContext retrieves arbitrary test data from the context using a string key
func (*Harness) GetTestIDFromContext ¶ added in v0.10.0
GetTestIDFromContext retrieves the test ID from the context If no test ID is found, it indicates a programming error and will cause the test to fail
func (*Harness) GetUnavailableDevicesPerGroup ¶ added in v0.8.1
func (*Harness) GetUpdatedDevices ¶ added in v0.8.1
func (*Harness) GetVMFromPool ¶ added in v0.10.0
func (h *Harness) GetVMFromPool(workerID int) (vm.TestVMInterface, error)
GetVMFromPool retrieves a VM from the pool for the given worker ID. VMs are created on-demand if they don't already exist in the pool.
func (*Harness) GetVersionsFromCLI ¶ added in v0.10.0
func (h *Harness) GetVersionsFromCLI() (clientVersion, serverVersion, agentVersion string, err error)
GetVersionsFromCLI returns client, server, and agent versions from the flightctl CLI version command
func (*Harness) ManageResource ¶ added in v0.7.0
ManageResource performs an operation ("apply", "delete", or "approve") on a specified resource.
func (*Harness) MarkClientAccessTokenExpired ¶ added in v0.8.1
MarkClientAccessTokenExpired updates the client configuration at the specified path by marking the token as expired If no path is supplied, the default config path will be used
func (*Harness) NewConsoleSession ¶ added in v0.9.0
func (h *Harness) NewConsoleSession(deviceID string) *ConsoleSession
NewConsoleSession starts a PTY console session to the specified device.
func (*Harness) PrepareNextDeviceGeneration ¶ added in v0.6.0
func (*Harness) PrepareNextDeviceVersion ¶ added in v0.4.0
func (*Harness) PushContentToGitServerRepo ¶ added in v0.10.0
func (h *Harness) PushContentToGitServerRepo(repoName, filePath, content, commitMessage string) error
PushContentToGitServerRepo pushes content to a git repository on the server
func (*Harness) ReadClientConfig ¶ added in v0.8.1
ReadClientConfig returns the client config for at the specified location. The default config path is used if no path is specified
func (*Harness) ReadPrimaryVMAgentLogs ¶ added in v0.9.0
ReadPrimaryVMAgentLogs reads flightctl-agent journalctl logs from the primary VM
func (*Harness) RegistryEndpoint ¶ added in v0.4.0
func (*Harness) ReloadFlightCtlAgent ¶ added in v0.10.0
ReloadFlightCtlAgent reloads the flightctl-agent service
func (*Harness) ReplaceRepository ¶ added in v0.9.0
func (h *Harness) ReplaceRepository(repositorySpec v1alpha1.RepositorySpec, metadata v1alpha1.ObjectMeta) error
ReplaceRepository ensures the specified repository exists and is updated to the appropriate values
func (*Harness) ReplaceResourceSync ¶ added in v0.10.0
func (h *Harness) ReplaceResourceSync(name, repoName string, spec v1alpha1.ResourceSyncSpec) error
ReplaceResourceSync replaces an existing ResourceSync resource
func (*Harness) ReplaceVariableInString ¶ added in v0.4.0
func (*Harness) RestartFlightCtlAgent ¶ added in v0.10.0
RestartFlightCtlAgent restarts the flightctl-agent service
func (*Harness) RunConsoleCommand ¶ added in v0.9.0
RunConsoleCommand executes the flightctl console command for the given device.
flags – optional CLI flags that go before "--" (e.g. "--notty").
cmd – remote command (and its args) to execute after "--". Must contain
at least one string; for interactive sessions use NewConsoleSession.
func (*Harness) RunGetDevices ¶ added in v0.7.0
RunGetDevices executes "get devices" CLI command with optional arguments.
func (*Harness) RunGetEvents ¶ added in v0.8.1
RunGetEvents executes "get events" CLI command with optional arguments.
func (*Harness) RunInteractiveCLI ¶
func (h *Harness) RunInteractiveCLI(args ...string) (io.WriteCloser, io.ReadCloser, error)
func (*Harness) SHWithStdin ¶ added in v0.3.0
func (*Harness) SetAgentConfig ¶ added in v0.10.0
SetAgentConfig configures the agent by writing the configuration file. This method should be called before starting the agent.
func (*Harness) SetLabelsForDevice ¶ added in v0.9.0
func (*Harness) SetLabelsForDeviceMetadata ¶ added in v0.10.0
func (h *Harness) SetLabelsForDeviceMetadata(metadata *v1alpha1.ObjectMeta, labels map[string]string)
SetLabelsForDeviceMetadata sets labels on device metadata while preserving the test-id label
func (*Harness) SetLabelsForDevicesByIndex ¶ added in v0.8.1
func (*Harness) SetLabelsForFleetMetadata ¶ added in v0.10.0
func (h *Harness) SetLabelsForFleetMetadata(metadata *v1alpha1.ObjectMeta, labels map[string]string)
SetLabelsForFleetMetadata sets labels on fleet metadata while preserving the test-id label
func (*Harness) SetLabelsForRepositoryMetadata ¶ added in v0.10.0
func (h *Harness) SetLabelsForRepositoryMetadata(metadata *v1alpha1.ObjectMeta, labels map[string]string)
SetLabelsForRepositoryMetadata sets labels on repository metadata while preserving the test-id label
func (*Harness) SetLabelsForResource ¶ added in v0.10.0
func (h *Harness) SetLabelsForResource(metadata *v1alpha1.ObjectMeta, labels map[string]string)
SetLabelsForResource sets labels on any resource while preserving the test-id label
func (*Harness) SetTestContext ¶ added in v0.10.0
SetTestContext sets the context for the current test. This allows tests to use their own context for operations while keeping the suite context for cleanup operations.
func (*Harness) SetupDeviceWithTPM ¶ added in v0.10.0
SetupDeviceWithTPM prepares a device VM with TPM functionality enabled. This handles the complete TPM setup process in the correct order.
func (*Harness) SetupVMFromPoolAndStartAgent ¶ added in v0.10.0
SetupVMFromPoolAndStartAgent sets up a VM from the pool, reverts to pristine snapshot, and starts the agent. This is useful for tests that use the VM pool pattern.
func (*Harness) SimulateNetworkFailure ¶ added in v0.8.1
func (*Harness) SimulateNetworkFailureForCLI ¶ added in v0.8.1
SimulateNetworkFailureForCLI adds an entry to iptables to drop tcp traffic to the specified port:ip It returns a function that will only execute once to undo the iptables modification
func (*Harness) StartFlightCtlAgent ¶ added in v0.10.0
StartFlightCtlAgent starts the flightctl-agent service
func (*Harness) StartVMAndEnroll ¶
func (*Harness) StopFlightCtlAgent ¶ added in v0.10.0
StopFlightCtlAgent stops the flightctl-agent service
func (*Harness) StoreDeviceInTestContext ¶ added in v0.10.0
StoreDeviceInTestContext stores device data in the test context for use within the same test
func (*Harness) StoreTestDataInContext ¶ added in v0.10.0
StoreTestDataInContext stores arbitrary test data in the context using a string key
func (*Harness) TestEnrollmentApproval ¶ added in v0.10.0
func (h *Harness) TestEnrollmentApproval(labels ...map[string]string) *v1alpha1.EnrollmentRequestApproval
func (*Harness) UpdateApplication ¶ added in v0.8.0
func (*Harness) UpdateClusterRole ¶ added in v0.10.0
func (h *Harness) UpdateClusterRole(ctx context.Context, kubernetesClient kubernetes.Interface, clusterRole *rbacv1.ClusterRole) (*rbacv1.ClusterRole, error)
func (*Harness) UpdateDevice ¶ added in v0.6.0
func (*Harness) UpdateDeviceConfigWithRetries ¶ added in v0.8.1
func (h *Harness) UpdateDeviceConfigWithRetries(deviceId string, configs []v1alpha1.ConfigProviderSpec, nextRenderedVersion int) error
UpdateDeviceConfigWithRetries updates the configuration of a device with retries using the provided harness and config specs. It applies the provided configuration and waits for the device to reach the specified rendered version.
func (*Harness) UpdateDeviceWithRetries ¶ added in v0.3.0
func (*Harness) UpdateFleet ¶ added in v0.9.0
func (*Harness) UpdateFleetWithRetries ¶ added in v0.9.0
func (*Harness) UpdateGitServerRepository ¶ added in v0.10.0
func (h *Harness) UpdateGitServerRepository(repoName, filePath, content, commitMessage string) error
UpdateGitServerRepository updates content in an existing git repository working directory
func (*Harness) UpdateRole ¶ added in v0.10.0
func (*Harness) VerifyDeviceTPMAttestationData ¶ added in v0.10.0
VerifyDeviceTPMAttestationData checks for TPM attestation data in device SystemInfo Virtual TPM provides "tpmVendorInfo", real TPM provides "attestation" Returns error if attestation data is missing or empty
func (*Harness) VerifyEnrollmentTPMAttestationData ¶ added in v0.10.0
func (h *Harness) VerifyEnrollmentTPMAttestationData(systemInfo v1alpha1.DeviceSystemInfo) error
VerifyEnrollmentTPMAttestationData checks for TPM attestation data in enrollment request SystemInfo Returns error if no TPM attestation data is found
func (*Harness) VerifyTPMFunctionality ¶ added in v0.10.0
VerifyTPMFunctionality checks that TPM device is accessible and functional.
func (*Harness) WaitForBatchStart ¶ added in v0.8.1
func (*Harness) WaitForBootstrapAndUpdateToVersion ¶ added in v0.4.0
func (*Harness) WaitForClusterRegistered ¶ added in v0.8.1
func (*Harness) WaitForDeviceContents ¶ added in v0.3.0
func (*Harness) WaitForDeviceNewGeneration ¶ added in v0.6.0
func (*Harness) WaitForDeviceNewRenderedVersion ¶ added in v0.4.0
func (*Harness) WaitForEnrollmentRequest ¶
func (h *Harness) WaitForEnrollmentRequest(id string) *v1alpha1.EnrollmentRequest
func (*Harness) WaitForFileInDevice ¶ added in v0.8.1
func (*Harness) WaitForFleetContents ¶ added in v0.9.0
func (*Harness) WaitForFleetUpdateToFail ¶ added in v0.8.1
func (*Harness) WaitForResourceSyncStatus ¶ added in v0.10.0
func (h *Harness) WaitForResourceSyncStatus(name string, expectedStatus v1alpha1.ConditionStatus, timeout string) error
WaitForResourceSyncStatus waits for a ResourceSync to reach a specific status
func (*Harness) WaitForTPMInitialization ¶ added in v0.10.0
WaitForTPMInitialization waits for TPM hardware to be ready in the VM. This should be called after VM setup but before agent configuration.
type VMPool ¶ added in v0.10.0
type VMPool struct {
// contains filtered or unexported fields
}
VMPool manages VMs across all test suites
func GetOrCreateVMPool ¶ added in v0.10.0
func GetOrCreateVMPool(config VMPoolConfig) *VMPool
GetOrCreateVMPool returns the global VM pool instance, creating it if necessary
func (*VMPool) CleanupAll ¶ added in v0.10.0
CleanupAll cleans up all VMs in the pool
func (*VMPool) CleanupWorkerVM ¶ added in v0.10.0
CleanupWorkerVM cleans up the VM for a specific worker
func (*VMPool) GetVMForWorker ¶ added in v0.10.0
func (p *VMPool) GetVMForWorker(workerID int) (vm.TestVMInterface, error)
GetVMForWorker returns a VM for the given worker ID, creating it on-demand if it doesn't exist. This method supports lazy VM creation to optimize resource usage.
type VMPoolConfig ¶ added in v0.10.0
VMPoolConfig holds configuration for the VM pool