Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetServiceAccountToken ¶
func GetServiceAccountToken(client kubernetes.Interface, initialDelay, timeoutPeriod time.Duration, namespace, serviceAccountName string) (string, error)
GetServiceAccountToken queries the namespace for the service account and attempts to find the secret that contains the serviceAccount token and return it.
Types ¶
type DeployFramework ¶
type DeployFramework struct {
RunLocal bool
RunDevSetup bool
KubeConfigPath string
RepoDir string
OperatorResources *deploy.OperatorResources
Logger logrus.FieldLogger
Config *rest.Config
Client kubernetes.Interface
APIExtClient apiextclientv1beta1.CustomResourceDefinitionsGetter
MeteringClient meteringclient.MeteringV1Interface
OLMV1Client olmclientv1.OperatorsV1Interface
OLMV1Alpha1Client olmclientv1alpha1.OperatorsV1alpha1Interface
}
DeployFramework contains all the information necessary to deploy different metering instances and run tests against them
func New ¶
func New(logger logrus.FieldLogger, runLocal, runDevSetup bool, nsPrefix, repoDir, kubeconfig string) (*DeployFramework, error)
New is the constructor function that creates and returns a new DeployFramework object
func (*DeployFramework) NewDeployerConfig ¶
func (df *DeployFramework) NewDeployerConfig( namespace, meteringOperatorImageRepo, meteringOperatorImageTag, reportingOperatorImageRepo, reportingOperatorImageTag string, spec metering.MeteringConfigSpec, ) (*deploy.Config, error)
NewDeployerConfig handles the process of validating inputs before returning an initialized Deploy.Config object, or an error if there is any.
func (*DeployFramework) NewDeployerCtx ¶
func (df *DeployFramework) NewDeployerCtx( namespace, meteringOperatorImageRepo, meteringOperatorImageTag, reportingOperatorImageRepo, reportingOperatorImageTag, outputPath string, extraLocalEnvVars []string, spec metering.MeteringConfigSpec, ) (*DeployerCtx, error)
NewDeployerCtx constructs and returns a new DeployerCtx object
type DeployerCtx ¶
type DeployerCtx struct {
TargetPodsCount int
Namespace string
KubeConfigPath string
TestCaseOutputPath string
HackScriptPath string
MeteringOperatorImageRepo string
MeteringOperatorImageTag string
RunTestLocal bool
RunDevSetup bool
ExtraLocalEnvVars []string
LocalCtx *LocalCtx
Deployer *deploy.Deployer
Logger logrus.FieldLogger
Config *rest.Config
Client kubernetes.Interface
APIExtClient apiextclientv1beta1.CustomResourceDefinitionsGetter
MeteringClient meteringclient.MeteringV1Interface
OLMV1Client olmclientv1.OperatorsV1Interface
OLMV1Alpha1Client olmclientv1alpha1.OperatorsV1alpha1Interface
}
DeployerCtx contains all the information needed to manage the full lifecycle of a single metering deployment
func (*DeployerCtx) NewLocalCtx ¶
func (ctx *DeployerCtx) NewLocalCtx() *LocalCtx
NewLocalCtx returns a new LocalCtx object
func (*DeployerCtx) Setup ¶
func (ctx *DeployerCtx) Setup(expectInstallErr bool) (*reportingframework.ReportingFramework, error)
Setup handles the process of deploying metering, and waiting for all the necessary resources to become ready in order to proceeed with running the reporting tests. This returns an initialized reportingframework object, or an error if there is any.
func (*DeployerCtx) Teardown ¶
func (ctx *DeployerCtx) Teardown() error
Teardown is a method that creates the resource and container logging directories, then populates those directories by executing the cleanup bash script, while streaming the script output to stdout. Once the cleanup script has finished execution, we can uninstall the metering stack and return an error if there is any.
type LocalCtx ¶
type LocalCtx struct {
Namespace string
BasePath string
KubeConfigPath string
HackScriptPath string
MeteringOperatorImage string
ReportingAPIURL string
RunReportingOperatorScriptPath string
ExtraReportingOperatorEnvVars []string
CmdArr []exec.Cmd
Logger logrus.FieldLogger
}
LocalCtx holds all the necessary information to run e2e tests locally
func (*LocalCtx) CleanupLocal ¶
CleanupLocal removes all resources that were created while running e2e locally
func (*LocalCtx) RunMeteringOperatorLocal ¶
RunMeteringOperatorLocal is a method that runs the metering-operator locally
type PodWaiter ¶
type PodWaiter struct {
InitialDelay time.Duration
TimeoutPeriod time.Duration
Logger logrus.FieldLogger
Client kubernetes.Interface
}
func (*PodWaiter) WaitForPods ¶
WaitForPods periodically polls the list of pods in the namespace and ensures the metering pods created are considered ready. In order to exit the polling loop, the number of pods listed must match the expected number of targetPodsCount, and all pod containers listed must report a ready status.