v1beta1

package
v0.0.0-...-038639a Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	// ConfigHash - TempestConfigHash key
	ConfigHash = "TempestConfigHash"
)

Variables

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

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

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

Functions

This section is empty.

Types

type ExternalPluginType

type ExternalPluginType struct {
	// +kubebuilder:validation:Required
	// URL that points to a git repository containing an external plugin.
	Repository string `json:"repository,omitempty"`

	// +kubebuilder:validation:Optional
	// 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
	// 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 Hash

type Hash struct {
	// Name of hash referencing the parameter
	Name string `json:"name,omitempty"`
	// Hash
	Hash string `json:"hash,omitempty"`
}

Hash - struct to add hashes to status

func (*Hash) DeepCopy

func (in *Hash) DeepCopy() *Hash

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

func (*Hash) DeepCopyInto

func (in *Hash) DeepCopyInto(out *Hash)

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 TempestStatus `json:"status,omitempty"`
}

Tempest is the Schema for the tempests API

func (*Tempest) DeepCopy

func (in *Tempest) DeepCopy() *Tempest

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

func (*Tempest) DeepCopyInto

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

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

func (*Tempest) DeepCopyObject

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

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

func (Tempest) RbacConditionsSet

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

RbacConditionsSet - set the conditions for the rbac object

func (Tempest) RbacNamespace

func (instance Tempest) RbacNamespace() string

RbacNamespace - return the namespace

func (Tempest) RbacResourceName

func (instance Tempest) RbacResourceName() string

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

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
	// +kubebuilder:default="tempest.api.identity.v3"
	// A content of include.txt file that is passed to tempest via --include-list
	IncludeList string `json:"includeList,omitempty"`

	// +kubebuilder:validation:Optional
	// A content of exclude.txt file that is passed to tempest via --exclude-list
	ExcludeList string `json:"excludeList,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=-1
	// Concurrency value that is passed to tempest via --concurrency
	Concurrency int64 `json:"concurrency,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	// Indicate whether tempest should be executed with --smoke
	Smoke bool `json:"smoke,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=true
	// Indicate whether tempest should be executed with --parallel
	Parallel bool `json:"parallel,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	// Indicate whether tempest should be executed with --serial
	Serial bool `json:"serial,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// A content of worker_file.yaml that is passed to tempest via --worker-file
	WorkerFile string `json:"workerFile,omitempty"`

	// +kubebuilder:validation:Optional
	// 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
	// +kubebuilder:default:=""
	// Add extra image for Neutron Tempest plugin
	NeutronExtraImage string `json:"neutronExtraImage,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 {

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="s0:c478,c978"
	// A SELinuxLevel that is used for all the tempest test pods.
	SELinuxLevel string `json:"SELinuxLevel"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="local-storage"
	// Name of a storage class that is used to create PVCs for logs storage. Required
	// if default storage class does not exist.
	StorageClass string `json:"storageClass"`

	// +kubebuilder:validation:Required
	// An URL of a tempest container image that should be used for the execution
	// of tempest tests.
	ContainerImage string `json:"containerImage"`

	// +kubebuilder:validation:Optional
	// +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,omitempty"`

	// +kubebuilder:validation:Optional
	// NodeSelector to target subset of worker nodes running this service
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default=openstack-config
	// OpenStackConfigMap is the name of the ConfigMap containing the clouds.yaml
	OpenStackConfigMap string `json:"openStackConfigMap"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default=openstack-config-secret
	// OpenStackConfigSecret is the name of the Secret containing the secure.yaml
	OpenStackConfigSecret string `json:"openStackConfigSecret"`

	// +kubebuilder:validation:Optional
	// NetworkAttachments is a list of NetworkAttachment resource names to expose
	// the services to the given network
	NetworkAttachments []string `json:"networkAttachments,omitempty"`

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

	// +kubebuilder:validation:Optional
	TempestRun TempestRunSpec `json:"tempestRun,omitempty"`

	// +kubebuilder:validation:Optional
	TempestconfRun TempestconfRunSpec `json:"tempestconfRun,omitempty"`

	// +kubebuilder:validation:Optional
	// +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,omitempty"`

	// +kubebuilder:validation:Optional
	// 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
	// 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.

type TempestStatus

type TempestStatus 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"`
}

TempestStatus defines the observed state of Tempest

func (*TempestStatus) DeepCopy

func (in *TempestStatus) DeepCopy() *TempestStatus

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

func (*TempestStatus) DeepCopyInto

func (in *TempestStatus) DeepCopyInto(out *TempestStatus)

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

type TempestconfRunSpec

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

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

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

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

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

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

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

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

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

	// +kubebuilder:validation:Optional
	// +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
	// +kubebuilder:default=""
	// A content of deployer_input.ini that is passed to tempest via --deployer-input
	DeployerInput string `json:"deployerInput"`

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

	// +kubebuilder:validation:Optional
	// +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
	// +kubebuilder:default=""
	// A content of profile.yaml that is passed to tempest via --profile
	Profile string `json:"profile"`

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

	// +kubebuilder:validation:Optional
	// +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
	// +kubebuilder:default=""
	// The content of this variable will be passed to discover-tempest-config via
	// --image
	Image string `json:"image"`

	// +kubebuilder:validation:Optional
	// +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
	// +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
	// +kubebuilder:default=""
	// The content of this variable will be passed to discover-tempest-config via
	// --network-id
	NetworkID string `json:"networkID"`

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

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

	// +kubebuilder:validation:Optional
	// +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"`

	// +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 TobikoStatus `json:"status,omitempty"`
}

Tobiko is the Schema for the tobikoes API

func (*Tobiko) DeepCopy

func (in *Tobiko) DeepCopy() *Tobiko

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

func (*Tobiko) DeepCopyInto

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

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

func (*Tobiko) DeepCopyObject

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

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

func (Tobiko) RbacConditionsSet

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

RbacConditionsSet - set the conditions for the rbac object

func (Tobiko) RbacNamespace

func (instance Tobiko) RbacNamespace() string

RbacNamespace - return the namespace

func (Tobiko) RbacResourceName

func (instance Tobiko) RbacResourceName() string

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

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 {
	// +kubebuilder:validation:Required
	// +kubebuilder:default="local-storage"
	// StorageClass used to create PVCs that store the logs
	StorageClass string `json:"storageClass"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=true
	// Run tests in parallel
	Debug bool `json:"debug,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:="py3"
	// Test environment
	Testenv string `json:"testenv,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// String including any options to pass to pytest when it runs tobiko tests
	PytestAddopts string `json:"pytestAddopts,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	// Boolean specifying whether tobiko tests create new resources or re-use those previously created
	PreventCreate bool `json:"preventCreate,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=0
	// Number of processes/workers used to run tobiko tests - value 0 results in automatic decission
	NumProcesses uint8 `json:"numProcesses,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// Tobiko version
	Version string `json:"version,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// tobiko.conf
	Config string `json:"config,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// Private Key
	PrivateKey string `json:"privateKey,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=""
	// Public Key
	PublicKey string `json:"publicKey,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:="quay.io/podified-antelope-centos9/openstack-tobiko:current-podified"
	// Container image for tobiko
	ContainerImage string `json:"containerImage,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=false
	// Container image for tobiko
	Parallel bool `json:"parallel,omitempty"`

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

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

	// 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 []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 TobikoStatus

type TobikoStatus 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"`
}

TobikoStatus defines the observed state of Tobiko

func (*TobikoStatus) DeepCopy

func (in *TobikoStatus) DeepCopy() *TobikoStatus

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

func (*TobikoStatus) DeepCopyInto

func (in *TobikoStatus) DeepCopyInto(out *TobikoStatus)

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

type TobikoWorkflowSpec

type TobikoWorkflowSpec struct {
	// +kubebuilder:validation:Optional
	// StorageClass used to create PVCs that store the logs
	StorageClass string `json:"storageClass,omitempty"`

	// +kubebuilder:validation:Optional
	// Run tests in parallel
	Debug bool `json:"debug,omitempty"`

	// +kubebuilder:validation:Optional
	// Test environment
	Testenv string `json:"testenv,omitempty"`

	// +kubebuilder:validation:Optional
	// String including any options to pass to pytest when it runs tobiko tests
	PytestAddopts string `json:"pytestAddopts,omitempty"`

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

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

	// +kubebuilder:validation:Optional
	// Tobiko version
	Version string `json:"version,omitempty"`

	// +kubebuilder:validation:Optional
	// tobiko.conf
	Config string `json:"config,omitempty"`

	// +kubebuilder:validation:Optional
	// Private Key
	PrivateKey string `json:"privateKey,omitempty"`

	// +kubebuilder:validation:Optional
	// Public Key
	PublicKey string `json:"publicKey,omitempty"`

	// +kubebuilder:validation:Optional
	// Container image for tobiko
	ContainerImage string `json:"containerImage,omitempty"`

	// BackoffLimimt allows to define the maximum number of retried executions (defaults to 6).
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"}
	BackoffLimit *int32 `json:"backoffLimit,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: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 WorkflowTempestRunSpec

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

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

	// +kubebuilder:validation:Optional
	// Concurrency value that is passed to tempest via --concurrency
	Concurrency *int64 `json:"concurrency,omitempty"`

	// +kubebuilder:validation:Optional
	// Indicate whether tempest should be executed with --smoke
	Smoke *bool `json:"smoke,omitempty"`

	// +kubebuilder:validation:Optional
	// Indicate whether tempest should be executed with --parallel
	Parallel *bool `json:"parallel,omitempty"`

	// +kubebuilder:validation:Optional
	// Indicate whether tempest should be executed with --serial
	Serial *bool `json:"serial,omitempty"`

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

	// +kubebuilder:validation:Optional
	// 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
	// Add extra image for Neutron Tempest plugin
	NeutronExtraImage *string `json:"neutronExtraImage,omitempty"`
}

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

func (*WorkflowTempestRunSpec) DeepCopy

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

func (*WorkflowTempestRunSpec) DeepCopyInto

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

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

type WorkflowTempestSpec

type WorkflowTempestSpec struct {
	// +kubebuilder:validation:Required
	// 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
	// Name of a storage class that is used to create PVCs for logs storage. Required
	// if default storage class does not exist.
	StorageClass *string `json:"storageClass"`

	// +kubebuilder:validation:Optional
	// An URL of a tempest container image that should be used for the execution
	// of tempest tests.
	ContainerImage *string `json:"containerImage"`

	// +kubebuilder:validation:Optional
	// 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
	// NodeSelector to target subset of worker nodes running this service
	NodeSelector *map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// OpenStackConfigMap is the name of the ConfigMap containing the clouds.yaml
	OpenStackConfigMap *string `json:"openStackConfigMap"`

	// +kubebuilder:validation:Optional
	// OpenStackConfigSecret is the name of the Secret containing the secure.yaml
	OpenStackConfigSecret *string `json:"openStackConfigSecret"`

	// +kubebuilder:validation:Optional
	// NetworkAttachments is a list of NetworkAttachment resource names to expose
	// the services to the given network
	NetworkAttachments *[]string `json:"networkAttachments,omitempty"`

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

	// +kubebuilder:validation:Optional
	TempestRun WorkflowTempestRunSpec `json:"tempestRun,omitempty"`

	// +kubebuilder:validation:Optional
	TempestconfRun WorkflowTempestconfRunSpec `json:"tempestconfRun,omitempty"`

	// +kubebuilder:validation:Optional
	// 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
	// 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
	// Indicate whether discover-tempest-config should be executed with --create
	Create *bool `json:"create"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with
	// --collect-timing
	CollectTiming *bool `json:"collectTiming"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with --insecure
	Insecure *bool `json:"insecure"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with
	// --no-default-deployer
	NoDefaultDeployer *bool `json:"noDefaultDeployer"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with --debug
	Debug *bool `json:"debug"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with --verbose
	Verbose *bool `json:"verbose"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with --non-admin
	NonAdmin *bool `json:"nonAdmin"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with --retry-image
	RetryImage *bool `json:"retryImage"`

	// +kubebuilder:validation:Optional
	// Indicate whether discover-tempest-config should be executed with
	// --convert-to-raw
	ConvertToRaw *bool `json:"convertToRaw"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// the --out parameter
	Out *string `json:"out"`

	// +kubebuilder:validation:Optional
	// A content of deployer_input.ini that is passed to tempest via --deployer-input
	DeployerInput *string `json:"deployerInput"`

	// +kubebuilder:validation:Optional
	// A content of accounts.yaml that is passed to tempest via --test-acounts
	TestAccounts *string `json:"testAccounts"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// the --create-accounts-file
	CreateAccountsFile *string `json:"createAccountsFile"`

	// +kubebuilder:validation:Optional
	// A content of profile.yaml that is passed to tempest via --profile
	Profile *string `json:"profile"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --generate-profile
	GenerateProfile *string `json:"generateProfile"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --image-disk-format
	ImageDiskFormat *string `json:"imageDiskFormat"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --image
	Image *string `json:"image"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --flavor-min-mem
	FlavorMinMem *int64 `json:"flavorMinMem"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --flavor-min-disk
	FlavorMinDisk *int64 `json:"flavorMinDisk"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --network-id
	NetworkID *string `json:"networkID"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --append
	Append *string `json:"append"`

	// +kubebuilder:validation:Optional
	// The content of this variable will be passed to discover-tempest-config via
	// --remove
	Remove *string `json:"remove"`

	// +kubebuilder:validation:Optional
	// 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"`

	// +kubebuilder:validation:Optional
	// 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 (*WorkflowTempestconfRunSpec) DeepCopy

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

func (*WorkflowTempestconfRunSpec) DeepCopyInto

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

Jump to

Keyboard shortcuts

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