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, readOnlyRootFilesystem: false, " + "runAsNonRoot: false, automountServiceAccountToken: true and default " + "capabilities on top of those required by the test operator (NET_ADMIN, NET_RAW)." // WarnPrivilegedModeOff WarnPrivilegedModeOff = "%[1]s.Spec.Privileged is set to false. Note, that a certain " + "set of tests might fail, as this configuration may be " + "required for the tests to run successfully. Before enabling" + "this parameter, consult documentation of the %[1]s CR." // WarnSELinuxLevel WarnSELinuxLevel = "%[1]s.Spec.Workflow is used and %[1]s.Spec.Privileged is " + "set to true. Please, consider setting %[1]s.Spec.SELinuxLevel. This " + "ensures that the copying of the logs to the PV is completed without any " + "complications." )
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"`
// +kubebuilder:default:={limits: {cpu: "4000m", memory: "4Gi"}, requests: {cpu: "2000m", memory: "2Gi"}}
// The desired amount of resources that should be assigned to each test pod
// spawned using the AnsibleTest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:="dataplane-ansible-ssh-private-key-secret"
// ComputeSSHKeySecretName is the name of the k8s secret that contains an ssh key for computes.
// The key is mounted to ~/.ssh/id_ecdsa in the ansible pod
ComputesSSHKeySecretName string `json:"computeSSHKeySecretName"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:=""
// WorkloadSSHKeySecretName is the name of the k8s secret that contains an ssh key for the ansible workload.
// The key is mounted to ~/test_keypair.key in the ansible pod
WorkloadSSHKeySecretName string `json:"workloadSSHKeySecretName"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Required
// +kubebuilder:default:=""
// AnsibleGitRepo - git repo to clone into container
AnsibleGitRepo string `json:"ansibleGitRepo"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Required
// +kubebuilder:default:=""
// AnsiblePlaybookPath - path to ansible playbook
AnsiblePlaybookPath string `json:"ansiblePlaybookPath"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// +kubebuilder:default:=""
// AnsibleCollections - extra ansible collections to instal in additionn to the ones exist in the requirements.yaml
AnsibleCollections string `json:"ansibleCollections,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// +kubebuilder:default:=""
// AnsibleVarFiles - interface to create ansible var files Those get added to the
AnsibleVarFiles string `json:"ansibleVarFiles,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// +kubebuilder:default:=""
// AnsibleExtraVars - string to pass parameters to ansible using
AnsibleExtraVars string `json:"ansibleExtraVars,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// +kubebuilder:default:=""
// AnsibleInventory - string that contains the inventory file content
AnsibleInventory string `json:"ansibleInventory,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:=false
// Run ansible playbook with -vvvv
Debug bool `json:"debug"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A parameter that contains a workflow definition.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
Workflow []AnsibleTestWorkflowSpec `json:"workflow,omitempty"`
}
AnsibleTestSpec defines the desired state of AnsibleTest
func (*AnsibleTestSpec) DeepCopy ¶
func (in *AnsibleTestSpec) DeepCopy() *AnsibleTestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnsibleTestSpec.
func (*AnsibleTestSpec) DeepCopyInto ¶
func (in *AnsibleTestSpec) DeepCopyInto(out *AnsibleTestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AnsibleTestWorkflowSpec ¶
type AnsibleTestWorkflowSpec struct {
WorkflowCommonParameters `json:",inline"`
CommonOpenstackConfig `json:",inline"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Required
// +kubebuilder:validation:MaxLength:=100
// Name of a workflow step. The step name will be used for example to create
// a logs directory.
StepName string `json:"stepName"`
// The desired amount of resources that should be assigned to each test pod
// spawned using the AnsibleTest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
// +kubebuilder:default:={limits: {cpu: "2000m", memory: "2Gi"}, requests: {cpu: "1000m", memory: "2Gi"}}
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// ComputeSSHKeySecretName is the name of the k8s secret that contains an ssh key for computes.
// The key is mounted to ~/.ssh/id_ecdsa in the ansible pod
ComputesSSHKeySecretName string `json:"computeSSHKeySecretName"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// WorkloadSSHKeySecretName is the name of the k8s secret that contains an ssh key for the ansible workload.
// The key is mounted to ~/test_keypair.key in the ansible pod
WorkloadSSHKeySecretName string `json:"workloadSSHKeySecretName"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// AnsibleGitRepo - git repo to clone into container
AnsibleGitRepo string `json:"ansibleGitRepo,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// AnsiblePlaybookPath - path to ansible playbook
AnsiblePlaybookPath string `json:"ansiblePlaybookPath,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// AnsibleCollections - extra ansible collections to instal in additionn to the ones exist in the requirements.yaml
AnsibleCollections string `json:"ansibleCollections,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// AnsibleVarFiles - interface to create ansible var files Those get added to the
// service config dir in /etc/test_operator/<file> and passed to the ansible command using -e @/etc/test_operator/<file>
AnsibleVarFiles string `json:"ansibleVarFiles,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// AnsibleExtraVars - interface to pass parameters to ansible using -e
AnsibleExtraVars string `json:"ansibleExtraVars,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// AnsibleInventory - string that contains the inventory file content
AnsibleInventory string `json:"ansibleInventory,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// Run ansible playbook with -vvvv
Debug bool `json:"debug,omitempty"`
}
func (*AnsibleTestWorkflowSpec) DeepCopy ¶
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, readOnlyRootFilesystem: false,
// runAsNonRoot: false, automountServiceAccountToken: true, and the default
// capabilities on top of capabilities that are usually needed by the test
// pods (NET_ADMIN, NET_RAW). This parameter is deemed insecure but it is
// needed for certain test-operator functionalities to work properly (e.g.:
// extraRPMs in Tempest CR, or certain set of tobiko tests).
Privileged bool `json:"privileged"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:="local-storage"
// StorageClass used to create any test-operator related PVCs.
StorageClass string `json:"storageClass"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:=""
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A SELinuxLevel that should be used for test pods spawned by the test
// operator.
SELinuxLevel string `json:"SELinuxLevel"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:=""
// A URL of a container image that should be used by the test-operator for tests execution.
ContainerImage string `json:"containerImage"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// BackoffLimit allows to define the maximum number of retried executions (defaults to 0).
// +kubebuilder:default:=0
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
BackoffLimit *int32 `json:"backoffLimit,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// Extra configmaps for mounting inside the pod
ExtraConfigmapsMounts []ExtraConfigmapsMounts `json:"extraConfigmapsMounts,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// This value contains a nodeSelector value that is applied to test pods
// spawned by the test operator.
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// This value contains a toleration that is applied to pods spawned by the
// test pods that are spawned by the test-operator.
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}
func (*CommonOptions) DeepCopy ¶
func (in *CommonOptions) DeepCopy() *CommonOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonOptions.
func (*CommonOptions) DeepCopyInto ¶
func (in *CommonOptions) DeepCopyInto(out *CommonOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommonTestStatus ¶
type CommonTestStatus struct {
// Map of hashes to track e.g. job status
Hash map[string]string `json:"hash,omitempty"`
// Conditions
Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`
// NetworkAttachments status of the deployment pods
NetworkAttachments map[string][]string `json:"networkAttachments,omitempty"`
}
CommonTestStatus defines the observed state of the controller
func (*CommonTestStatus) DeepCopy ¶
func (in *CommonTestStatus) DeepCopy() *CommonTestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonTestStatus.
func (*CommonTestStatus) DeepCopyInto ¶
func (in *CommonTestStatus) DeepCopyInto(out *CommonTestStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalPluginType ¶
type ExternalPluginType struct {
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
// URL that points to a git repository containing an external plugin.
Repository string `json:"repository"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// URL that points to a repository that contains a change that should be
// applied to the repository defined by Repository (ChangeRefspec must be
// defined as well).
ChangeRepository string `json:"changeRepository,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// ChangeRefspec specifies which change the remote repository should be
// checked out to (ChangeRepository must be defined as well).
ChangeRefspec string `json:"changeRefspec,omitempty"`
}
ExternalPluginType - is used to specify a plugin that should be installed from an external resource
func (*ExternalPluginType) DeepCopy ¶
func (in *ExternalPluginType) DeepCopy() *ExternalPluginType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalPluginType.
func (*ExternalPluginType) DeepCopyInto ¶
func (in *ExternalPluginType) DeepCopyInto(out *ExternalPluginType)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExtraConfigmapsMounts ¶
type ExtraConfigmapsMounts struct {
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Required
// +kubebuilder:validation:MaxLength:=253
// The name of an existing config map for mounting.
Name string `json:"name"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Required
// Path within the container at which the volume should be mounted.
MountPath string `json:"mountPath"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// +kubebuilder:default:=""
// Config map subpath for mounting, defaults to configmap root.
SubPath string `json:"subPath"`
}
func (*ExtraConfigmapsMounts) DeepCopy ¶
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:default:={limits: {cpu: "2000m", memory: "4Gi"}, requests: {cpu: "1000m", memory: "2Gi"}}
// The desired amount of resources that should be assigned to each test pod
// spawned using the HorizonTest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default=false
// Activate debug mode. When debug mode is activated any error encountered
// inside the test-pod causes that the pod will be kept alive indefinitely
// (stuck in "Running" phase) or until the corresponding HorizonTest CR is deleted.
// This allows the user to debug any potential troubles with `oc rsh`.
Debug bool `json:"debug"`
// AdminUsername is the username for the OpenStack admin user.
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="admin"
AdminUsername string `json:"adminUsername"`
// AdminPassword is the password for the OpenStack admin user.
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="admin"
AdminPassword string `json:"adminPassword"`
// DashboardUrl is the URL of the Horizon dashboard.
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
DashboardUrl string `json:"dashboardUrl"`
// AuthUrl is the authentication URL for OpenStack.
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
AuthUrl string `json:"authUrl"`
// RepoUrl is the URL of the Horizon repository.
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="https://review.opendev.org/openstack/horizon"
RepoUrl string `json:"repoUrl"`
// HorizonRepoBranch is the branch of the Horizon repository to checkout.
// +kubebuilder:validation:Required
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="master"
HorizonRepoBranch string `json:"horizonRepoBranch"`
// ImageUrl is the URL to download the Cirros image.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img"
ImageUrl string `json:"imageUrl"`
// ProjectName is the name of the OpenStack project for Horizon tests.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="horizontest"
ProjectName string `json:"projectName"`
// User is the username under which the Horizon tests will run.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="horizontest"
User string `json:"user"`
// Password is the password for the user running the Horizon tests.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="horizontest"
Password string `json:"password"`
// FlavorName is the name of the OpenStack flavor to create for Horizon tests.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="m1.tiny"
FlavorName string `json:"flavorName"`
// LogsDirectoryName is the name of the directory to store test logs.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="horizon"
LogsDirectoryName string `json:"logsDirectoryName"`
// HorizonTestDir is the directory path for Horizon tests.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="/var/lib/horizontest"
HorizonTestDir string `json:"horizonTestDir"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Parallel
Parallel bool `json:"parallel"`
// Name of a secret that contains a kubeconfig. The kubeconfig is mounted under /var/lib/horizontest/.kube/config
// in the test pod.
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
KubeconfigSecretName string `json:"kubeconfigSecretName,omitempty"`
}
HorizonTestSpec defines the desired state of HorizonTest
func (*HorizonTestSpec) DeepCopy ¶
func (in *HorizonTestSpec) DeepCopy() *HorizonTestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizonTestSpec.
func (*HorizonTestSpec) DeepCopyInto ¶
func (in *HorizonTestSpec) DeepCopyInto(out *HorizonTestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tempest ¶
type Tempest struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TempestSpec `json:"spec,omitempty"`
Status CommonTestStatus `json:"status,omitempty"`
}
func (*Tempest) DeepCopy ¶
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
// The expectedFailuresList parameter contains tests that should not count
// as failures. When a test from this list fails, the test pod ends with
// Completed state rather than with Error state.
ExpectedFailuresList string `json:"expectedFailuresList"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=0
// Concurrency value that is passed to tempest via --concurrency
Concurrency int64 `json:"concurrency"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether tempest should be executed with --smoke
Smoke bool `json:"smoke"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=true
// Indicate whether tempest should be executed with --parallel
Parallel bool `json:"parallel"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether tempest should be executed with --serial
Serial bool `json:"serial"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// A content of worker_file.yaml that is passed to tempest via --worker-file
WorkerFile string `json:"workerFile"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// ExternalPlugin contains information about plugin that should be installed
// within the tempest test pod. If this option is specified then only tests
// that are part of the external plugin can be executed.
ExternalPlugin []ExternalPluginType `json:"externalPlugin,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A list URLs that point to RPMs that should be downloaded and installed
// inside the tempest test pod.
ExtraRPMs []string `json:"extraRPMs,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Extra images that should be downloaded inside the test pod and uploaded to
// openstack.
ExtraImages []ExtraImagesType `json:"extraImages,omitempty"`
}
TempestRunSpec - is used to configure execution of tempest. Please refer to Please refer to https://docs.openstack.org/tempest/latest/ for the further explanation of the CLI parameters.
func (*TempestRunSpec) DeepCopy ¶
func (in *TempestRunSpec) DeepCopy() *TempestRunSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestRunSpec.
func (*TempestRunSpec) DeepCopyInto ¶
func (in *TempestRunSpec) DeepCopyInto(out *TempestRunSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TempestSpec ¶
type TempestSpec struct {
CommonOptions `json:",inline"`
CommonOpenstackConfig `json:",inline"`
// +kubebuilder:default:={limits: {cpu: "8000m", memory: "4Gi"}, requests: {cpu: "4000m", memory: "2Gi"}}
// The desired amount of resources that should be assigned to each test pod
// spawned using the Tempest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// By default test-operator executes the test-pods sequentially if multiple
// instances of test-operator related CRs exist. If you want to turn off this
// behaviour then set this option to true.
Parallel bool `json:"parallel"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Activate debug mode. When debug mode is activated any error encountered
// inside the test-pod causes that the pod will be kept alive indefinitely
// (stuck in "Running" phase) or until the corresponding Tempest CR is deleted.
// This allows the user to debug any potential troubles with `oc rsh`.
Debug bool `json:"debug"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Activate tempest cleanup. When activated, tempest will run tempest cleanup
// after test execution is complete to delete any resources created by tempest
// that may have been left out.
Cleanup bool `json:"cleanup"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// NetworkAttachments is a list of NetworkAttachment resource names to expose
// the services to the given network
NetworkAttachments []string `json:"networkAttachments,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
TempestRun TempestRunSpec `json:"tempestRun,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
TempestconfRun TempestconfRunSpec `json:"tempestconfRun,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// SSHKeySecretName is the name of the k8s secret that contains an ssh key.
// The key is mounted to ~/.ssh/id_ecdsa in the tempest pod
SSHKeySecretName string `json:"SSHKeySecretName"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf
// But can also be used to add additional files. Those get added to the
// service config dir in /etc/test_operator/<file>
ConfigOverwrite map[string]string `json:"configOverwrite,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Workflow - can be used to specify a multiple executions of tempest with
// a different configuration in a single CR. Accepts a list of dictionaries
// where each member of the list accepts the same values as the Tempest CR
// does in the `spec“ section. Values specified using the workflow section have
// a higher precedence than the values specified higher in the Tempest CR
// hierarchy.
Workflow []WorkflowTempestSpec `json:"workflow,omitempty"`
}
TempestSpec - configuration of execution of tempest. For specific configuration of tempest see TempestRunSpec and for discover-tempest-config see TempestconfRunSpec.
func (*TempestSpec) DeepCopy ¶
func (in *TempestSpec) DeepCopy() *TempestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestSpec.
func (*TempestSpec) DeepCopyInto ¶
func (in *TempestSpec) DeepCopyInto(out *TempestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TempestSpec) Default ¶
func (spec *TempestSpec) Default()
Default - set defaults for this Tempest spec.
type TempestconfRunSpec ¶
type TempestconfRunSpec struct {
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=true
// Indicate whether discover-tempest-config should be executed with --create
Create bool `json:"create"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with
// --collect-timing
CollectTiming bool `json:"collectTiming"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with --insecure
Insecure bool `json:"insecure"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with
// --no-default-deployer
NoDefaultDeployer bool `json:"noDefaultDeployer"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with --debug
Debug bool `json:"debug"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with --verbose
Verbose bool `json:"verbose"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with --non-admin
NonAdmin bool `json:"nonAdmin"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with --retry-image
RetryImage bool `json:"retryImage"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Indicate whether discover-tempest-config should be executed with
// --convert-to-raw
ConvertToRaw bool `json:"convertToRaw"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// the --out parameter
Out string `json:"out"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// A content of deployer_input.ini that is passed to tempest via --deployer-input
DeployerInput string `json:"deployerInput"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// A content of accounts.yaml that is passed to tempest via --test-acounts
TestAccounts string `json:"testAccounts"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// the --create-accounts-file
CreateAccountsFile string `json:"createAccountsFile"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// A content of profile.yaml that is passed to tempest via --profile
Profile string `json:"profile"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// --generate-profile
GenerateProfile string `json:"generateProfile"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// --image-disk-format
ImageDiskFormat string `json:"imageDiskFormat"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// --image
Image string `json:"image"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=0
// The content of this variable will be passed to discover-tempest-config via
// --flavor-min-mem
FlavorMinMem int64 `json:"flavorMinMem"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=0
// The content of this variable will be passed to discover-tempest-config via
// --flavor-min-disk
FlavorMinDisk int64 `json:"flavorMinDisk"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// --network-id
NetworkID string `json:"networkID"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// --append
Append string `json:"append"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// The content of this variable will be passed to discover-tempest-config via
// --remove
Remove string `json:"remove"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="identity.v3_endpoint_type public"
// The content of this variable will be appended at the end of the command
// that executes discover-tempest-config (override values).
Overrides string `json:"overrides"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:=0
// The content of this variable will be passed to discover-tempest-config via
// --timeout
Timeout int64 `json:"timeout"`
}
TempestconfRunSpec - is used to configure execution of discover-tempest-config Please refer to https://docs.opendev.org/openinfra/python-tempestconf for the further explanation of the CLI parameters.
func (*TempestconfRunSpec) DeepCopy ¶
func (in *TempestconfRunSpec) DeepCopy() *TempestconfRunSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempestconfRunSpec.
func (*TempestconfRunSpec) DeepCopyInto ¶
func (in *TempestconfRunSpec) DeepCopyInto(out *TempestconfRunSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tobiko ¶
type Tobiko struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TobikoSpec `json:"spec,omitempty"`
Status CommonTestStatus `json:"status,omitempty"`
}
func (*Tobiko) DeepCopy ¶
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:default:={limits: {cpu: "8000m", memory: "8Gi"}, requests: {cpu: "4000m", memory: "4Gi"}}
// The desired amount of resources that should be assigned to each test pod
// spawned using the Tobiko CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default=false
// Activate debug mode. When debug mode is activated any error encountered
// inside the test-pod causes that the pod will be kept alive indefinitely
// (stuck in "Running" phase) or until the corresponding Tobiko CR is deleted.
// This allows the user to debug any potential troubles with `oc rsh`.
Debug bool `json:"debug"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:="py3"
// Test environment
Testenv string `json:"testenv"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// String including any options to pass to pytest when it runs tobiko tests
PytestAddopts string `json:"pytestAddopts"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// Boolean specifying whether tobiko tests create new resources or re-use those previously created
PreventCreate bool `json:"preventCreate"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=4
// Number of processes/workers used to run tobiko tests - value 0 results in automatic decission
NumProcesses uint8 `json:"numProcesses"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// Tobiko version
Version string `json:"version"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// tobiko.conf
Config string `json:"config"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// Private Key
PrivateKey string `json:"privateKey"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// Public Key
PublicKey string `json:"publicKey"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=false
// By default test-operator executes the test-pods sequentially if multiple
// instances of test-operator related CRs exist. To run test-pods in parallel
// set this option to true.
Parallel bool `json:"parallel"`
// Name of a secret that contains a kubeconfig. The kubeconfig is mounted under /var/lib/tobiko/.kube/config
// in the test pod.
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
KubeconfigSecretName string `json:"kubeconfigSecretName,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// NetworkAttachments is a list of NetworkAttachment resource names to expose
// the services to the given network
NetworkAttachments []string `json:"networkAttachments,omitempty"`
// A parameter that contains a workflow definition.
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
Workflow []TobikoWorkflowSpec `json:"workflow,omitempty"`
}
TobikoSpec defines the desired state of Tobiko
func (*TobikoSpec) DeepCopy ¶
func (in *TobikoSpec) DeepCopy() *TobikoSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TobikoSpec.
func (*TobikoSpec) DeepCopyInto ¶
func (in *TobikoSpec) DeepCopyInto(out *TobikoSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TobikoWorkflowSpec ¶
type TobikoWorkflowSpec struct {
WorkflowCommonParameters `json:",inline"`
// +kubebuilder:default:={limits: {cpu: "8000m", memory: "8Gi"}, requests: {cpu: "4000m", memory: "4Gi"}}
// The desired amount of resources that should be assigned to each test pod
// spawned using the Tobiko CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Test environment
Testenv string `json:"testenv,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// String including any options to pass to pytest when it runs tobiko tests
PytestAddopts string `json:"pytestAddopts,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Boolean specifying whether tobiko tests create new resources or re-use those previously created
PreventCreate *bool `json:"preventCreate,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Number of processes/workers used to run tobiko tests - value 0 results in automatic decission
NumProcesses *uint8 `json:"numProcesses,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// NetworkAttachments is a list of NetworkAttachment resource names to expose
// the services to the given network
NetworkAttachments []string `json:"networkAttachments,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Tobiko version
Version string `json:"version,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// tobiko.conf
Config string `json:"config,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Private Key
PrivateKey string `json:"privateKey,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Public Key
PublicKey string `json:"publicKey,omitempty"`
// Name of a secret that contains a kubeconfig. The kubeconfig is mounted under /var/lib/tobiko/.kube/config
// in the test pod.
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
KubeconfigSecretName string `json:"kubeconfigSecretName,omitempty"`
// A parameter that contains a definition of a single workflow step.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MaxLength:=100
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:default:=""
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
StepName string `json:"stepName"`
}
func (*TobikoWorkflowSpec) DeepCopy ¶
func (in *TobikoWorkflowSpec) DeepCopy() *TobikoWorkflowSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TobikoWorkflowSpec.
func (*TobikoWorkflowSpec) DeepCopyInto ¶
func (in *TobikoWorkflowSpec) DeepCopyInto(out *TobikoWorkflowSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkflowCommonParameters ¶
type WorkflowCommonParameters struct {
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:optional
// +optional
// Use with caution! This parameter specifies whether test-operator should spawn test
// pods with allowedPrivilegedEscalation: true and the default capabilities on
// top of capabilities that are usually needed by the test pods (NET_ADMIN, NET_RAW).
// This parameter is deemed insecure but it is needed for certain test-operator
// functionalities to work properly (e.g.: extraRPMs in Tempest CR, or certain set
// of tobiko tests).
Privileged *bool `json:"privileged,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:="local-storage"
// StorageClass used to create any test-operator related PVCs.
StorageClass *string `json:"storageClass"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +optional
// A SELinuxLevel that should be used for test pods spawned by the test
// operator.
SELinuxLevel *string `json:"SELinuxLevel,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// +kubebuilder:default:=""
// A URL of a container image that should be used by the test-operator for tests execution.
ContainerImage string `json:"containerImage"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// BackoffLimit allows to define the maximum number of retried executions (defaults to 0).
// +kubebuilder:default:=0
// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
BackoffLimit *int32 `json:"backoffLimit,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=spec
// +kubebuilder:validation:Optional
// Extra configmaps for mounting inside the pod
ExtraConfigmapsMounts *[]ExtraConfigmapsMounts `json:"extraConfigmapsMounts,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// This value contains a nodeSelector value that is applied to test pods
// spawned by the test operator.
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// This value contains a toleration that is applied to pods spawned by the
// test pods that are spawned by the test-operator.
Tolerations *[]corev1.Toleration `json:"tolerations,omitempty"`
}
func (*WorkflowCommonParameters) DeepCopy ¶
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
// The expectedFailuresList parameter contains tests that should not count
// as failures. When a test from this list fails, the test pod ends with
// Completed state rather than with Error state.
ExpectedFailuresList *string `json:"expectedFailuresList,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Concurrency value that is passed to tempest via --concurrency
Concurrency *int64 `json:"concurrency,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether tempest should be executed with --smoke
Smoke *bool `json:"smoke,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether tempest should be executed with --parallel
Parallel *bool `json:"parallel,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether tempest should be executed with --serial
Serial *bool `json:"serial,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A content of worker_file.yaml that is passed to tempest via --worker-file
WorkerFile *string `json:"workerFile,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// ExternalPlugin contains information about plugin that should be installed
// within the tempest test pod. If this option is specified then only tests
// that are part of the external plugin can be executed.
ExternalPlugin *[]ExternalPluginType `json:"externalPlugin,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A list URLs that point to RPMs that should be downloaded and installed
// inside the tempest test pod.
ExtraRPMs *[]string `json:"extraRPMs,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Extra images that should be downloaded inside the test pod and uploaded to
// openstack.
ExtraImages *[]ExtraImagesType `json:"extraImagesType,omitempty"`
}
TempestRunSpec - is used to configure execution of tempest. Please refer to Please refer to https://docs.openstack.org/tempest/latest/ for the further explanation of the CLI parameters.
func (*WorkflowTempestRunSpec) DeepCopy ¶
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"`
// The desired amount of resources that should be assigned to each test pod
// spawned using the Tempest CR. https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
// +kubebuilder:default:={limits: {cpu: "8000m", memory: "4Gi"}, requests: {cpu: "4000m", memory: "2Gi"}}
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// +kubebuilder:validation:Required
// +kubebuilder:validation:MaxLength:=100
// +kubebuilder:validation:Pattern:=^[a-z0-9]
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Name of a workflow step. The step name will be used for example to create
// a logs directory.
StepName string `json:"stepName"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// By default test-operator executes the test-pods sequentially if multiple
// instances of test-operator related CRs exist. If you want to turn off this
// behaviour then set this option to true.
Parallel *bool `json:"parallel,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// NetworkAttachments is a list of NetworkAttachment resource names to expose
// the services to the given network
NetworkAttachments *[]string `json:"networkAttachments,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
TempestRun WorkflowTempestRunSpec `json:"tempestRun,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
TempestconfRun WorkflowTempestconfRunSpec `json:"tempestconfRun,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// SSHKeySecretName is the name of the k8s secret that contains an ssh key.
// The key is mounted to ~/.ssh/id_ecdsa in the tempest pod
SSHKeySecretName *string `json:"SSHKeySecretName,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf
// But can also be used to add additional files. Those get added to the
// service config dir in /etc/test_operator/<file>
ConfigOverwrite *map[string]string `json:"configOverwrite,omitempty"`
}
TempestSpec - configuration of execution of tempest. For specific configuration of tempest see TempestRunSpec and for discover-tempest-config see TempestconfRunSpec.
func (*WorkflowTempestSpec) DeepCopy ¶
func (in *WorkflowTempestSpec) DeepCopy() *WorkflowTempestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTempestSpec.
func (*WorkflowTempestSpec) DeepCopyInto ¶
func (in *WorkflowTempestSpec) DeepCopyInto(out *WorkflowTempestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkflowTempestconfRunSpec ¶
type WorkflowTempestconfRunSpec struct {
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with --create
Create *bool `json:"create,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with
// --collect-timing
CollectTiming *bool `json:"collectTiming,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with --insecure
Insecure *bool `json:"insecure,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with
// --no-default-deployer
NoDefaultDeployer *bool `json:"noDefaultDeployer,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with --debug
Debug *bool `json:"debug,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with --verbose
Verbose *bool `json:"verbose,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with --non-admin
NonAdmin *bool `json:"nonAdmin,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with --retry-image
RetryImage *bool `json:"retryImage,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// Indicate whether discover-tempest-config should be executed with
// --convert-to-raw
ConvertToRaw *bool `json:"convertToRaw,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// the --out parameter
Out *string `json:"out,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A content of deployer_input.ini that is passed to tempest via --deployer-input
DeployerInput *string `json:"deployerInput,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A content of accounts.yaml that is passed to tempest via --test-acounts
TestAccounts *string `json:"testAccounts,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// the --create-accounts-file
CreateAccountsFile *string `json:"createAccountsFile,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// A content of profile.yaml that is passed to tempest via --profile
Profile *string `json:"profile,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --generate-profile
GenerateProfile *string `json:"generateProfile,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --image-disk-format
ImageDiskFormat *string `json:"imageDiskFormat,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --image
Image *string `json:"image,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --flavor-min-mem
FlavorMinMem *int64 `json:"flavorMinMem,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --flavor-min-disk
FlavorMinDisk *int64 `json:"flavorMinDisk,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --network-id
NetworkID *string `json:"networkID,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --append
Append *string `json:"append,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --remove
Remove *string `json:"remove,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be appended at the end of the command
// that executes discover-tempest-config (override values).
Overrides *string `json:"overrides,omitempty"`
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec
// The content of this variable will be passed to discover-tempest-config via
// --timeout
Timeout *int64 `json:"timeout,omitempty"`
}
TempestconfRunSpec - is used to configure execution of discover-tempest-config Please refer to https://docs.opendev.org/openinfra/python-tempestconf for the further explanation of the CLI parameters.
func (*WorkflowTempestconfRunSpec) DeepCopy ¶
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.