v1beta1

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2024 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 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."
)
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"`

	// +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"`

	// +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 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:=""
	// 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: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
	// +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:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:default:="s0:c478,c978"
	// A SELinuxLevel that is used for all the tempest test pods.
	SELinuxLevel string `json:"SELinuxLevel"`

	// +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: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:=0
	// 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: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
	// +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
	// 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"`

	// +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