Help us shape the future of Go! Take the 2026 Go Developer Survey

v1beta1

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the test v1beta1 API group +kubebuilder:object:generate=true +groupName=test.openstack.org

Index

Constants

View Source
const (
	// ErrPrivilegedModeRequired
	ErrPrivilegedModeRequired = "%s.Spec.Privileged is requied in order to successfully " +
		"execute tests with the provided configuration."

	// ErrDebug
	ErrDebug = "%s.Spec.Workflow parameter must be empty to run debug mode"
)
View Source
const (
	// WarnPrivilegedModeOn
	WarnPrivilegedModeOn = "%s.Spec.Privileged is set to true. This means that test pods " +
		"are spawned with allowPrivilegedEscalation: true, readOnlyRootFilesystem: false, " +
		"runAsNonRoot: false, automountServiceAccountToken: true and default " +
		"capabilities on top of those required by the test operator (NET_ADMIN, NET_RAW)."

	// WarnPrivilegedModeOff
	WarnPrivilegedModeOff = "%[1]s.Spec.Privileged is set to false. Note, that a certain " +
		"set of tests might fail, as this configuration may be " +
		"required for the tests to run successfully. Before enabling" +
		"this parameter, consult documentation of the %[1]s CR."

	// WarnSELinuxLevel
	WarnSELinuxLevel = "%[1]s.Spec.Workflow is used and %[1]s.Spec.Privileged is " +
		"set to true. Please, consider setting %[1]s.Spec.SELinuxLevel. This " +
		"ensures that the copying of the logs to the PV is completed without any " +
		"complications."
)
View Source
const (
	// ConfigHash - TempestConfigHash key
	ConfigHash = "TempestConfigHash"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "test.openstack.org", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AnsibleTest

type AnsibleTest struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AnsibleTestSpec  `json:"spec,omitempty"`
	Status CommonTestStatus `json:"status,omitempty"`
}

func (*AnsibleTest) DeepCopy

func (in *AnsibleTest) DeepCopy() *AnsibleTest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleTest.

func (*AnsibleTest) DeepCopyInto

func (in *AnsibleTest) DeepCopyInto(out *AnsibleTest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AnsibleTest) DeepCopyObject

func (in *AnsibleTest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*AnsibleTest) Default

func (r *AnsibleTest) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (AnsibleTest) RbacConditionsSet

func (instance AnsibleTest) RbacConditionsSet(c *condition.Condition)

RbacConditionsSet - set the conditions for the rbac object

func (AnsibleTest) RbacNamespace

func (instance AnsibleTest) RbacNamespace() string

RbacNamespace - return the namespace

func (AnsibleTest) RbacResourceName

func (instance AnsibleTest) RbacResourceName() string

RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)

func (*AnsibleTest) SetupWebhookWithManager

func (r *AnsibleTest) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*AnsibleTest) ValidateCreate

func (r *AnsibleTest) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*AnsibleTest) ValidateDelete

func (r *AnsibleTest) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*AnsibleTest) ValidateUpdate

func (r *AnsibleTest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type AnsibleTestList

type AnsibleTestList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AnsibleTest `json:"items"`
}

AnsibleTestList contains a list of AnsibleTest

func (*AnsibleTestList) DeepCopy

func (in *AnsibleTestList) DeepCopy() *AnsibleTestList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleTestList.

func (*AnsibleTestList) DeepCopyInto

func (in *AnsibleTestList) DeepCopyInto(out *AnsibleTestList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AnsibleTestList) DeepCopyObject

func (in *AnsibleTestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AnsibleTestSpec

type AnsibleTestSpec struct {
	CommonOptions         `json:",inline"`
	CommonOpenstackConfig `json:",inline"`

	// +kubebuilder:default:={limits: {cpu: "4000m", memory: "4Gi"}, requests: {cpu: "2000m", memory: "2Gi"}}
	// The desired amount of resources that should be assigned to each test pod
	// spawned using the AnsibleTest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:="dataplane-ansible-ssh-private-key-secret"
	// ComputeSSHKeySecretName is the name of the k8s secret that contains an ssh key for computes.
	// The key is mounted to ~/.ssh/id_ecdsa in the ansible pod
	ComputesSSHKeySecretName string `json:"computeSSHKeySecretName"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// WorkloadSSHKeySecretName is the name of the k8s secret that contains an ssh key for the ansible workload.
	// The key is mounted to ~/test_keypair.key in the ansible pod
	WorkloadSSHKeySecretName string `json:"workloadSSHKeySecretName"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Required
	// +kubebuilder:default:=""
	// AnsibleGitRepo - git repo to clone into container
	AnsibleGitRepo string `json:"ansibleGitRepo"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Required
	// +kubebuilder:default:=""
	// AnsiblePlaybookPath - path to ansible playbook
	AnsiblePlaybookPath string `json:"ansiblePlaybookPath"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +kubebuilder:default:=""
	// AnsibleCollections - extra ansible collections to instal in additionn to the ones exist in the requirements.yaml
	AnsibleCollections string `json:"ansibleCollections,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +kubebuilder:default:=""
	// AnsibleVarFiles - interface to create ansible var files Those get added to the
	AnsibleVarFiles string `json:"ansibleVarFiles,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +kubebuilder:default:=""
	// AnsibleExtraVars - string to pass parameters to ansible using
	AnsibleExtraVars string `json:"ansibleExtraVars,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +kubebuilder:default:=""
	// AnsibleInventory - string that contains the inventory file content
	AnsibleInventory string `json:"ansibleInventory,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	// Run ansible playbook with -vvvv
	Debug bool `json:"debug"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A parameter that contains a workflow definition.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	Workflow []AnsibleTestWorkflowSpec `json:"workflow,omitempty"`
}

AnsibleTestSpec defines the desired state of AnsibleTest

func (*AnsibleTestSpec) DeepCopy

func (in *AnsibleTestSpec) DeepCopy() *AnsibleTestSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleTestSpec.

func (*AnsibleTestSpec) DeepCopyInto

func (in *AnsibleTestSpec) DeepCopyInto(out *AnsibleTestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnsibleTestWorkflowSpec

type AnsibleTestWorkflowSpec struct {
	WorkflowCommonParameters `json:",inline"`
	CommonOpenstackConfig    `json:",inline"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength:=100
	// Name of a workflow step. The step name will be used for example to create
	// a logs directory.
	StepName string `json:"stepName"`

	// The desired amount of resources that should be assigned to each test pod
	// spawned using the AnsibleTest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	// +kubebuilder:default:={limits: {cpu: "2000m", memory: "2Gi"}, requests: {cpu: "1000m", memory: "2Gi"}}
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// ComputeSSHKeySecretName is the name of the k8s secret that contains an ssh key for computes.
	// The key is mounted to ~/.ssh/id_ecdsa in the ansible pod
	ComputesSSHKeySecretName string `json:"computeSSHKeySecretName"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// WorkloadSSHKeySecretName is the name of the k8s secret that contains an ssh key for the ansible workload.
	// The key is mounted to ~/test_keypair.key in the ansible pod
	WorkloadSSHKeySecretName string `json:"workloadSSHKeySecretName"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// AnsibleGitRepo - git repo to clone into container
	AnsibleGitRepo string `json:"ansibleGitRepo,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// AnsiblePlaybookPath - path to ansible playbook
	AnsiblePlaybookPath string `json:"ansiblePlaybookPath,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// AnsibleCollections - extra ansible collections to instal in additionn to the ones exist in the requirements.yaml
	AnsibleCollections string `json:"ansibleCollections,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// AnsibleVarFiles - interface to create ansible var files Those get added to the
	// service config dir in /etc/test_operator/<file> and passed to the ansible command using -e @/etc/test_operator/<file>
	AnsibleVarFiles string `json:"ansibleVarFiles,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// AnsibleExtraVars - interface to pass parameters to ansible using -e
	AnsibleExtraVars string `json:"ansibleExtraVars,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// AnsibleInventory - string that contains the inventory file content
	AnsibleInventory string `json:"ansibleInventory,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// Run ansible playbook with -vvvv
	Debug bool `json:"debug,omitempty"`
}

func (*AnsibleTestWorkflowSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleTestWorkflowSpec.

func (*AnsibleTestWorkflowSpec) DeepCopyInto

func (in *AnsibleTestWorkflowSpec) DeepCopyInto(out *AnsibleTestWorkflowSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommonOpenstackConfig

type CommonOpenstackConfig struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default=openstack-config
	// +kubebuilder:validation:Optional
	// OpenStackConfigMap is the name of the ConfigMap containing the clouds.yaml
	OpenStackConfigMap string `json:"openStackConfigMap"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default=openstack-config-secret
	// +kubebuilder:validation:Optional
	// OpenStackConfigSecret is the name of the Secret containing the secure.yaml
	OpenStackConfigSecret string `json:"openStackConfigSecret"`
}

func (*CommonOpenstackConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonOpenstackConfig.

func (*CommonOpenstackConfig) DeepCopyInto

func (in *CommonOpenstackConfig) DeepCopyInto(out *CommonOpenstackConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommonOptions

type CommonOptions struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +kubebuilder:default=false
	// +optional
	// Use with caution! This parameter specifies whether test-operator should spawn
	// test pods with allowedPrivilegedEscalation: true, readOnlyRootFilesystem: false,
	// runAsNonRoot: false, automountServiceAccountToken: true, and the default
	// capabilities on top of capabilities that are usually needed by the test
	// pods (NET_ADMIN, NET_RAW). This parameter is deemed insecure but it is
	// needed for certain test-operator functionalities to work properly (e.g.:
	// extraRPMs in Tempest CR, or certain set of tobiko tests).
	Privileged bool `json:"privileged"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:="local-storage"
	// StorageClass used to create any test-operator related PVCs.
	StorageClass string `json:"storageClass"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A SELinuxLevel that should be used for test pods spawned by the test
	// operator.
	SELinuxLevel string `json:"SELinuxLevel"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// A URL of a container image that should be used by the test-operator for tests execution.
	ContainerImage string `json:"containerImage"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// BackoffLimit allows to define the maximum number of retried executions (defaults to 0).
	// +kubebuilder:default:=0
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	BackoffLimit *int32 `json:"backoffLimit,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// Extra configmaps for mounting inside the pod
	ExtraConfigmapsMounts []ExtraConfigmapsMounts `json:"extraConfigmapsMounts,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// This value contains a nodeSelector value that is applied to test pods
	// spawned by the test operator.
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// This value contains a toleration that is applied to pods spawned by the
	// test pods that are spawned by the test-operator.
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

func (*CommonOptions) DeepCopy

func (in *CommonOptions) DeepCopy() *CommonOptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonOptions.

func (*CommonOptions) DeepCopyInto

func (in *CommonOptions) DeepCopyInto(out *CommonOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommonTestStatus

type CommonTestStatus struct {

	// Map of hashes to track e.g. job status
	Hash map[string]string `json:"hash,omitempty"`

	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	// NetworkAttachments status of the deployment pods
	NetworkAttachments map[string][]string `json:"networkAttachments,omitempty"`
}

CommonTestStatus defines the observed state of the controller

func (*CommonTestStatus) DeepCopy

func (in *CommonTestStatus) DeepCopy() *CommonTestStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonTestStatus.

func (*CommonTestStatus) DeepCopyInto

func (in *CommonTestStatus) DeepCopyInto(out *CommonTestStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalPluginType

type ExternalPluginType struct {
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// URL that points to a git repository containing an external plugin.
	Repository string `json:"repository"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// URL that points to a repository that contains a change that should be
	// applied to the repository defined by Repository (ChangeRefspec must be
	// defined as well).
	ChangeRepository string `json:"changeRepository,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// ChangeRefspec specifies which change the remote repository should be
	// checked out to (ChangeRepository must be defined as well).
	ChangeRefspec string `json:"changeRefspec,omitempty"`
}

ExternalPluginType - is used to specify a plugin that should be installed from an external resource

func (*ExternalPluginType) DeepCopy

func (in *ExternalPluginType) DeepCopy() *ExternalPluginType

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalPluginType.

func (*ExternalPluginType) DeepCopyInto

func (in *ExternalPluginType) DeepCopyInto(out *ExternalPluginType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtraConfigmapsMounts

type ExtraConfigmapsMounts struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength:=253
	// The name of an existing config map for mounting.
	Name string `json:"name"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Required
	// Path within the container at which the volume should be mounted.
	MountPath string `json:"mountPath"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +kubebuilder:default:=""
	// Config map subpath for mounting, defaults to configmap root.
	SubPath string `json:"subPath"`
}

func (*ExtraConfigmapsMounts) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraConfigmapsMounts.

func (*ExtraConfigmapsMounts) DeepCopyInto

func (in *ExtraConfigmapsMounts) DeepCopyInto(out *ExtraConfigmapsMounts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtraImagesFlavorType

type ExtraImagesFlavorType struct {
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Name of the flavor that should be created
	Name string `json:"name"`

	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// How much RAM should be allocated when this flavor is used
	RAM int64 `json:"RAM"`

	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// How much disk space should be allocated when this flavor is used
	Disk int64 `json:"disk"`

	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// How many vcpus should be be allocated when this flavor is used
	Vcpus int64 `json:"vcpus"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="-"
	// ID that should be assigned to the newly created flavor
	ID string `json:"ID"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="-"
	// Cloud that should be used for authentication
	OsCloud string `json:"osCloud"`
}

func (*ExtraImagesFlavorType) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraImagesFlavorType.

func (*ExtraImagesFlavorType) DeepCopyInto

func (in *ExtraImagesFlavorType) DeepCopyInto(out *ExtraImagesFlavorType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExtraImagesType

type ExtraImagesType struct {
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// URL that points to a location where the image is located
	URL string `json:"URL"`

	// +kubebuilder:validation:Required
	// Name of the image
	Name string `json:"name"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="-"
	// Cloud that should be used for authentication
	OsCloud string `json:"osCloud"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="-"
	// Image container format
	ContainerFormat string `json:"containerFormat"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="-"
	// Image disk format
	DiskFormat string `json:"diskFormat"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="-"
	// ID that should be assigned to the newly created image
	ID string `json:"ID"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=300
	// Timeout duration for an image to reach the active state after its creation
	ImageCreationTimeout int64 `json:"imageCreationTimeout"`

	// +kubebuilder:validation:Optional
	// Information about flavor that should be created together with the image
	Flavor ExtraImagesFlavorType `json:"flavor"`
}

ExtraImagesType - is used to specify extra images that should be downloaded inside the test pod and uploaded to openstack

func (*ExtraImagesType) DeepCopy

func (in *ExtraImagesType) DeepCopy() *ExtraImagesType

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraImagesType.

func (*ExtraImagesType) DeepCopyInto

func (in *ExtraImagesType) DeepCopyInto(out *ExtraImagesType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HorizonTest

type HorizonTest struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   HorizonTestSpec  `json:"spec,omitempty"`
	Status CommonTestStatus `json:"status,omitempty"`
}

func (*HorizonTest) DeepCopy

func (in *HorizonTest) DeepCopy() *HorizonTest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizonTest.

func (*HorizonTest) DeepCopyInto

func (in *HorizonTest) DeepCopyInto(out *HorizonTest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HorizonTest) DeepCopyObject

func (in *HorizonTest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*HorizonTest) Default

func (r *HorizonTest) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (HorizonTest) RbacConditionsSet

func (instance HorizonTest) RbacConditionsSet(c *condition.Condition)

RbacConditionsSet - set the conditions for the rbac object

func (HorizonTest) RbacNamespace

func (instance HorizonTest) RbacNamespace() string

RbacNamespace - return the namespace

func (HorizonTest) RbacResourceName

func (instance HorizonTest) RbacResourceName() string

RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)

func (*HorizonTest) SetupWebhookWithManager

func (r *HorizonTest) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*HorizonTest) ValidateCreate

func (r *HorizonTest) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*HorizonTest) ValidateDelete

func (r *HorizonTest) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*HorizonTest) ValidateUpdate

func (r *HorizonTest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type HorizonTestList

type HorizonTestList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HorizonTest `json:"items"`
}

HorizonTestList contains a list of HorizonTest

func (*HorizonTestList) DeepCopy

func (in *HorizonTestList) DeepCopy() *HorizonTestList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizonTestList.

func (*HorizonTestList) DeepCopyInto

func (in *HorizonTestList) DeepCopyInto(out *HorizonTestList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HorizonTestList) DeepCopyObject

func (in *HorizonTestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HorizonTestSpec

type HorizonTestSpec struct {
	CommonOptions `json:",inline"`

	// +kubebuilder:default:={limits: {cpu: "2000m", memory: "4Gi"}, requests: {cpu: "1000m", memory: "2Gi"}}
	// The desired amount of resources that should be assigned to each test pod
	// spawned using the HorizonTest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Activate debug mode. When debug mode is activated any error encountered
	// inside the test-pod causes that the pod will be kept alive indefinitely
	// (stuck in "Running" phase) or until the corresponding HorizonTest CR is deleted.
	// This allows the user to debug any potential troubles with `oc rsh`.
	Debug bool `json:"debug"`

	// AdminUsername is the username for the OpenStack admin user.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="admin"
	AdminUsername string `json:"adminUsername"`

	// AdminPassword is the password for the OpenStack admin user.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="admin"
	AdminPassword string `json:"adminPassword"`

	// DashboardUrl is the URL of the Horizon dashboard.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	DashboardUrl string `json:"dashboardUrl"`

	// AuthUrl is the authentication URL for OpenStack.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	AuthUrl string `json:"authUrl"`

	// RepoUrl is the URL of the Horizon repository.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="https://review.opendev.org/openstack/horizon"
	RepoUrl string `json:"repoUrl"`

	// HorizonRepoBranch is the branch of the Horizon repository to checkout.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="master"
	HorizonRepoBranch string `json:"horizonRepoBranch"`

	// ImageUrl is the URL to download the Cirros image.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img"
	ImageUrl string `json:"imageUrl"`

	// ProjectName is the name of the OpenStack project for Horizon tests.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="horizontest"
	ProjectName string `json:"projectName"`

	// User is the username under which the Horizon tests will run.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="horizontest"
	User string `json:"user"`

	// Password is the password for the user running the Horizon tests.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="horizontest"
	Password string `json:"password"`

	// FlavorName is the name of the OpenStack flavor to create for Horizon tests.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="m1.tiny"
	FlavorName string `json:"flavorName"`

	// LogsDirectoryName is the name of the directory to store test logs.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="horizon"
	LogsDirectoryName string `json:"logsDirectoryName"`

	// HorizonTestDir is the directory path for Horizon tests.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="/var/lib/horizontest"
	HorizonTestDir string `json:"horizonTestDir"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Parallel
	Parallel bool `json:"parallel"`

	// Name of a secret that contains a kubeconfig. The kubeconfig is mounted under /var/lib/horizontest/.kube/config
	// in the test pod.
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	KubeconfigSecretName string `json:"kubeconfigSecretName,omitempty"`
}

HorizonTestSpec defines the desired state of HorizonTest

func (*HorizonTestSpec) DeepCopy

func (in *HorizonTestSpec) DeepCopy() *HorizonTestSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizonTestSpec.

func (*HorizonTestSpec) DeepCopyInto

func (in *HorizonTestSpec) DeepCopyInto(out *HorizonTestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Tempest

type Tempest struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TempestSpec      `json:"spec,omitempty"`
	Status CommonTestStatus `json:"status,omitempty"`
}

func (*Tempest) DeepCopy

func (in *Tempest) DeepCopy() *Tempest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tempest.

func (*Tempest) DeepCopyInto

func (in *Tempest) DeepCopyInto(out *Tempest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tempest) DeepCopyObject

func (in *Tempest) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Tempest) Default

func (r *Tempest) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Tempest) PrivilegedRequired

func (r *Tempest) PrivilegedRequired() bool

func (Tempest) RbacConditionsSet

func (instance Tempest) RbacConditionsSet(c *condition.Condition)

RbacConditionsSet - set the conditions for the rbac object

func (Tempest) RbacNamespace

func (instance Tempest) RbacNamespace() string

RbacNamespace - return the namespace

func (Tempest) RbacResourceName

func (instance Tempest) RbacResourceName() string

RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)

func (*Tempest) SetupWebhookWithManager

func (r *Tempest) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Tempest) ValidateCreate

func (r *Tempest) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Tempest) ValidateDelete

func (r *Tempest) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Tempest) ValidateUpdate

func (r *Tempest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type TempestDefaults

type TempestDefaults struct {
	ContainerImageURL string
}

TempestDefaults -

func (*TempestDefaults) DeepCopy

func (in *TempestDefaults) DeepCopy() *TempestDefaults

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestDefaults.

func (*TempestDefaults) DeepCopyInto

func (in *TempestDefaults) DeepCopyInto(out *TempestDefaults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempestList

type TempestList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Tempest `json:"items"`
}

TempestList contains a list of Tempest

func (*TempestList) DeepCopy

func (in *TempestList) DeepCopy() *TempestList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestList.

func (*TempestList) DeepCopyInto

func (in *TempestList) DeepCopyInto(out *TempestList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TempestList) DeepCopyObject

func (in *TempestList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TempestRunSpec

type TempestRunSpec struct {
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="tempest.api.identity.v3"
	// A content of include.txt file that is passed to tempest via --include-list
	IncludeList string `json:"includeList"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of exclude.txt file that is passed to tempest via --exclude-list
	ExcludeList string `json:"excludeList"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The expectedFailuresList parameter contains tests that should not count
	// as failures. When a test from this list fails, the test pod ends with
	// Completed state rather than with Error state.
	ExpectedFailuresList string `json:"expectedFailuresList"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=0
	// Concurrency value that is passed to tempest via --concurrency
	Concurrency int64 `json:"concurrency"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether tempest should be executed with --smoke
	Smoke bool `json:"smoke"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=true
	// Indicate whether tempest should be executed with --parallel
	Parallel bool `json:"parallel"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether tempest should be executed with --serial
	Serial bool `json:"serial"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// A content of worker_file.yaml that is passed to tempest via --worker-file
	WorkerFile string `json:"workerFile"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// ExternalPlugin contains information about plugin that should be installed
	// within the tempest test pod. If this option is specified then only tests
	// that are part of the external plugin can be executed.
	ExternalPlugin []ExternalPluginType `json:"externalPlugin,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A list URLs that point to RPMs that should be downloaded and installed
	// inside the tempest test pod.
	ExtraRPMs []string `json:"extraRPMs,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Extra images that should be downloaded inside the test pod and uploaded to
	// openstack.
	ExtraImages []ExtraImagesType `json:"extraImages,omitempty"`
}

TempestRunSpec - is used to configure execution of tempest. Please refer to Please refer to https://docs.openstack.org/tempest/latest/ for the further explanation of the CLI parameters.

func (*TempestRunSpec) DeepCopy

func (in *TempestRunSpec) DeepCopy() *TempestRunSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestRunSpec.

func (*TempestRunSpec) DeepCopyInto

func (in *TempestRunSpec) DeepCopyInto(out *TempestRunSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TempestSpec

type TempestSpec struct {
	CommonOptions         `json:",inline"`
	CommonOpenstackConfig `json:",inline"`

	// +kubebuilder:default:={limits: {cpu: "8000m", memory: "4Gi"}, requests: {cpu: "4000m", memory: "2Gi"}}
	// The desired amount of resources that should be assigned to each test pod
	// spawned using the Tempest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// By default test-operator executes the test-pods sequentially if multiple
	// instances of test-operator related CRs exist. If you want to turn off this
	// behaviour then set this option to true.
	Parallel bool `json:"parallel"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Activate debug mode. When debug mode is activated any error encountered
	// inside the test-pod causes that the pod will be kept alive indefinitely
	// (stuck in "Running" phase) or until the corresponding Tempest CR is deleted.
	// This allows the user to debug any potential troubles with `oc rsh`.
	Debug bool `json:"debug"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Activate tempest cleanup. When activated, tempest will run tempest cleanup
	// after test execution is complete to delete any resources created by tempest
	// that may have been left out.
	Cleanup bool `json:"cleanup"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// NetworkAttachments is a list of NetworkAttachment resource names to expose
	// the services to the given network
	NetworkAttachments []string `json:"networkAttachments,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TempestRun TempestRunSpec `json:"tempestRun,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TempestconfRun TempestconfRunSpec `json:"tempestconfRun,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// SSHKeySecretName is the name of the k8s secret that contains an ssh key.
	// The key is mounted to ~/.ssh/id_ecdsa in the tempest pod
	SSHKeySecretName string `json:"SSHKeySecretName"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf
	// But can also be used to add additional files. Those get added to the
	// service config dir in /etc/test_operator/<file>
	ConfigOverwrite map[string]string `json:"configOverwrite,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Workflow - can be used to specify a multiple executions of tempest with
	// a different configuration in a single CR. Accepts a list of dictionaries
	// where each member of the list accepts the same values as the Tempest CR
	// does in the `spec“ section. Values specified using the workflow section have
	// a higher precedence than the values specified higher in the Tempest CR
	// hierarchy.
	Workflow []WorkflowTempestSpec `json:"workflow,omitempty"`
}

TempestSpec - configuration of execution of tempest. For specific configuration of tempest see TempestRunSpec and for discover-tempest-config see TempestconfRunSpec.

func (*TempestSpec) DeepCopy

func (in *TempestSpec) DeepCopy() *TempestSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestSpec.

func (*TempestSpec) DeepCopyInto

func (in *TempestSpec) DeepCopyInto(out *TempestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TempestSpec) Default

func (spec *TempestSpec) Default()

Default - set defaults for this Tempest spec.

type TempestconfRunSpec

type TempestconfRunSpec struct {
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=true
	// Indicate whether discover-tempest-config should be executed with --create
	Create bool `json:"create"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with
	// --collect-timing
	CollectTiming bool `json:"collectTiming"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with --insecure
	Insecure bool `json:"insecure"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with
	// --no-default-deployer
	NoDefaultDeployer bool `json:"noDefaultDeployer"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with --debug
	Debug bool `json:"debug"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with --verbose
	Verbose bool `json:"verbose"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with --non-admin
	NonAdmin bool `json:"nonAdmin"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with --retry-image
	RetryImage bool `json:"retryImage"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Indicate whether discover-tempest-config should be executed with
	// --convert-to-raw
	ConvertToRaw bool `json:"convertToRaw"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// the --out parameter
	Out string `json:"out"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// A content of deployer_input.ini that is passed to tempest via --deployer-input
	DeployerInput string `json:"deployerInput"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// A content of accounts.yaml that is passed to tempest via --test-acounts
	TestAccounts string `json:"testAccounts"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// the --create-accounts-file
	CreateAccountsFile string `json:"createAccountsFile"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// A content of profile.yaml that is passed to tempest via --profile
	Profile string `json:"profile"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// --generate-profile
	GenerateProfile string `json:"generateProfile"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// --image-disk-format
	ImageDiskFormat string `json:"imageDiskFormat"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// --image
	Image string `json:"image"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=0
	// The content of this variable will be passed to discover-tempest-config via
	// --flavor-min-mem
	FlavorMinMem int64 `json:"flavorMinMem"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=0
	// The content of this variable will be passed to discover-tempest-config via
	// --flavor-min-disk
	FlavorMinDisk int64 `json:"flavorMinDisk"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// --network-id
	NetworkID string `json:"networkID"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// --append
	Append string `json:"append"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// The content of this variable will be passed to discover-tempest-config via
	// --remove
	Remove string `json:"remove"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="identity.v3_endpoint_type public"
	// The content of this variable will be appended at the end of the command
	// that executes discover-tempest-config (override values).
	Overrides string `json:"overrides"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=0
	// The content of this variable will be passed to discover-tempest-config via
	// --timeout
	Timeout int64 `json:"timeout"`
}

TempestconfRunSpec - is used to configure execution of discover-tempest-config Please refer to https://docs.opendev.org/openinfra/python-tempestconf for the further explanation of the CLI parameters.

func (*TempestconfRunSpec) DeepCopy

func (in *TempestconfRunSpec) DeepCopy() *TempestconfRunSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestconfRunSpec.

func (*TempestconfRunSpec) DeepCopyInto

func (in *TempestconfRunSpec) DeepCopyInto(out *TempestconfRunSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Tobiko

type Tobiko struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TobikoSpec       `json:"spec,omitempty"`
	Status CommonTestStatus `json:"status,omitempty"`
}

func (*Tobiko) DeepCopy

func (in *Tobiko) DeepCopy() *Tobiko

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tobiko.

func (*Tobiko) DeepCopyInto

func (in *Tobiko) DeepCopyInto(out *Tobiko)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tobiko) DeepCopyObject

func (in *Tobiko) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Tobiko) Default

func (r *Tobiko) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (Tobiko) RbacConditionsSet

func (instance Tobiko) RbacConditionsSet(c *condition.Condition)

RbacConditionsSet - set the conditions for the rbac object

func (Tobiko) RbacNamespace

func (instance Tobiko) RbacNamespace() string

RbacNamespace - return the namespace

func (Tobiko) RbacResourceName

func (instance Tobiko) RbacResourceName() string

RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)

func (*Tobiko) SetupWebhookWithManager

func (r *Tobiko) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Tobiko) ValidateCreate

func (r *Tobiko) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Tobiko) ValidateDelete

func (r *Tobiko) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Tobiko) ValidateUpdate

func (r *Tobiko) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type TobikoList

type TobikoList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Tobiko `json:"items"`
}

TobikoList contains a list of Tobiko

func (*TobikoList) DeepCopy

func (in *TobikoList) DeepCopy() *TobikoList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TobikoList.

func (*TobikoList) DeepCopyInto

func (in *TobikoList) DeepCopyInto(out *TobikoList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TobikoList) DeepCopyObject

func (in *TobikoList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TobikoSpec

type TobikoSpec struct {
	CommonOptions `json:",inline"`

	// +kubebuilder:default:={limits: {cpu: "8000m", memory: "8Gi"}, requests: {cpu: "4000m", memory: "4Gi"}}
	// The desired amount of resources that should be assigned to each test pod
	// spawned using the Tobiko CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Activate debug mode. When debug mode is activated any error encountered
	// inside the test-pod causes that the pod will be kept alive indefinitely
	// (stuck in "Running" phase) or until the corresponding Tobiko CR is deleted.
	// This allows the user to debug any potential troubles with `oc rsh`.
	Debug bool `json:"debug"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="py3"
	// Test environment
	Testenv string `json:"testenv"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// String including any options to pass to pytest when it runs tobiko tests
	PytestAddopts string `json:"pytestAddopts"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// Boolean specifying whether tobiko tests create new resources or re-use those previously created
	PreventCreate bool `json:"preventCreate"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=4
	// Number of processes/workers used to run tobiko tests - value 0 results in automatic decission
	NumProcesses uint8 `json:"numProcesses"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// Tobiko version
	Version string `json:"version"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// tobiko.conf
	Config string `json:"config"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// Private Key
	PrivateKey string `json:"privateKey"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// Public Key
	PublicKey string `json:"publicKey"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=false
	// By default test-operator executes the test-pods sequentially if multiple
	// instances of test-operator related CRs exist. To run test-pods in parallel
	// set this option to true.
	Parallel bool `json:"parallel"`

	// Name of a secret that contains a kubeconfig. The kubeconfig is mounted under /var/lib/tobiko/.kube/config
	// in the test pod.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	KubeconfigSecretName string `json:"kubeconfigSecretName,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// NetworkAttachments is a list of NetworkAttachment resource names to expose
	// the services to the given network
	NetworkAttachments []string `json:"networkAttachments,omitempty"`

	// A parameter  that contains a workflow definition.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	Workflow []TobikoWorkflowSpec `json:"workflow,omitempty"`
}

TobikoSpec defines the desired state of Tobiko

func (*TobikoSpec) DeepCopy

func (in *TobikoSpec) DeepCopy() *TobikoSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TobikoSpec.

func (*TobikoSpec) DeepCopyInto

func (in *TobikoSpec) DeepCopyInto(out *TobikoSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TobikoWorkflowSpec

type TobikoWorkflowSpec struct {
	WorkflowCommonParameters `json:",inline"`

	// +kubebuilder:default:={limits: {cpu: "8000m", memory: "8Gi"}, requests: {cpu: "4000m", memory: "4Gi"}}
	// The desired amount of resources that should be assigned to each test pod
	// spawned using the Tobiko CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Test environment
	Testenv string `json:"testenv,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// String including any options to pass to pytest when it runs tobiko tests
	PytestAddopts string `json:"pytestAddopts,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Boolean specifying whether tobiko tests create new resources or re-use those previously created
	PreventCreate *bool `json:"preventCreate,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Number of processes/workers used to run tobiko tests - value 0 results in automatic decission
	NumProcesses *uint8 `json:"numProcesses,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// NetworkAttachments is a list of NetworkAttachment resource names to expose
	// the services to the given network
	NetworkAttachments []string `json:"networkAttachments,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Tobiko version
	Version string `json:"version,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// tobiko.conf
	Config string `json:"config,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Private Key
	PrivateKey string `json:"privateKey,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Public Key
	PublicKey string `json:"publicKey,omitempty"`

	// Name of a secret that contains a kubeconfig. The kubeconfig is mounted under /var/lib/tobiko/.kube/config
	// in the test pod.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	KubeconfigSecretName string `json:"kubeconfigSecretName,omitempty"`

	// A parameter that contains a definition of a single workflow step.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength:=100
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:=""
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	StepName string `json:"stepName"`
}

func (*TobikoWorkflowSpec) DeepCopy

func (in *TobikoWorkflowSpec) DeepCopy() *TobikoWorkflowSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TobikoWorkflowSpec.

func (*TobikoWorkflowSpec) DeepCopyInto

func (in *TobikoWorkflowSpec) DeepCopyInto(out *TobikoWorkflowSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkflowCommonParameters

type WorkflowCommonParameters struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:optional
	// +optional
	// Use with caution! This parameter specifies whether test-operator should spawn test
	// pods with allowedPrivilegedEscalation: true and the default capabilities on
	// top of capabilities that are usually needed by the test pods (NET_ADMIN, NET_RAW).
	// This parameter is deemed insecure but it is needed for certain test-operator
	// functionalities to work properly (e.g.: extraRPMs in Tempest CR, or certain set
	// of tobiko tests).
	Privileged *bool `json:"privileged,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:="local-storage"
	// StorageClass used to create any test-operator related PVCs.
	StorageClass *string `json:"storageClass"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +optional
	// A SELinuxLevel that should be used for test pods spawned by the test
	// operator.
	SELinuxLevel *string `json:"SELinuxLevel,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// A URL of a container image that should be used by the test-operator for tests execution.
	ContainerImage string `json:"containerImage"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// BackoffLimit allows to define the maximum number of retried executions (defaults to 0).
	// +kubebuilder:default:=0
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	BackoffLimit *int32 `json:"backoffLimit,omitempty"`

	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Optional
	// Extra configmaps for mounting inside the pod
	ExtraConfigmapsMounts *[]ExtraConfigmapsMounts `json:"extraConfigmapsMounts,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// This value contains a nodeSelector value that is applied to test pods
	// spawned by the test operator.
	NodeSelector *map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// This value contains a toleration that is applied to pods spawned by the
	// test pods that are spawned by the test-operator.
	Tolerations *[]corev1.Toleration `json:"tolerations,omitempty"`
}

func (*WorkflowCommonParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowCommonParameters.

func (*WorkflowCommonParameters) DeepCopyInto

func (in *WorkflowCommonParameters) DeepCopyInto(out *WorkflowCommonParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkflowTempestRunSpec

type WorkflowTempestRunSpec struct {
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of include.txt file that is passed to tempest via --include-list
	IncludeList *string `json:"includeList,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of exclude.txt file that is passed to tempest via --exclude-list
	ExcludeList *string `json:"excludeList,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The expectedFailuresList parameter contains tests that should not count
	// as failures. When a test from this list fails, the test pod ends with
	// Completed state rather than with Error state.
	ExpectedFailuresList *string `json:"expectedFailuresList,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Concurrency value that is passed to tempest via --concurrency
	Concurrency *int64 `json:"concurrency,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether tempest should be executed with --smoke
	Smoke *bool `json:"smoke,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether tempest should be executed with --parallel
	Parallel *bool `json:"parallel,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether tempest should be executed with --serial
	Serial *bool `json:"serial,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of worker_file.yaml that is passed to tempest via --worker-file
	WorkerFile *string `json:"workerFile,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// ExternalPlugin contains information about plugin that should be installed
	// within the tempest test pod. If this option is specified then only tests
	// that are part of the external plugin can be executed.
	ExternalPlugin *[]ExternalPluginType `json:"externalPlugin,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A list URLs that point to RPMs that should be downloaded and installed
	// inside the tempest test pod.
	ExtraRPMs *[]string `json:"extraRPMs,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Extra images that should be downloaded inside the test pod and uploaded to
	// openstack.
	ExtraImages *[]ExtraImagesType `json:"extraImagesType,omitempty"`
}

TempestRunSpec - is used to configure execution of tempest. Please refer to Please refer to https://docs.openstack.org/tempest/latest/ for the further explanation of the CLI parameters.

func (*WorkflowTempestRunSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTempestRunSpec.

func (*WorkflowTempestRunSpec) DeepCopyInto

func (in *WorkflowTempestRunSpec) DeepCopyInto(out *WorkflowTempestRunSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkflowTempestSpec

type WorkflowTempestSpec struct {
	WorkflowCommonParameters `json:",inline"`
	CommonOpenstackConfig    `json:",inline"`

	// The desired amount of resources that should be assigned to each test pod
	// spawned using the Tempest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
	// +kubebuilder:default:={limits: {cpu: "8000m", memory: "4Gi"}, requests: {cpu: "4000m", memory: "2Gi"}}
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength:=100
	// +kubebuilder:validation:Pattern:=^[a-z0-9]
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Name of a workflow step. The step name will be used for example to create
	// a logs directory.
	StepName string `json:"stepName"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// By default test-operator executes the test-pods sequentially if multiple
	// instances of test-operator related CRs exist. If you want to turn off this
	// behaviour then set this option to true.
	Parallel *bool `json:"parallel,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// NetworkAttachments is a list of NetworkAttachment resource names to expose
	// the services to the given network
	NetworkAttachments *[]string `json:"networkAttachments,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TempestRun WorkflowTempestRunSpec `json:"tempestRun,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TempestconfRun WorkflowTempestconfRunSpec `json:"tempestconfRun,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// SSHKeySecretName is the name of the k8s secret that contains an ssh key.
	// The key is mounted to ~/.ssh/id_ecdsa in the tempest pod
	SSHKeySecretName *string `json:"SSHKeySecretName,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf
	// But can also be used to add additional files. Those get added to the
	// service config dir in /etc/test_operator/<file>
	ConfigOverwrite *map[string]string `json:"configOverwrite,omitempty"`
}

TempestSpec - configuration of execution of tempest. For specific configuration of tempest see TempestRunSpec and for discover-tempest-config see TempestconfRunSpec.

func (*WorkflowTempestSpec) DeepCopy

func (in *WorkflowTempestSpec) DeepCopy() *WorkflowTempestSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTempestSpec.

func (*WorkflowTempestSpec) DeepCopyInto

func (in *WorkflowTempestSpec) DeepCopyInto(out *WorkflowTempestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkflowTempestconfRunSpec

type WorkflowTempestconfRunSpec struct {
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with --create
	Create *bool `json:"create,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with
	// --collect-timing
	CollectTiming *bool `json:"collectTiming,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with --insecure
	Insecure *bool `json:"insecure,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with
	// --no-default-deployer
	NoDefaultDeployer *bool `json:"noDefaultDeployer,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with --debug
	Debug *bool `json:"debug,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with --verbose
	Verbose *bool `json:"verbose,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with --non-admin
	NonAdmin *bool `json:"nonAdmin,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with --retry-image
	RetryImage *bool `json:"retryImage,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// Indicate whether discover-tempest-config should be executed with
	// --convert-to-raw
	ConvertToRaw *bool `json:"convertToRaw,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// the --out parameter
	Out *string `json:"out,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of deployer_input.ini that is passed to tempest via --deployer-input
	DeployerInput *string `json:"deployerInput,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of accounts.yaml that is passed to tempest via --test-acounts
	TestAccounts *string `json:"testAccounts,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// the --create-accounts-file
	CreateAccountsFile *string `json:"createAccountsFile,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// A content of profile.yaml that is passed to tempest via --profile
	Profile *string `json:"profile,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --generate-profile
	GenerateProfile *string `json:"generateProfile,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --image-disk-format
	ImageDiskFormat *string `json:"imageDiskFormat,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --image
	Image *string `json:"image,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --flavor-min-mem
	FlavorMinMem *int64 `json:"flavorMinMem,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --flavor-min-disk
	FlavorMinDisk *int64 `json:"flavorMinDisk,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --network-id
	NetworkID *string `json:"networkID,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --append
	Append *string `json:"append,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --remove
	Remove *string `json:"remove,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be appended at the end of the command
	// that executes discover-tempest-config (override values).
	Overrides *string `json:"overrides,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// The content of this variable will be passed to discover-tempest-config via
	// --timeout
	Timeout *int64 `json:"timeout,omitempty"`
}

TempestconfRunSpec - is used to configure execution of discover-tempest-config Please refer to https://docs.opendev.org/openinfra/python-tempestconf for the further explanation of the CLI parameters.

func (*WorkflowTempestconfRunSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTempestconfRunSpec.

func (*WorkflowTempestconfRunSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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