e2e

package
v1.2.0-main Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2026 License: Apache-2.0 Imports: 45 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OperationCreate = "create"
	OperationUpdate = "update"
	OperationGet    = "get"
	OperationList   = "list"
	OperationDelete = "delete"
	OperationAll    = "all"
)

Operation constants for RBAC testing

View Source
const LONGTIMEOUT = "10m"
View Source
const POLLING = "250ms"
View Source
const POLLINGLONG = "1s"
View Source
const TIMEOUT = "5m"

Variables

View Source
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 *v1beta1.Device, condType v1beta1.ConditionType, condStatus v1beta1.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 []v1beta1.Condition, condType v1beta1.ConditionType, status v1beta1.ConditionStatus) bool

ConditionStatusExists returns true if the specified type and status exists on the condition slice

func CreateFailingServiceOnDevice added in v1.0.0

func CreateFailingServiceOnDevice(h *Harness, serviceName string) error

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 ExtractAuthURL added in v1.0.0

func ExtractAuthURL(provider *v1beta1.AuthProvider) string

ExtractAuthURL extracts the authentication URL from an AuthProvider based on its type

func GetBaseDiskPath added in v0.10.0

func GetBaseDiskPath() (string, error)

GetBaseDiskPath finds the base qcow2 disk path

func GetContext added in v1.0.0

func GetContext() (string, error)

GetContext returns the Kubernetes context (KIND or OCP) or an error

func GetDeviceConfig added in v0.6.0

func GetDeviceConfig[T any](device *v1beta1.Device, configType v1beta1.ConfigProviderType,
	asConfig func(v1beta1.ConfigProviderSpec) (T, error)) (T, error)

GetDeviceConfig is a generic helper function to retrieve device configurations

func GetRenderedVersion added in v0.9.0

func GetRenderedVersion(device *v1beta1.Device) (int, error)

func GetSSHPrivateKey

func GetSSHPrivateKey() (string, error)

GetSSHPrivateKey returns the SSH private key content. It first tries to get the key from the Kubernetes Secret (for OpenShift deployments), then falls back to the local bin/.ssh/id_rsa file (for local development).

func GetSSHPrivateKeyPath

func GetSSHPrivateKeyPath() (string, error)

GetSSHPrivateKeyPath returns the path to the SSH private key file.

func GetTestDataPath

func GetTestDataPath(relativePath string) string

getTestDataPath returns the path to a file/directory in the testdata folder. Note: ginkgo runs tests from the test package directory (e.g. resourcesync test runs from test/e2e/resourcesync/).

func GetWorkerContext added in v0.10.0

func GetWorkerContext() context.Context

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 v1beta1.ConditionStatus) types.GomegaMatcher

HaveStatus returns a type-safe Gomega matcher for the Condition's Status field.

func IsDeviceUpdateObserved added in v1.0.0

func IsDeviceUpdateObserved(device *v1beta1.Device, expectedVersion int) bool

IsDeviceUpdateObserved returns true if the device is updating or has already updated to the expected version.

func RemoveSystemdService added in v1.0.0

func RemoveSystemdService(h *Harness, serviceName string) error

RemoveSystemdService disables and removes a systemd unit file on the device and reloads systemd.

func RemoveVMFromPool added in v0.10.0

func RemoveVMFromPool(workerID int) error

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 RestoreServiceOnDevice added in v1.0.0

func RestoreServiceOnDevice(h *Harness, serviceName string) error

func SetupVMForWorker added in v0.10.0

func SetupVMForWorker(workerID int, tempDir string, sshPortBase int) (vm.TestVMInterface, error)

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.

func StopServiceOnDevice added in v1.0.0

func StopServiceOnDevice(h *Harness, serviceName string) error

func TestResourceOperations

func TestResourceOperations(ctx context.Context, harness *Harness, operations []string, testConfigs []ResourceTestConfig, testLabels *map[string]string, namespace string) error

TestResourceOperations tests multiple resource groups with different success expectations. It iterates through testConfigs and calls ExecuteResourceOperations for each group.

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
}

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

func NewTestHarnessWithVMPool(ctx context.Context, workerID int) (*Harness, error)

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 NewTestHarnessWithoutVM(ctx context.Context) (*Harness, error)

func SetupWorkerHarness added in v0.10.0

func SetupWorkerHarness() (*Harness, context.Context, error)

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 v1beta1.ConfigProviderSpec) error

func (*Harness) AddLabelsToYAML added in v0.10.0

func (h *Harness) AddLabelsToYAML(yamlContent string, addLabels map[string]string) (string, error)

TODO: Modify addTestLabelsToYAML to include other labels and remove addLabelsToYAML

func (*Harness) ApiEndpoint

func (h *Harness) ApiEndpoint() string

func (*Harness) ApplyResource added in v0.10.0

func (h *Harness) ApplyResource(yamlPath string) (string, error)

func (*Harness) ApplyTempIfSuggested added in v1.0.0

func (h *Harness) ApplyTempIfSuggested(out string, cliErr error) error

ApplyTempIfSuggested looks for "Your changes have been saved to:" in CLI output. If found, it automatically applies the saved file to complete the edit flow.

func (*Harness) ApproveEnrollment

func (h *Harness) ApproveEnrollment(id string, approval *v1beta1.EnrollmentRequestApproval)

func (*Harness) CLI

func (h *Harness) CLI(args ...string) (string, error)

func (*Harness) CLIWithEnvAndShell added in v0.10.0

func (h *Harness) CLIWithEnvAndShell(env map[string]string, shellCommand string) (string, error)

CLIWithEnvAndShell runs a shell command with custom environment variables (for complex commands with pipes)

func (*Harness) CLIWithStdin

func (h *Harness) CLIWithStdin(stdin string, args ...string) (string, error)

func (*Harness) ChangeK8sContext added in v0.10.0

func (h *Harness) ChangeK8sContext(ctx context.Context, k8sContext string) (string, error)

ChangeK8sContext changes the kubernetes context

func (*Harness) ChangeK8sNamespace

func (h *Harness) ChangeK8sNamespace(namespace string) error

ChangeK8sNamespace changes the current Kubernetes namespace

func (*Harness) CheckApplicationComposeFileExist added in v0.8.0

func (h *Harness) CheckApplicationComposeFileExist(applicationName string, ComposeFile string) error

func (*Harness) CheckApplicationDirectoryExist added in v0.8.0

func (h *Harness) CheckApplicationDirectoryExist(applicationName string) error

func (Harness) CheckApplicationStatus added in v0.8.0

func (h Harness) CheckApplicationStatus(deviceId string, applicationName string) (v1beta1.ApplicationStatusType, error)

func (*Harness) CheckDeviceStatus added in v0.6.0

func (h *Harness) CheckDeviceStatus(deviceId string, status v1beta1.DeviceSummaryStatusType) (*v1beta1.Device, error)

Check that the device summary status is equal to the status input

func (*Harness) CheckEnvInjectedToApplication added in v0.8.0

func (h *Harness) CheckEnvInjectedToApplication(envVarName string, image string) (string, error)

func (*Harness) CheckRunningContainers added in v0.7.0

func (h *Harness) CheckRunningContainers() (string, error)

CheckRunningContainers verifies the expected number of running containers on the VM.

func (*Harness) CleanUpAllTestResources added in v0.10.0

func (h *Harness) CleanUpAllTestResources() error

func (*Harness) CleanUpResource added in v0.10.0

func (h *Harness) CleanUpResource(resourceType string, resourceName string) (string, error)

func (*Harness) CleanUpTestResources added in v0.10.0

func (h *Harness) CleanUpTestResources(resourceTypes ...string) error

CleanUpTestResources deletes only resources that have the test label for the current test

func (*Harness) Cleanup

func (h *Harness) Cleanup(printConsole bool)

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 (h *Harness) CleanupClusterRoles(ctx context.Context, kubernetesClient kubernetes.Interface, clusterRoles []string, clusterRoleBindings []string)

func (*Harness) CleanupGitRepositories added in v0.10.0

func (h *Harness) CleanupGitRepositories() error

CleanupGitRepositories removes all git repositories created by the harness

func (*Harness) CleanupRoles added in v0.10.0

func (h *Harness) CleanupRoles(ctx context.Context, kubernetesClient kubernetes.Interface, roles []string, roleBindings []string, flightCtlNs string)

func (*Harness) CloneGitRepositoryFromServer added in v0.10.0

func (h *Harness) CloneGitRepositoryFromServer(repoName, localPath string) error

CloneGitRepositoryFromServer clones a repository from the git server to a local working directory

func (*Harness) CommitAndPushGitRepo

func (h *Harness) CommitAndPushGitRepo(workDir, commitMessage string) error

CommitAndPushGitRepo commits all changes in a local git working directory and pushes to the remote. This uses `git add -A` to stage all changes (additions, modifications, deletions), then commits and pushes. The workDir must be a cloned git repository. This method mirrors real git workflows where you manipulate files locally then push.

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 v1beta1.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 v1beta1.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 ...v1beta1.ConfigProviderSpec) (v1beta1.DeviceSpec, error)

func (*Harness) CreateGitRepository added in v0.10.0

func (h *Harness) CreateGitRepository(repoName string, repositorySpec domain.RepositorySpec) error

CreateRepository creates a Repository resource pointing to the git server repository

func (*Harness) CreateGitRepositoryOnServer added in v0.10.0

func (h *Harness) CreateGitRepositoryOnServer(repoName string) error

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 v1beta1.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 ...v1beta1.DeviceSpec) error

Create a test fleet resource

func (*Harness) CreateRepository added in v0.6.0

func (h *Harness) CreateRepository(repositorySpec v1beta1.RepositorySpec, metadata v1beta1.ObjectMeta) error

Create a repository resource

func (*Harness) CreateRepositoryWithSSHCredentials

func (h *Harness) CreateRepositoryWithSSHCredentials(repoName, repoURL, sshPrivateKey string) error

CreateRepositoryWithSSHCredentials creates a Repository resource with SSH credentials

func (*Harness) CreateRepositoryWithValidE2ECredentials

func (h *Harness) CreateRepositoryWithValidE2ECredentials(repoName string) error

CreateRepositoryWithValidE2ECredentials creates a Repository resource using the E2E SSH key and the internal cluster URL for the git server.

func (*Harness) CreateResource added in v0.10.0

func (h *Harness) CreateResource(resourceType string) (string, string, []byte, error)

func (*Harness) CreateResourceSync added in v0.10.0

func (h *Harness) CreateResourceSync(name, repoName string, spec v1beta1.ResourceSyncSpec) error

CreateResourceSync creates a ResourceSync resource

func (*Harness) CreateResourceSyncForRepo

func (h *Harness) CreateResourceSyncForRepo(resourceSyncName, repoName, branchName string) error

func (*Harness) CreateRole added in v0.10.0

func (h *Harness) CreateRole(ctx context.Context, kubernetesClient kubernetes.Interface, flightCtlNs string, role *rbacv1.Role) (*rbacv1.Role, error)

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 v1beta1.LabelSelector, configProviderSpec v1beta1.ConfigProviderSpec) error

Create a test fleet with a configuration

func (*Harness) DeleteClusterRole added in v0.10.0

func (h *Harness) DeleteClusterRole(ctx context.Context, client kubernetes.Interface, clusterRoleName string) error

func (*Harness) DeleteClusterRoleBinding added in v0.10.0

func (h *Harness) DeleteClusterRoleBinding(ctx context.Context, client kubernetes.Interface, clusterRoleBindingName string) error

func (*Harness) DeleteFleet added in v0.9.0

func (h *Harness) DeleteFleet(testFleetName string) error

func (*Harness) DeleteGitRepositoryOnServer added in v0.10.0

func (h *Harness) DeleteGitRepositoryOnServer(repoName string) error

DeleteGitRepositoryOnServer deletes a Git repository from the e2e git server

func (*Harness) DeleteRepository added in v0.9.0

func (h *Harness) DeleteRepository(name string) error

DeleteRepository deletes the specified repository

func (*Harness) DeleteResourceSync added in v0.10.0

func (h *Harness) DeleteResourceSync(name string) error

DeleteResourceSync deletes the specified ResourceSync

func (*Harness) DeleteRole added in v0.10.0

func (h *Harness) DeleteRole(ctx context.Context, client kubernetes.Interface, namespace string, roleName string) error

func (*Harness) DeleteRoleBinding added in v0.10.0

func (h *Harness) DeleteRoleBinding(ctx context.Context, client kubernetes.Interface, namespace string, roleBindingName string) error

func (*Harness) EditWithRetry added in v1.0.0

func (h *Harness) EditWithRetry(format, editor, resource string) (string, error)

EditWithRetry runs: flightctl edit -o <format> --editor <editor> <resource> Retries briefly if the server responds with a Conflict (resourceVersion race).

func (*Harness) EnableTPMForDevice added in v0.10.0

func (h *Harness) EnableTPMForDevice() error

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 (h *Harness) EnrollAndWaitForOnlineStatus(labels ...map[string]string) (string, *v1beta1.Device)

func (*Harness) EnsureDeviceContents added in v0.9.0

func (h *Harness) EnsureDeviceContents(deviceId string, description string, condition func(*v1beta1.Device) bool, timeout string)

EnsureDeviceContents ensures that the contents of the device match the specified condition for the entire timeout

func (*Harness) EnsureDeviceSimulatorBinary

func (h *Harness) EnsureDeviceSimulatorBinary() (string, error)

EnsureDeviceSimulatorBinary returns the path to the devicesimulator binary, building it if missing.

func (*Harness) FetchMetrics

func (h *Harness) FetchMetrics(url string) (string, error)

FetchMetrics fetches a Prometheus text metrics endpoint.

func (*Harness) FixNetworkFailure added in v0.8.1

func (h *Harness) FixNetworkFailure() error

func (*Harness) FixNetworkFailureForCLI added in v0.8.1

func (h *Harness) FixNetworkFailureForCLI(ip, port string) error

FixNetworkFailureForCLI removes an entry from iptables if it exists. returns an error if no entry for the ip:port combo exists

func (*Harness) FleetExists

func (h *Harness) FleetExists(fleetName string) bool

func (*Harness) GenerateFleetYAMLsForSimulator

func (h *Harness) GenerateFleetYAMLsForSimulator(fleetCount, devicesPerFleet int, fleetBaseName string) (string, error)

GenerateFleetYAMLsForSimulator returns a multi-document Fleet YAML string with fleetCount Fleet objects, each selecting devices labeled with its fleet name, and annotates each Fleet with the desired devices-per-fleet count for clarity. fleetBaseName controls the base of the generated Fleet names (formatted as "<fleetBaseName>-%02d"). It validates inputs are positive and returns an error otherwise.

func (*Harness) GetAgentVersion added in v0.10.0

func (h *Harness) GetAgentVersion() (string, error)

GetAgentVersion returns the agent version from the flightctl-agent version command

func (*Harness) GetAgentVersionFromLogs added in v0.10.0

func (h *Harness) GetAgentVersionFromLogs() (string, error)

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) v1beta1.CertificateSigningRequest

Wrapper function for CertificateSigningRequest

func (*Harness) GetConfigMapValue

func (h *Harness) GetConfigMapValue(namespace, name, jsonPath string) (string, error)

GetConfigMapValue returns a string value from a ConfigMap using a jsonpath selector.

func (*Harness) GetCurrentDeviceGeneration added in v0.6.0

func (h *Harness) GetCurrentDeviceGeneration(deviceId string) (deviceRenderedVersionInt int64, err error)

func (*Harness) GetCurrentDeviceRenderedVersion added in v0.4.0

func (h *Harness) GetCurrentDeviceRenderedVersion(deviceId string) (int, error)

func (*Harness) GetDefaultK8sContext added in v0.10.0

func (h *Harness) GetDefaultK8sContext() (string, error)

GetDefaultK8sContext returns the a K8s context with default in its name

func (*Harness) GetDevice added in v0.6.0

func (h *Harness) GetDevice(deviceId string) (*v1beta1.Device, error)

Get device with response

func (*Harness) GetDeviceByYaml added in v0.4.0

func (h *Harness) GetDeviceByYaml(deviceYaml string) v1beta1.Device

Wrapper function for Device

func (*Harness) GetDeviceFromTestContext added in v0.10.0

func (h *Harness) GetDeviceFromTestContext() (string, *v1beta1.Device, bool)

GetDeviceFromTestContext retrieves device data from the test context

func (*Harness) GetDeviceGitConfig added in v0.6.0

func (h *Harness) GetDeviceGitConfig(device *v1beta1.Device, configName string) (v1beta1.GitConfigProviderSpec, error)

Get GitConfig

func (*Harness) GetDeviceHttpConfig added in v0.6.0

func (h *Harness) GetDeviceHttpConfig(device *v1beta1.Device, configName string) (v1beta1.HttpConfigProviderSpec, error)

Get HttpConfig

func (*Harness) GetDeviceInlineConfig added in v0.6.0

func (h *Harness) GetDeviceInlineConfig(device *v1beta1.Device, configName string) (v1beta1.InlineConfigProviderSpec, error)

Get InlineConfig

func (*Harness) GetDeviceOsImage added in v0.6.0

func (h *Harness) GetDeviceOsImage(device *v1beta1.Device) (image string, err error)

Get an http config of a device resource

func (*Harness) GetDeviceSystemInfo added in v0.9.0

func (h *Harness) GetDeviceSystemInfo(deviceID string) *v1beta1.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) (v1beta1.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) (v1beta1.DeviceUpdatedStatusType, error)

func (*Harness) GetEnrollmentIDFromServiceLogs added in v0.10.0

func (h *Harness) GetEnrollmentIDFromServiceLogs(serviceName string) string

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) *v1beta1.EnrollmentRequest

Wrapper function for EnrollmentRequest

func (*Harness) GetFleet added in v0.9.0

func (h *Harness) GetFleet(fleetName string) (*v1beta1.Fleet, error)

func (*Harness) GetFleetByYaml added in v0.4.0

func (h *Harness) GetFleetByYaml(fleetYaml string) v1beta1.Fleet

Wrapper function for Fleet

func (*Harness) GetFlightctlAgentLogs added in v0.10.0

func (h *Harness) GetFlightctlAgentLogs() (string, error)

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

func (h *Harness) GetFlightctlPath() string

GetFlightctlPath returns the path to the flightctl binary

func (*Harness) GetFreeLocalPort

func (h *Harness) GetFreeLocalPort() (int, error)

GetFreeLocalPort returns an available local TCP port.

func (*Harness) GetGitRepoURL added in v0.10.0

func (h *Harness) GetGitRepoURL(repoName string) (string, error)

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, error)

GetGitServerConfig returns the configuration for the e2e git server. In KIND environments, it uses localhost:3222 (via port mappings). In OCP environments, it dynamically discovers the node IP and NodePort.

func (*Harness) GetInternalGitRepoURL

func (h *Harness) GetInternalGitRepoURL(repoName string) (string, error)

GetInternalGitRepoURL returns the internal cluster URL for a git repository on the E2E git server. This URL is used by services running inside the cluster (e.g., ResourceSync periodic task).

func (*Harness) GetK8sApiEndpoint added in v0.10.0

func (h *Harness) GetK8sApiEndpoint(ctx context.Context, k8sContext string) (string, error)

GetK8sApiEndpoint returns the API endpoint for a given K8s context

func (*Harness) GetOrganizationID

func (h *Harness) GetOrganizationID() (string, error)

GetOrganizationID returns the first organization ID from the API.

func (*Harness) GetRepository added in v0.10.0

func (h *Harness) GetRepository(repositoryName string) (*v1beta1.Repository, error)

func (*Harness) GetRepositoryByYaml added in v0.4.0

func (h *Harness) GetRepositoryByYaml(repoYaml string) v1beta1.Repository

Wrapper function for Repository

func (*Harness) GetResourceSync

func (h *Harness) GetResourceSync(name string) (*v1beta1.ResourceSync, error)

func (*Harness) GetResourceSyncByYaml added in v0.4.0

func (h *Harness) GetResourceSyncByYaml(rSyncYaml string) v1beta1.ResourceSync

Wrapper function for ResourceSync

func (*Harness) GetResourceSyncConditionMessage

func (h *Harness) GetResourceSyncConditionMessage(name string, condType v1beta1.ConditionType) (string, error)

func (*Harness) GetResourcesByName added in v0.8.1

func (h *Harness) GetResourcesByName(resourceType string, resourceName ...string) (string, error)

Wrapper function for Shell command to get resources by name

func (*Harness) GetRolloutStatus added in v0.8.1

func (h *Harness) GetRolloutStatus(fleetName string) (v1beta1.Condition, error)

func (*Harness) GetSelectedDevicesForBatch added in v0.8.1

func (h *Harness) GetSelectedDevicesForBatch(fleetName string) ([]*v1beta1.Device, error)

func (*Harness) GetServiceLogs added in v0.10.0

func (h *Harness) GetServiceLogs(serviceName string) (string, error)

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

func (h *Harness) GetTestContext() context.Context

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

func (h *Harness) GetTestDataFromContext(key string) (interface{}, bool)

GetTestDataFromContext retrieves arbitrary test data from the context using a string key

func (*Harness) GetTestIDFromContext added in v0.10.0

func (h *Harness) GetTestIDFromContext() string

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 (h *Harness) GetUnavailableDevicesPerGroup(fleetName string, groupBy []string) (map[string][]*v1beta1.Device, error)

func (*Harness) GetUpdatedDevices added in v0.8.1

func (h *Harness) GetUpdatedDevices(fleetName string) ([]*v1beta1.Device, error)

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) GetYAML added in v1.0.0

func (h *Harness) GetYAML(name string) (string, error)

GetYAML returns the YAML output of a given resource name via Harness.CLI. No test framework calls inside; returns (string, error).

func (*Harness) HeadlessEditorWrapper added in v1.0.0

func (h *Harness) HeadlessEditorWrapper(marker string) (string, error)

func (*Harness) ManageResource added in v0.7.0

func (h *Harness) ManageResource(operation, resource string, args ...string) (string, error)

ManageResource performs an operation ("apply", "delete", "approve" or "deny") on a specified resource.

func (*Harness) MarkClientAccessTokenExpired added in v0.8.1

func (h *Harness) MarkClientAccessTokenExpired(filePath string) error

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) MetricsBody

func (h *Harness) MetricsBody(url string) func() string

MetricsBody returns a closure to fetch metrics for Eventually.

func (*Harness) MetricsLineCount

func (h *Harness) MetricsLineCount(url string) func() int

MetricsLineCount returns a closure to count lines in a metrics payload.

func (*Harness) MetricsMatchLabels

func (h *Harness) MetricsMatchLabels(url string, exact map[string]string, required, requiredNonEmpty []string) func() bool

MetricsMatchLabels returns a closure to check for a metric with required labels.

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) OTelcolActiveStatus

func (h *Harness) OTelcolActiveStatus() func() string

OTelcolActiveStatus returns a closure for Eventually to check otelcol status.

func (*Harness) PrepareNextDeviceGeneration added in v0.6.0

func (h *Harness) PrepareNextDeviceGeneration(deviceId string) (int64, error)

func (*Harness) PrepareNextDeviceVersion added in v0.4.0

func (h *Harness) PrepareNextDeviceVersion(deviceId string) (int, error)

func (*Harness) PrintAgentLogsIfFailed

func (h *Harness) PrintAgentLogsIfFailed()

PrintAgentLogsIfFailed prints flightctl-agent journalctl logs from all boots if the current test failed. This is useful for VM pool-based tests where Cleanup is not called and logs need to be captured on failure.

func (*Harness) PromQuery

func (h *Harness) PromQuery(baseURL, query string) (PromQueryResponse, error)

PromQuery executes a Prometheus query against a base URL.

func (*Harness) PromQueryCountValue

func (h *Harness) PromQueryCountValue(promURL, query string) func() float64

PromQueryCountValue returns a closure for polling a count() query value.

func (*Harness) PromQueryHasLabels

func (h *Harness) PromQueryHasLabels(promURL, query string, exact map[string]string, required []string) func() bool

PromQueryHasLabels returns a closure to check for a query result with required labels.

func (*Harness) PromQueryResultCount

func (h *Harness) PromQueryResultCount(promURL, query string) func() int

PromQueryResultCount returns a closure for polling the count of query results.

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) PushContentToGitServerRepoFromPath

func (h *Harness) PushContentToGitServerRepoFromPath(repoName, sourcePath, commitMessage string) error

PushContentToGitServerRepoFromPath reads content from a local file or directory and pushes it to a git repository on the server. If sourcePath is a directory, all files within it are copied to the repository root. If sourcePath is a file, it is copied to the repository with its base name.

func (*Harness) PushTemplatedFilesToGitRepo

func (h *Harness) PushTemplatedFilesToGitRepo(repoName, sourceDir, workDir string, data interface{}) error

PushTemplatedFilesToGitRepo updates an existing git repo with templated files, commits and pushes

func (*Harness) ReadClientConfig added in v0.8.1

func (h *Harness) ReadClientConfig(filePath string) (*client.Config, error)

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

func (h *Harness) ReadPrimaryVMAgentLogs(since string, unit string) (string, error)

ReadPrimaryVMAgentLogs reads flightctl-agent journalctl logs from the primary VM

func (*Harness) RefreshClient

func (h *Harness) RefreshClient() error

RefreshClient recreates the FlightCtl API client from the config file. This is useful after login when the config file has been updated with new authentication or organization information.

func (*Harness) RegistryEndpoint added in v0.4.0

func (h *Harness) RegistryEndpoint() string

func (*Harness) ReloadFlightCtlAgent added in v0.10.0

func (h *Harness) ReloadFlightCtlAgent() error

ReloadFlightCtlAgent reloads the flightctl-agent service

func (*Harness) ReplaceRepository added in v0.9.0

func (h *Harness) ReplaceRepository(repositorySpec v1beta1.RepositorySpec, metadata v1beta1.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 v1beta1.ResourceSyncSpec) error

ReplaceResourceSync replaces an existing ResourceSync resource

func (*Harness) ReplaceVariableInString added in v0.4.0

func (h *Harness) ReplaceVariableInString(s string, old string, new string) string

func (*Harness) ResetAgent added in v0.9.0

func (h *Harness) ResetAgent() error

reset agent

func (*Harness) RestartFlightCtlAgent added in v0.10.0

func (h *Harness) RestartFlightCtlAgent() error

RestartFlightCtlAgent restarts the flightctl-agent service

func (*Harness) RunConsoleCommand added in v0.9.0

func (h *Harness) RunConsoleCommand(deviceID string, flags []string, cmd ...string) (string, error)

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) RunDeviceSimulator

func (h *Harness) RunDeviceSimulator(_ context.Context, args ...string) (*exec.Cmd, error)

RunDeviceSimulator starts the devicesimulator in the background with the provided args and returns the running command. The process will continue running until explicitly stopped via StopDeviceSimulator. IMPORTANT: The caller MUST call StopDeviceSimulator to clean up the process and close the log file. The context parameter is reserved for future use (e.g., cancellation during setup).

func (*Harness) RunGetDevices added in v0.7.0

func (h *Harness) RunGetDevices(args ...string) (string, error)

RunGetDevices executes "get devices" CLI command with optional arguments.

func (*Harness) RunGetEvents added in v0.8.1

func (h *Harness) RunGetEvents(args ...string) (string, error)

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) SH added in v0.3.0

func (h *Harness) SH(command string, args ...string) (string, error)

func (*Harness) SHWithStdin added in v0.3.0

func (h *Harness) SHWithStdin(stdin, command string, args ...string) (string, error)

func (*Harness) SetAgentConfig added in v0.10.0

func (h *Harness) SetAgentConfig(cfg *agentcfg.Config) error

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 (h *Harness) SetLabelsForDevice(deviceId string, labels map[string]string) error

func (*Harness) SetLabelsForDeviceMetadata added in v0.10.0

func (h *Harness) SetLabelsForDeviceMetadata(metadata *v1beta1.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 (h *Harness) SetLabelsForDevicesByIndex(deviceIDs []string, labelsList []map[string]string, fleetName string) error

func (*Harness) SetLabelsForFleetMetadata added in v0.10.0

func (h *Harness) SetLabelsForFleetMetadata(metadata *v1beta1.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 *v1beta1.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 *v1beta1.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

func (h *Harness) SetTestContext(ctx context.Context)

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) SetupDeviceSimulatorAgentConfig

func (h *Harness) SetupDeviceSimulatorAgentConfig(specFetch time.Duration, statusUpdate time.Duration) (string, error)

SetupDeviceSimulatorAgentConfig generates an agent configuration file for the device simulator and copies required certificates into the expected locations under ~/.flightctl. Non-zero durations override fetch/update intervals; zero values default to 2 seconds. Returns the path to the generated agent config file.

func (*Harness) SetupDeviceWithTPM added in v0.10.0

func (h *Harness) SetupDeviceWithTPM(workerID int) error

SetupDeviceWithTPM prepares a device VM with TPM functionality enabled. This handles the complete TPM setup process in the correct order.

func (*Harness) SetupTemplatedGitRepoFromDir

func (h *Harness) SetupTemplatedGitRepoFromDir(repoName, sourceDir string, data interface{}) (string, error)

SetupTemplatedGitRepoFromDir creates a git repo, clones it, populates with templated files, and pushes

func (*Harness) SetupVMFromPool

func (h *Harness) SetupVMFromPool(workerID int) error

SetupVMFromPool sets up a VM from the pool and reverts it to the pristine snapshot. It does not start the agent.

func (*Harness) SetupVMFromPoolAndStartAgent added in v0.10.0

func (h *Harness) SetupVMFromPoolAndStartAgent(workerID int) error

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 (h *Harness) SimulateNetworkFailure() error

func (*Harness) SimulateNetworkFailureForCLI added in v0.8.1

func (h *Harness) SimulateNetworkFailureForCLI(ip, port string) (func() error, error)

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

func (h *Harness) StartFlightCtlAgent() error

StartFlightCtlAgent starts the flightctl-agent service

func (*Harness) StartPortForward

func (h *Harness) StartPortForward(ctx context.Context, namespace, target string, localPort, remotePort int) (*exec.Cmd, <-chan error, error)

StartPortForward starts a kubectl port-forward for a service or pod.

func (*Harness) StartPortForwardWithCleanup

func (h *Harness) StartPortForwardWithCleanup(namespace, target string, localPort, remotePort int) (func(), error)

StartPortForwardWithCleanup starts port-forwarding and returns a cleanup function.

func (*Harness) StartVMAndEnroll

func (h *Harness) StartVMAndEnroll() string

func (*Harness) StopDeviceSimulator

func (h *Harness) StopDeviceSimulator(cmd *exec.Cmd, timeout time.Duration) error

StopDeviceSimulator attempts to gracefully stop a running devicesimulator process. It sends SIGTERM to the process group and waits up to the provided timeout before force-killing.

func (*Harness) StopFlightCtlAgent added in v0.10.0

func (h *Harness) StopFlightCtlAgent() error

StopFlightCtlAgent stops the flightctl-agent service

func (*Harness) StoreDeviceInTestContext added in v0.10.0

func (h *Harness) StoreDeviceInTestContext(deviceId string, device *v1beta1.Device)

StoreDeviceInTestContext stores device data in the test context for use within the same test

func (*Harness) StoreTestDataInContext added in v0.10.0

func (h *Harness) StoreTestDataInContext(key string, value interface{})

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) *v1beta1.EnrollmentRequestApproval

func (*Harness) UpdateApplication added in v0.8.0

func (h *Harness) UpdateApplication(withRetries bool, deviceId string, appName string, appProvider any, envVars map[string]string) error

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 (h *Harness) UpdateDevice(deviceId string, updateFunction func(*v1beta1.Device)) error

func (*Harness) UpdateDeviceConfigWithRetries added in v0.8.1

func (h *Harness) UpdateDeviceConfigWithRetries(deviceId string, configs []v1beta1.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 (h *Harness) UpdateDeviceWithRetries(deviceId string, updateFunction func(*v1beta1.Device)) error

func (*Harness) UpdateFleet added in v0.9.0

func (h *Harness) UpdateFleet(fleetName string, updateFunc func(*v1beta1.Fleet)) error

func (*Harness) UpdateFleetWithRetries added in v0.9.0

func (h *Harness) UpdateFleetWithRetries(fleetName string, updateFunction func(*v1beta1.Fleet))

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 (h *Harness) UpdateRole(ctx context.Context, kubernetesClient kubernetes.Interface, flightCtlNs string, role *rbacv1.Role) (*rbacv1.Role, error)

func (*Harness) UpdateSystemdMatchPatterns added in v1.0.0

func (h *Harness) UpdateSystemdMatchPatterns(deviceID string, patterns []string) error

UpdateSystemdMatchPatterns applies the given match patterns to device.spec.systemd.

func (*Harness) ValidateFleetYAMLDevicesPerFleet

func (h *Harness) ValidateFleetYAMLDevicesPerFleet(yamlContent string, expectedDevicesPerFleet int, expectedFleetCount int) error

func (*Harness) VerifyDeviceTPMAttestationData added in v0.10.0

func (h *Harness) VerifyDeviceTPMAttestationData(device *v1beta1.Device) error

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 v1beta1.DeviceSystemInfo) error

VerifyEnrollmentTPMAttestationData checks for TPM attestation data in enrollment request SystemInfo Returns error if no TPM attestation data is found

func (*Harness) VerifyServiceExists

func (h *Harness) VerifyServiceExists(namespace, name string) error

VerifyServiceExists verifies a Kubernetes service exists.

func (*Harness) VerifyTPMFunctionality added in v0.10.0

func (h *Harness) VerifyTPMFunctionality() error

VerifyTPMFunctionality checks that TPM device is accessible and functional.

func (*Harness) WaitForBatchStart added in v0.8.1

func (h *Harness) WaitForBatchStart(fleetName string, batchNumber int)

func (*Harness) WaitForBootstrapAndUpdateToVersion added in v0.4.0

func (h *Harness) WaitForBootstrapAndUpdateToVersion(deviceId string, version string) (*v1beta1.Device, util.ImageReference, error)

func (*Harness) WaitForClusterRegistered added in v0.8.1

func (h *Harness) WaitForClusterRegistered(deviceId string, timeout time.Duration) error

func (*Harness) WaitForDeviceContents added in v0.3.0

func (h *Harness) WaitForDeviceContents(deviceId string, description string, condition func(*v1beta1.Device) bool, timeout string)

func (*Harness) WaitForDeviceNewGeneration added in v0.6.0

func (h *Harness) WaitForDeviceNewGeneration(deviceId string, newGeneration int64) (err error)

func (*Harness) WaitForDeviceNewRenderedVersion added in v0.4.0

func (h *Harness) WaitForDeviceNewRenderedVersion(deviceId string, newRenderedVersionInt int) (err error)

func (*Harness) WaitForEnrollmentRequest

func (h *Harness) WaitForEnrollmentRequest(id string) *v1beta1.EnrollmentRequest

func (*Harness) WaitForFileInDevice added in v0.8.1

func (h *Harness) WaitForFileInDevice(filePath string, timeout string, polling string) (*bytes.Buffer, error)

func (*Harness) WaitForFleetContents added in v0.9.0

func (h *Harness) WaitForFleetContents(fleetName string, description string, condition func(fleet *v1beta1.Fleet) bool, timeout string)

func (*Harness) WaitForFleetCount

func (h *Harness) WaitForFleetCount(params *v1beta1.ListFleetsParams, expectedCount int, timeout, polling time.Duration)

func (*Harness) WaitForFleetUpdateToFail added in v0.8.1

func (h *Harness) WaitForFleetUpdateToFail(fleetName string)

func (*Harness) WaitForResourceSyncCondition

func (h *Harness) WaitForResourceSyncCondition(name string, condType v1beta1.ConditionType, expectedStatus v1beta1.ConditionStatus, timeout, polling time.Duration)

func (*Harness) WaitForResourceSyncStatus added in v0.10.0

func (h *Harness) WaitForResourceSyncStatus(name string, expectedStatus v1beta1.ConditionStatus, timeout string) error

WaitForResourceSyncStatus waits for a ResourceSync to reach a specific status

func (*Harness) WaitForSystemdUnitStatus added in v1.0.0

func (h *Harness) WaitForSystemdUnitStatus(deviceID, unitName string, timeout, polling any) v1beta1.SystemdUnitStatus

WaitForSystemdUnitStatus waits until the requested unit appears in status.systemd and returns it. timeout and polling mirror Gomega Eventually args (string or time.Duration).

func (*Harness) WaitForSystemdUnitsLen added in v1.0.0

func (h *Harness) WaitForSystemdUnitsLen(deviceID string, expectedLen int, timeout, polling any) int

WaitForSystemdUnitsLen waits until status.systemd has the expected number of units. Returns the final length for convenience.

func (*Harness) WaitForTPMInitialization added in v0.10.0

func (h *Harness) WaitForTPMInitialization() error

WaitForTPMInitialization waits for TPM hardware to be ready in the VM. This should be called after VM setup but before agent configuration.

type PromQueryResponse

type PromQueryResponse struct {
	Status string `json:"status"`
	Data   struct {
		Result []struct {
			Metric map[string]string `json:"metric"`
			Value  []interface{}     `json:"value"`
		} `json:"result"`
	} `json:"data"`
}

PromQueryResponse represents a Prometheus query response.

type ResourceTestConfig

type ResourceTestConfig struct {
	Resources     []string
	ShouldSucceed bool
}

ResourceTestConfig represents a test configuration for resource operations with different success expectations per resource group

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

func (p *VMPool) CleanupAll() error

CleanupAll cleans up all VMs in the pool

func (*VMPool) CleanupWorkerVM added in v0.10.0

func (p *VMPool) CleanupWorkerVM(workerID int) error

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

type VMPoolConfig struct {
	BaseDiskPath string
	TempDir      string
	SSHPortBase  int
}

VMPoolConfig holds configuration for the VM pool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL