Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the test v1beta1 API group +kubebuilder:object:generate=true +groupName=test.openstack.org
Index ¶
- Constants
- Variables
- type AnsibleTest
- func (in *AnsibleTest) DeepCopy() *AnsibleTest
- func (in *AnsibleTest) DeepCopyInto(out *AnsibleTest)
- func (in *AnsibleTest) DeepCopyObject() runtime.Object
- func (r *AnsibleTest) Default()
- func (instance AnsibleTest) RbacConditionsSet(c *condition.Condition)
- func (instance AnsibleTest) RbacNamespace() string
- func (instance AnsibleTest) RbacResourceName() string
- func (r *AnsibleTest) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *AnsibleTest) ValidateCreate() (admission.Warnings, error)
- func (r *AnsibleTest) ValidateDelete() (admission.Warnings, error)
- func (r *AnsibleTest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type AnsibleTestList
- type AnsibleTestSpec
- type AnsibleTestWorkflowSpec
- type CommonOpenstackConfig
- type CommonOptions
- type CommonTestStatus
- type ExternalPluginType
- type ExtraConfigmapsMounts
- type ExtraImagesFlavorType
- type ExtraImagesType
- type HorizonTest
- func (in *HorizonTest) DeepCopy() *HorizonTest
- func (in *HorizonTest) DeepCopyInto(out *HorizonTest)
- func (in *HorizonTest) DeepCopyObject() runtime.Object
- func (r *HorizonTest) Default()
- func (instance HorizonTest) RbacConditionsSet(c *condition.Condition)
- func (instance HorizonTest) RbacNamespace() string
- func (instance HorizonTest) RbacResourceName() string
- func (r *HorizonTest) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *HorizonTest) ValidateCreate() (admission.Warnings, error)
- func (r *HorizonTest) ValidateDelete() (admission.Warnings, error)
- func (r *HorizonTest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type HorizonTestList
- type HorizonTestSpec
- type Tempest
- func (in *Tempest) DeepCopy() *Tempest
- func (in *Tempest) DeepCopyInto(out *Tempest)
- func (in *Tempest) DeepCopyObject() runtime.Object
- func (r *Tempest) Default()
- func (r *Tempest) PrivilegedRequired() bool
- func (instance Tempest) RbacConditionsSet(c *condition.Condition)
- func (instance Tempest) RbacNamespace() string
- func (instance Tempest) RbacResourceName() string
- func (r *Tempest) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *Tempest) ValidateCreate() (admission.Warnings, error)
- func (r *Tempest) ValidateDelete() (admission.Warnings, error)
- func (r *Tempest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type TempestDefaults
- type TempestList
- type TempestRunSpec
- type TempestSpec
- type TempestconfRunSpec
- type Tobiko
- func (in *Tobiko) DeepCopy() *Tobiko
- func (in *Tobiko) DeepCopyInto(out *Tobiko)
- func (in *Tobiko) DeepCopyObject() runtime.Object
- func (r *Tobiko) Default()
- func (instance Tobiko) RbacConditionsSet(c *condition.Condition)
- func (instance Tobiko) RbacNamespace() string
- func (instance Tobiko) RbacResourceName() string
- func (r *Tobiko) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *Tobiko) ValidateCreate() (admission.Warnings, error)
- func (r *Tobiko) ValidateDelete() (admission.Warnings, error)
- func (r *Tobiko) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type TobikoList
- type TobikoSpec
- type TobikoWorkflowSpec
- type WorkflowCommonParameters
- type WorkflowTempestRunSpec
- type WorkflowTempestSpec
- type WorkflowTempestconfRunSpec
Constants ¶
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" )
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." )
const (
// ConfigHash - TempestConfigHash key
ConfigHash = "TempestConfigHash"
)
Variables ¶
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 ¶
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 ¶
func (in *AnsibleTestWorkflowSpec) DeepCopy() *AnsibleTestWorkflowSpec
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 ¶
func (in *CommonOpenstackConfig) DeepCopy() *CommonOpenstackConfig
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 ¶
func (in *ExtraConfigmapsMounts) DeepCopy() *ExtraConfigmapsMounts
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 ¶
func (in *ExtraImagesFlavorType) DeepCopy() *ExtraImagesFlavorType
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tempest.
func (*Tempest) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Tempest) DeepCopyObject ¶
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 (Tempest) RbacConditionsSet ¶
RbacConditionsSet - set the conditions for the rbac object
func (Tempest) RbacNamespace ¶
RbacNamespace - return the namespace
func (Tempest) RbacResourceName ¶
RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)
func (*Tempest) SetupWebhookWithManager ¶
func (*Tempest) ValidateCreate ¶
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Tempest) ValidateDelete ¶
ValidateDelete 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tobiko.
func (*Tobiko) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Tobiko) DeepCopyObject ¶
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 ¶
RbacConditionsSet - set the conditions for the rbac object
func (Tobiko) RbacNamespace ¶
RbacNamespace - return the namespace
func (Tobiko) RbacResourceName ¶
RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)
func (*Tobiko) SetupWebhookWithManager ¶
func (*Tobiko) ValidateCreate ¶
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Tobiko) ValidateDelete ¶
ValidateDelete 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 ¶
func (in *WorkflowCommonParameters) DeepCopy() *WorkflowCommonParameters
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 ¶
func (in *WorkflowTempestRunSpec) DeepCopy() *WorkflowTempestRunSpec
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 ¶
func (in *WorkflowTempestconfRunSpec) DeepCopy() *WorkflowTempestconfRunSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTempestconfRunSpec.
func (*WorkflowTempestconfRunSpec) DeepCopyInto ¶
func (in *WorkflowTempestconfRunSpec) DeepCopyInto(out *WorkflowTempestconfRunSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.