apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  creationTimestamp: "2026-04-06T12:15:09Z"
  generation: 1
  name: tempests.test.openstack.org
  resourceVersion: "38840"
  uid: cc019d84-0d40-4ef4-874e-72f63af0243d
spec:
  conversion:
    strategy: None
  group: test.openstack.org
  names:
    kind: Tempest
    listKind: TempestList
    plural: tempests
    singular: tempest
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Status
      jsonPath: .status.conditions[0].status
      name: Status
      type: string
    - description: Message
      jsonPath: .status.conditions[0].message
      name: Message
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
            type: string
          kind:
            description: |-
              Kind is a string value representing the REST resource this object represents.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: |-
              TempestSpec - configuration of execution of tempest. For specific configuration
              of tempest see TempestRunSpec and for discover-tempest-config see TempestconfRunSpec.
            properties:
              SELinuxLevel:
                default: ""
                description: |-
                  A SELinuxLevel that should be used for test pods spawned by the test
                  operator.
                type: string
              SSHKeySecretName:
                default: ""
                description: |-
                  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
                type: string
              backoffLimit:
                default: 0
                description: BackoffLimit allows to define the maximum number of retried
                  executions (defaults to 0).
                format: int32
                type: integer
              cleanup:
                default: false
                description: |-
                  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.
                type: boolean
              configOverwrite:
                additionalProperties:
                  type: string
                description: |-
                  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>
                type: object
              containerImage:
                default: ""
                description: A URL of a container image that should be used by the
                  test-operator for tests execution.
                type: string
              debug:
                default: false
                description: |-
                  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`.
                type: boolean
              extraConfigmapsMounts:
                description: |-
                  Extra configmaps for mounting inside the pod
                  WARNING: This parameter will be deprecated!
                  Please use ExtraMounts parameter instead!
                items:
                  description: |-
                    WARNING: This parameter will be deprecated!
                    Please use ExtraMounts parameter instead!
                  properties:
                    mountPath:
                      description: Path within the container at which the volume should
                        be mounted.
                      type: string
                    name:
                      description: The name of an existing config map for mounting.
                      maxLength: 253
                      type: string
                    subPath:
                      default: ""
                      description: Config map subpath for mounting, defaults to configmap
                        root.
                      type: string
                  required:
                  - mountPath
                  - name
                  - subPath
                  type: object
                type: array
              extraMounts:
                description: ExtraMounts containing conf files, credentials and storage
                  volumes
                items:
                  properties:
                    extraVol:
                      items:
                        description: |-
                          VolMounts is the data structure used to expose Volumes and Mounts that can
                          be added to a pod according to the defined Propagation policy
                        properties:
                          extraVolType:
                            description: Label associated to a given extraMount
                            type: string
                          mounts:
                            items:
                              description: VolumeMount describes a mounting of a Volume
                                within a container.
                              properties:
                                mountPath:
                                  description: |-
                                    Path within the container at which the volume should be mounted.  Must
                                    not contain ':'.
                                  type: string
                                mountPropagation:
                                  description: |-
                                    mountPropagation determines how mounts are propagated from the host
                                    to container and the other way around.
                                    When not set, MountPropagationNone is used.
                                    This field is beta in 1.10.
                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
                                    (which defaults to None).
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: |-
                                    Mounted read-only if true, read-write otherwise (false or unspecified).
                                    Defaults to false.
                                  type: boolean
                                recursiveReadOnly:
                                  description: |-
                                    RecursiveReadOnly specifies whether read-only mounts should be handled
                                    recursively.

                                    If ReadOnly is false, this field has no meaning and must be unspecified.

                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made
                                    recursively read-only.  If this field is set to IfPossible, the mount is made
                                    recursively read-only, if it is supported by the container runtime.  If this
                                    field is set to Enabled, the mount is made recursively read-only if it is
                                    supported by the container runtime, otherwise the pod will not be started and
                                    an error will be generated to indicate the reason.

                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to
                                    None (or be unspecified, which defaults to None).

                                    If this field is not specified, it is treated as an equivalent of Disabled.
                                  type: string
                                subPath:
                                  description: |-
                                    Path within the volume from which the container's volume should be mounted.
                                    Defaults to "" (volume's root).
                                  type: string
                                subPathExpr:
                                  description: |-
                                    Expanded path within the volume from which the container's volume should be mounted.
                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
                                    Defaults to "" (volume's root).
                                    SubPathExpr and SubPath are mutually exclusive.
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                          propagation:
                            description: Propagation defines which pod should mount
                              the volume
                            items:
                              description: |-
                                PropagationType identifies the Service, Group or instance (e.g. the backend) that
                                receives an Extra Volume that can potentially be mounted
                              type: string
                            type: array
                          volumes:
                            items:
                              description: Volume our slimmed down version of Volume
                              properties:
                                cephfs:
                                  description: cephFS represents a Ceph FS mount on
                                    the host that shares a pod's lifetime
                                  properties:
                                    monitors:
                                      description: |-
                                        monitors is Required: Monitors is a collection of Ceph monitors
                                        More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: 'path is Optional: Used as the
                                        mounted root, rather than the full Ceph tree,
                                        default is /'
                                      type: string
                                    readOnly:
                                      description: |-
                                        readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
                                        the ReadOnly setting in VolumeMounts.
                                        More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
                                      type: boolean
                                    secretFile:
                                      description: |-
                                        secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
                                        More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
                                      type: string
                                    secretRef:
                                      description: |-
                                        secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
                                        More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
                                      properties:
                                        name:
                                          default: ""
                                          description: |-
                                            Name of the referent.
                                            This field is effectively required, but due to backwards compatibility is
                                            allowed to be empty. Instances of this type with an empty value here are
                                            almost certainly wrong.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          type: string
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    user:
                                      description: |-
                                        user is optional: User is the rados user name, default is admin
                                        More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
                                      type: string
                                  required:
                                  - monitors
                                  type: object
                                configMap:
                                  description: configMap represents a configMap that
                                    should populate this volume
                                  properties:
                                    defaultMode:
                                      description: |-
                                        defaultMode is optional: mode bits used to set permissions on created files by default.
                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                        Defaults to 0644.
                                        Directories within the path are not affected by this setting.
                                        This might be in conflict with other options that affect the file
                                        mode, like fsGroup, and the result can be other mode bits set.
                                      format: int32
                                      type: integer
                                    items:
                                      description: |-
                                        items if unspecified, each key-value pair in the Data field of the referenced
                                        ConfigMap will be projected into the volume as a file whose name is the
                                        key and content is the value. If specified, the listed keys will be
                                        projected into the specified paths, and unlisted keys will not be
                                        present. If a key is specified which is not present in the ConfigMap,
                                        the volume setup will error unless it is marked optional. Paths must be
                                        relative and may not contain the '..' path or start with '..'.
                                      items:
                                        description: Maps a string key to a path within
                                          a volume.
                                        properties:
                                          key:
                                            description: key is the key to project.
                                            type: string
                                          mode:
                                            description: |-
                                              mode is Optional: mode bits used to set permissions on this file.
                                              Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                              YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                              If not specified, the volume defaultMode will be used.
                                              This might be in conflict with other options that affect the file
                                              mode, like fsGroup, and the result can be other mode bits set.
                                            format: int32
                                            type: integer
                                          path:
                                            description: |-
                                              path is the relative path of the file to map the key to.
                                              May not be an absolute path.
                                              May not contain the path element '..'.
                                              May not start with the string '..'.
                                            type: string
                                        required:
                                        - key
                                        - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    name:
                                      default: ""
                                      description: |-
                                        Name of the referent.
                                        This field is effectively required, but due to backwards compatibility is
                                        allowed to be empty. Instances of this type with an empty value here are
                                        almost certainly wrong.
                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      type: string
                                    optional:
                                      description: optional specify whether the ConfigMap
                                        or its keys must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                csi:
                                  description: csi (Container Storage Interface) represents
                                    ephemeral storage that is handled by certain external
                                    CSI drivers (Beta feature).
                                  properties:
                                    driver:
                                      description: |-
                                        driver is the name of the CSI driver that handles this volume.
                                        Consult with your admin for the correct name as registered in the cluster.
                                      type: string
                                    fsType:
                                      description: |-
                                        fsType to mount. Ex. "ext4", "xfs", "ntfs".
                                        If not provided, the empty value is passed to the associated CSI driver
                                        which will determine the default filesystem to apply.
                                      type: string
                                    nodePublishSecretRef:
                                      description: |-
                                        nodePublishSecretRef is a reference to the secret object containing
                                        sensitive information to pass to the CSI driver to complete the CSI
                                        NodePublishVolume and NodeUnpublishVolume calls.
                                        This field is optional, and  may be empty if no secret is required. If the
                                        secret object contains more than one secret, all secret references are passed.
                                      properties:
                                        name:
                                          default: ""
                                          description: |-
                                            Name of the referent.
                                            This field is effectively required, but due to backwards compatibility is
                                            allowed to be empty. Instances of this type with an empty value here are
                                            almost certainly wrong.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          type: string
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    readOnly:
                                      description: |-
                                        readOnly specifies a read-only configuration for the volume.
                                        Defaults to false (read/write).
                                      type: boolean
                                    volumeAttributes:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        volumeAttributes stores driver-specific properties that are passed to the CSI
                                        driver. Consult your driver's documentation for supported values.
                                      type: object
                                  required:
                                  - driver
                                  type: object
                                downwardAPI:
                                  description: downwardAPI represents downward API
                                    about the pod that should populate this volume
                                  properties:
                                    defaultMode:
                                      description: |-
                                        Optional: mode bits to use on created files by default. Must be a
                                        Optional: mode bits used to set permissions on created files by default.
                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                        Defaults to 0644.
                                        Directories within the path are not affected by this setting.
                                        This might be in conflict with other options that affect the file
                                        mode, like fsGroup, and the result can be other mode bits set.
                                      format: int32
                                      type: integer
                                    items:
                                      description: Items is a list of downward API
                                        volume file
                                      items:
                                        description: DownwardAPIVolumeFile represents
                                          information to create the file containing
                                          the pod field
                                        properties:
                                          fieldRef:
                                            description: 'Required: Selects a field
                                              of the pod: only annotations, labels,
                                              name, namespace and uid are supported.'
                                            properties:
                                              apiVersion:
                                                description: Version of the schema
                                                  the FieldPath is written in terms
                                                  of, defaults to "v1".
                                                type: string
                                              fieldPath:
                                                description: Path of the field to
                                                  select in the specified API version.
                                                type: string
                                            required:
                                            - fieldPath
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          mode:
                                            description: |-
                                              Optional: mode bits used to set permissions on this file, must be an octal value
                                              between 0000 and 0777 or a decimal value between 0 and 511.
                                              YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                              If not specified, the volume defaultMode will be used.
                                              This might be in conflict with other options that affect the file
                                              mode, like fsGroup, and the result can be other mode bits set.
                                            format: int32
                                            type: integer
                                          path:
                                            description: 'Required: Path is  the relative
                                              path name of the file to be created.
                                              Must not be absolute or contain the
                                              ''..'' path. Must be utf-8 encoded.
                                              The first item of the relative path
                                              must not start with ''..'''
                                            type: string
                                          resourceFieldRef:
                                            description: |-
                                              Selects a resource of the container: only resources limits and requests
                                              (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
                                            properties:
                                              containerName:
                                                description: 'Container name: required
                                                  for volumes, optional for env vars'
                                                type: string
                                              divisor:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Specifies the output
                                                  format of the exposed resources,
                                                  defaults to "1"
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              resource:
                                                description: 'Required: resource to
                                                  select'
                                                type: string
                                            required:
                                            - resource
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                emptyDir:
                                  description: |-
                                    emptyDir represents a temporary directory that shares a pod's lifetime.
                                    More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
                                  properties:
                                    medium:
                                      description: |-
                                        medium represents what type of storage medium should back this directory.
                                        The default is "" which means to use the node's default medium.
                                        Must be an empty string (default) or Memory.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
                                      type: string
                                    sizeLimit:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: |-
                                        sizeLimit is the total amount of local storage required for this EmptyDir volume.
                                        The size limit is also applicable for memory medium.
                                        The maximum usage on memory medium EmptyDir would be the minimum value between
                                        the SizeLimit specified here and the sum of memory limits of all containers in a pod.
                                        The default is nil which means that the limit is undefined.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                  type: object
                                fc:
                                  description: fc represents a Fibre Channel resource
                                    that is attached to a kubelet's host machine and
                                    then exposed to the pod.
                                  properties:
                                    fsType:
                                      description: |-
                                        fsType is the filesystem type to mount.
                                        Must be a filesystem type supported by the host operating system.
                                        Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
                                      type: string
                                    lun:
                                      description: 'lun is Optional: FC target lun
                                        number'
                                      format: int32
                                      type: integer
                                    readOnly:
                                      description: |-
                                        readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
                                        the ReadOnly setting in VolumeMounts.
                                      type: boolean
                                    targetWWNs:
                                      description: 'targetWWNs is Optional: FC target
                                        worldwide names (WWNs)'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    wwids:
                                      description: |-
                                        wwids Optional: FC volume world wide identifiers (wwids)
                                        Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                hostPath:
                                  description: |-
                                    Represents a host path mapped into a pod.
                                    Host path volumes do not support ownership management or SELinux relabeling.
                                  properties:
                                    path:
                                      description: |-
                                        path of the directory on the host.
                                        If the path is a symlink, it will follow the link to the real path.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
                                      type: string
                                    type:
                                      description: |-
                                        type for HostPath Volume
                                        Defaults to ""
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
                                      type: string
                                  required:
                                  - path
                                  type: object
                                iscsi:
                                  description: |-
                                    iscsi represents an ISCSI Disk resource that is attached to a
                                    kubelet's host machine and then exposed to the pod.
                                    More info: https://examples.k8s.io/volumes/iscsi/README.md
                                  properties:
                                    chapAuthDiscovery:
                                      description: chapAuthDiscovery defines whether
                                        support iSCSI Discovery CHAP authentication
                                      type: boolean
                                    chapAuthSession:
                                      description: chapAuthSession defines whether
                                        support iSCSI Session CHAP authentication
                                      type: boolean
                                    fsType:
                                      description: |-
                                        fsType is the filesystem type of the volume that you want to mount.
                                        Tip: Ensure that the filesystem type is supported by the host operating system.
                                        Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                      type: string
                                    initiatorName:
                                      description: |-
                                        initiatorName is the custom iSCSI Initiator Name.
                                        If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
                                        <target portal>:<volume name> will be created for the connection.
                                      type: string
                                    iqn:
                                      description: iqn is the target iSCSI Qualified
                                        Name.
                                      type: string
                                    iscsiInterface:
                                      default: default
                                      description: |-
                                        iscsiInterface is the interface Name that uses an iSCSI transport.
                                        Defaults to 'default' (tcp).
                                      type: string
                                    lun:
                                      description: lun represents iSCSI Target Lun
                                        number.
                                      format: int32
                                      type: integer
                                    portals:
                                      description: |-
                                        portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
                                        is other than default (typically TCP ports 860 and 3260).
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    readOnly:
                                      description: |-
                                        readOnly here will force the ReadOnly setting in VolumeMounts.
                                        Defaults to false.
                                      type: boolean
                                    secretRef:
                                      description: secretRef is the CHAP Secret for
                                        iSCSI target and initiator authentication
                                      properties:
                                        name:
                                          default: ""
                                          description: |-
                                            Name of the referent.
                                            This field is effectively required, but due to backwards compatibility is
                                            allowed to be empty. Instances of this type with an empty value here are
                                            almost certainly wrong.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          type: string
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    targetPortal:
                                      description: |-
                                        targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
                                        is other than default (typically TCP ports 860 and 3260).
                                      type: string
                                  required:
                                  - iqn
                                  - lun
                                  - targetPortal
                                  type: object
                                name:
                                  description: Name of the volume
                                  type: string
                                nfs:
                                  description: |-
                                    nfs represents an NFS mount on the host that shares a pod's lifetime
                                    More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
                                  properties:
                                    path:
                                      description: |-
                                        path that is exported by the NFS server.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
                                      type: string
                                    readOnly:
                                      description: |-
                                        readOnly here will force the NFS export to be mounted with read-only permissions.
                                        Defaults to false.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
                                      type: boolean
                                    server:
                                      description: |-
                                        server is the hostname or IP address of the NFS server.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
                                      type: string
                                  required:
                                  - path
                                  - server
                                  type: object
                                persistentVolumeClaim:
                                  description: |-
                                    persistentVolumeClaimVolumeSource represents a reference to a
                                    PersistentVolumeClaim in the same namespace.
                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
                                  properties:
                                    claimName:
                                      description: |-
                                        claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
                                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
                                      type: string
                                    readOnly:
                                      description: |-
                                        readOnly Will force the ReadOnly setting in VolumeMounts.
                                        Default false.
                                      type: boolean
                                  required:
                                  - claimName
                                  type: object
                                projected:
                                  description: projected items for all in one resources
                                    secrets, configmaps, and downward API
                                  properties:
                                    defaultMode:
                                      description: |-
                                        defaultMode are the mode bits used to set permissions on created files by default.
                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                        Directories within the path are not affected by this setting.
                                        This might be in conflict with other options that affect the file
                                        mode, like fsGroup, and the result can be other mode bits set.
                                      format: int32
                                      type: integer
                                    sources:
                                      description: |-
                                        sources is the list of volume projections. Each entry in this list
                                        handles one source.
                                      items:
                                        description: |-
                                          Projection that may be projected along with other supported volume types.
                                          Exactly one of these fields must be set.
                                        properties:
                                          clusterTrustBundle:
                                            description: |-
                                              ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
                                              of ClusterTrustBundle objects in an auto-updating file.

                                              Alpha, gated by the ClusterTrustBundleProjection feature gate.

                                              ClusterTrustBundle objects can either be selected by name, or by the
                                              combination of signer name and a label selector.

                                              Kubelet performs aggressive normalization of the PEM contents written
                                              into the pod filesystem.  Esoteric PEM features such as inter-block
                                              comments and block headers are stripped.  Certificates are deduplicated.
                                              The ordering of certificates within the file is arbitrary, and Kubelet
                                              may change the order over time.
                                            properties:
                                              labelSelector:
                                                description: |-
                                                  Select all ClusterTrustBundles that match this label selector.  Only has
                                                  effect if signerName is set.  Mutually-exclusive with name.  If unset,
                                                  interpreted as "match nothing".  If set but empty, interpreted as "match
                                                  everything".
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions
                                                      is a list of label selector
                                                      requirements. The requirements
                                                      are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description: key is the
                                                            label key that the selector
                                                            applies to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                      - key
                                                      - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              name:
                                                description: |-
                                                  Select a single ClusterTrustBundle by object name.  Mutually-exclusive
                                                  with signerName and labelSelector.
                                                type: string
                                              optional:
                                                description: |-
                                                  If true, don't block pod startup if the referenced ClusterTrustBundle(s)
                                                  aren't available.  If using name, then the named ClusterTrustBundle is
                                                  allowed not to exist.  If using signerName, then the combination of
                                                  signerName and labelSelector is allowed to match zero
                                                  ClusterTrustBundles.
                                                type: boolean
                                              path:
                                                description: Relative path from the
                                                  volume root to write the bundle.
                                                type: string
                                              signerName:
                                                description: |-
                                                  Select all ClusterTrustBundles that match this signer name.
                                                  Mutually-exclusive with name.  The contents of all selected
                                                  ClusterTrustBundles will be unified and deduplicated.
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          configMap:
                                            description: configMap information about
                                              the configMap data to project
                                            properties:
                                              items:
                                                description: |-
                                                  items if unspecified, each key-value pair in the Data field of the referenced
                                                  ConfigMap will be projected into the volume as a file whose name is the
                                                  key and content is the value. If specified, the listed keys will be
                                                  projected into the specified paths, and unlisted keys will not be
                                                  present. If a key is specified which is not present in the ConfigMap,
                                                  the volume setup will error unless it is marked optional. Paths must be
                                                  relative and may not contain the '..' path or start with '..'.
                                                items:
                                                  description: Maps a string key to
                                                    a path within a volume.
                                                  properties:
                                                    key:
                                                      description: key is the key
                                                        to project.
                                                      type: string
                                                    mode:
                                                      description: |-
                                                        mode is Optional: mode bits used to set permissions on this file.
                                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                                        If not specified, the volume defaultMode will be used.
                                                        This might be in conflict with other options that affect the file
                                                        mode, like fsGroup, and the result can be other mode bits set.
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      description: |-
                                                        path is the relative path of the file to map the key to.
                                                        May not be an absolute path.
                                                        May not contain the path element '..'.
                                                        May not start with the string '..'.
                                                      type: string
                                                  required:
                                                  - key
                                                  - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              name:
                                                default: ""
                                                description: |-
                                                  Name of the referent.
                                                  This field is effectively required, but due to backwards compatibility is
                                                  allowed to be empty. Instances of this type with an empty value here are
                                                  almost certainly wrong.
                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                type: string
                                              optional:
                                                description: optional specify whether
                                                  the ConfigMap or its keys must be
                                                  defined
                                                type: boolean
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          downwardAPI:
                                            description: downwardAPI information about
                                              the downwardAPI data to project
                                            properties:
                                              items:
                                                description: Items is a list of DownwardAPIVolume
                                                  file
                                                items:
                                                  description: DownwardAPIVolumeFile
                                                    represents information to create
                                                    the file containing the pod field
                                                  properties:
                                                    fieldRef:
                                                      description: 'Required: Selects
                                                        a field of the pod: only annotations,
                                                        labels, name, namespace and
                                                        uid are supported.'
                                                      properties:
                                                        apiVersion:
                                                          description: Version of
                                                            the schema the FieldPath
                                                            is written in terms of,
                                                            defaults to "v1".
                                                          type: string
                                                        fieldPath:
                                                          description: Path of the
                                                            field to select in the
                                                            specified API version.
                                                          type: string
                                                      required:
                                                      - fieldPath
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    mode:
                                                      description: |-
                                                        Optional: mode bits used to set permissions on this file, must be an octal value
                                                        between 0000 and 0777 or a decimal value between 0 and 511.
                                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                                        If not specified, the volume defaultMode will be used.
                                                        This might be in conflict with other options that affect the file
                                                        mode, like fsGroup, and the result can be other mode bits set.
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      description: 'Required: Path
                                                        is  the relative path name
                                                        of the file to be created.
                                                        Must not be absolute or contain
                                                        the ''..'' path. Must be utf-8
                                                        encoded. The first item of
                                                        the relative path must not
                                                        start with ''..'''
                                                      type: string
                                                    resourceFieldRef:
                                                      description: |-
                                                        Selects a resource of the container: only resources limits and requests
                                                        (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
                                                      properties:
                                                        containerName:
                                                          description: 'Container
                                                            name: required for volumes,
                                                            optional for env vars'
                                                          type: string
                                                        divisor:
                                                          anyOf:
                                                          - type: integer
                                                          - type: string
                                                          description: Specifies the
                                                            output format of the exposed
                                                            resources, defaults to
                                                            "1"
                                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                          x-kubernetes-int-or-string: true
                                                        resource:
                                                          description: 'Required:
                                                            resource to select'
                                                          type: string
                                                      required:
                                                      - resource
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            type: object
                                          secret:
                                            description: secret information about
                                              the secret data to project
                                            properties:
                                              items:
                                                description: |-
                                                  items if unspecified, each key-value pair in the Data field of the referenced
                                                  Secret will be projected into the volume as a file whose name is the
                                                  key and content is the value. If specified, the listed keys will be
                                                  projected into the specified paths, and unlisted keys will not be
                                                  present. If a key is specified which is not present in the Secret,
                                                  the volume setup will error unless it is marked optional. Paths must be
                                                  relative and may not contain the '..' path or start with '..'.
                                                items:
                                                  description: Maps a string key to
                                                    a path within a volume.
                                                  properties:
                                                    key:
                                                      description: key is the key
                                                        to project.
                                                      type: string
                                                    mode:
                                                      description: |-
                                                        mode is Optional: mode bits used to set permissions on this file.
                                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                                        If not specified, the volume defaultMode will be used.
                                                        This might be in conflict with other options that affect the file
                                                        mode, like fsGroup, and the result can be other mode bits set.
                                                      format: int32
                                                      type: integer
                                                    path:
                                                      description: |-
                                                        path is the relative path of the file to map the key to.
                                                        May not be an absolute path.
                                                        May not contain the path element '..'.
                                                        May not start with the string '..'.
                                                      type: string
                                                  required:
                                                  - key
                                                  - path
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              name:
                                                default: ""
                                                description: |-
                                                  Name of the referent.
                                                  This field is effectively required, but due to backwards compatibility is
                                                  allowed to be empty. Instances of this type with an empty value here are
                                                  almost certainly wrong.
                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                type: string
                                              optional:
                                                description: optional field specify
                                                  whether the Secret or its key must
                                                  be defined
                                                type: boolean
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          serviceAccountToken:
                                            description: serviceAccountToken is information
                                              about the serviceAccountToken data to
                                              project
                                            properties:
                                              audience:
                                                description: |-
                                                  audience is the intended audience of the token. A recipient of a token
                                                  must identify itself with an identifier specified in the audience of the
                                                  token, and otherwise should reject the token. The audience defaults to the
                                                  identifier of the apiserver.
                                                type: string
                                              expirationSeconds:
                                                description: |-
                                                  expirationSeconds is the requested duration of validity of the service
                                                  account token. As the token approaches expiration, the kubelet volume
                                                  plugin will proactively rotate the service account token. The kubelet will
                                                  start trying to rotate the token if the token is older than 80 percent of
                                                  its time to live or if the token is older than 24 hours.Defaults to 1 hour
                                                  and must be at least 10 minutes.
                                                format: int64
                                                type: integer
                                              path:
                                                description: |-
                                                  path is the path relative to the mount point of the file to project the
                                                  token into.
                                                type: string
                                            required:
                                            - path
                                            type: object
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                scaleIO:
                                  description: scaleIO represents a ScaleIO persistent
                                    volume attached and mounted on Kubernetes nodes.
                                  properties:
                                    fsType:
                                      default: xfs
                                      description: |-
                                        fsType is the filesystem type to mount.
                                        Must be a filesystem type supported by the host operating system.
                                        Ex. "ext4", "xfs", "ntfs".
                                        Default is "xfs".
                                      type: string
                                    gateway:
                                      description: gateway is the host address of
                                        the ScaleIO API Gateway.
                                      type: string
                                    protectionDomain:
                                      description: protectionDomain is the name of
                                        the ScaleIO Protection Domain for the configured
                                        storage.
                                      type: string
                                    readOnly:
                                      description: |-
                                        readOnly Defaults to false (read/write). ReadOnly here will force
                                        the ReadOnly setting in VolumeMounts.
                                      type: boolean
                                    secretRef:
                                      description: |-
                                        secretRef references to the secret for ScaleIO user and other
                                        sensitive information. If this is not provided, Login operation will fail.
                                      properties:
                                        name:
                                          default: ""
                                          description: |-
                                            Name of the referent.
                                            This field is effectively required, but due to backwards compatibility is
                                            allowed to be empty. Instances of this type with an empty value here are
                                            almost certainly wrong.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          type: string
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sslEnabled:
                                      description: sslEnabled Flag enable/disable
                                        SSL communication with Gateway, default false
                                      type: boolean
                                    storageMode:
                                      default: ThinProvisioned
                                      description: |-
                                        storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
                                        Default is ThinProvisioned.
                                      type: string
                                    storagePool:
                                      description: storagePool is the ScaleIO Storage
                                        Pool associated with the protection domain.
                                      type: string
                                    system:
                                      description: system is the name of the storage
                                        system as configured in ScaleIO.
                                      type: string
                                    volumeName:
                                      description: |-
                                        volumeName is the name of a volume already created in the ScaleIO system
                                        that is associated with this volume source.
                                      type: string
                                  required:
                                  - gateway
                                  - secretRef
                                  - system
                                  type: object
                                secret:
                                  description: |-
                                    secret represents a secret that should populate this volume.
                                    More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
                                  properties:
                                    defaultMode:
                                      description: |-
                                        defaultMode is Optional: mode bits used to set permissions on created files by default.
                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                        YAML accepts both octal and decimal values, JSON requires decimal values
                                        for mode bits. Defaults to 0644.
                                        Directories within the path are not affected by this setting.
                                        This might be in conflict with other options that affect the file
                                        mode, like fsGroup, and the result can be other mode bits set.
                                      format: int32
                                      type: integer
                                    items:
                                      description: |-
                                        items If unspecified, each key-value pair in the Data field of the referenced
                                        Secret will be projected into the volume as a file whose name is the
                                        key and content is the value. If specified, the listed keys will be
                                        projected into the specified paths, and unlisted keys will not be
                                        present. If a key is specified which is not present in the Secret,
                                        the volume setup will error unless it is marked optional. Paths must be
                                        relative and may not contain the '..' path or start with '..'.
                                      items:
                                        description: Maps a string key to a path within
                                          a volume.
                                        properties:
                                          key:
                                            description: key is the key to project.
                                            type: string
                                          mode:
                                            description: |-
                                              mode is Optional: mode bits used to set permissions on this file.
                                              Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
                                              YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
                                              If not specified, the volume defaultMode will be used.
                                              This might be in conflict with other options that affect the file
                                              mode, like fsGroup, and the result can be other mode bits set.
                                            format: int32
                                            type: integer
                                          path:
                                            description: |-
                                              path is the relative path of the file to map the key to.
                                              May not be an absolute path.
                                              May not contain the path element '..'.
                                              May not start with the string '..'.
                                            type: string
                                        required:
                                        - key
                                        - path
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    optional:
                                      description: optional field specify whether
                                        the Secret or its keys must be defined
                                      type: boolean
                                    secretName:
                                      description: |-
                                        secretName is the name of the secret in the pod's namespace to use.
                                        More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
                                      type: string
                                  type: object
                                storageos:
                                  description: storageOS represents a StorageOS volume
                                    attached and mounted on Kubernetes nodes.
                                  properties:
                                    fsType:
                                      description: |-
                                        fsType is the filesystem type to mount.
                                        Must be a filesystem type supported by the host operating system.
                                        Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
                                      type: string
                                    readOnly:
                                      description: |-
                                        readOnly defaults to false (read/write). ReadOnly here will force
                                        the ReadOnly setting in VolumeMounts.
                                      type: boolean
                                    secretRef:
                                      description: |-
                                        secretRef specifies the secret to use for obtaining the StorageOS API
                                        credentials.  If not specified, default values will be attempted.
                                      properties:
                                        name:
                                          default: ""
                                          description: |-
                                            Name of the referent.
                                            This field is effectively required, but due to backwards compatibility is
                                            allowed to be empty. Instances of this type with an empty value here are
                                            almost certainly wrong.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          type: string
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    volumeName:
                                      description: |-
                                        volumeName is the human-readable name of the StorageOS volume.  Volume
                                        names are only unique within a namespace.
                                      type: string
                                    volumeNamespace:
                                      description: |-
                                        volumeNamespace specifies the scope of the volume within StorageOS.  If no
                                        namespace is specified then the Pod's namespace will be used.  This allows the
                                        Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
                                        Set VolumeName to any name to override the default behaviour.
                                        Set to "default" if you are not using namespaces within StorageOS.
                                        Namespaces that do not pre-exist within StorageOS will be created.
                                      type: string
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                        required:
                        - mounts
                        - volumes
                        type: object
                      type: array
                    name:
                      type: string
                    region:
                      type: string
                  required:
                  - extraVol
                  type: object
                type: array
              networkAttachments:
                description: |-
                  NetworkAttachments is a list of NetworkAttachment resource names to expose
                  the services to the given network
                items:
                  type: string
                type: array
              nodeSelector:
                additionalProperties:
                  type: string
                description: |-
                  This value contains a nodeSelector value that is applied to test pods
                  spawned by the test operator.
                type: object
              openStackConfigMap:
                default: openstack-config
                description: OpenStackConfigMap is the name of the ConfigMap containing
                  the clouds.yaml
                type: string
              openStackConfigSecret:
                default: openstack-config-secret
                description: OpenStackConfigSecret is the name of the Secret containing
                  the secure.yaml
                type: string
              parallel:
                default: false
                description: |-
                  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.
                type: boolean
              privileged:
                default: false
                description: |-
                  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 a certain set of tobiko tests).
                type: boolean
              rerunFailedTests:
                default: false
                description: |-
                  Activate tempest re-run feature. When activated, tempest will perform
                  another run of the tests that failed during the first execution.
                type: boolean
              rerunOverrideStatus:
                default: false
                description: |-
                  Allow override of exit status with the tempest re-run feature.
                  When activated, the original return value of the tempest run will be
                  overridden with a result of the tempest run on the set of failed tests.
                type: boolean
              resources:
                default:
                  limits:
                    cpu: 8000m
                    memory: 4Gi
                  requests:
                    cpu: 4000m
                    memory: 2Gi
                description: |-
                  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
                properties:
                  claims:
                    description: |-
                      Claims lists the names of resources, defined in spec.resourceClaims,
                      that are used by this container.

                      This is an alpha field and requires enabling the
                      DynamicResourceAllocation feature gate.

                      This field is immutable. It can only be set for containers.
                    items:
                      description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                      properties:
                        name:
                          description: |-
                            Name must match the name of one entry in pod.spec.resourceClaims of
                            the Pod where this field is used. It makes that resource available
                            inside a container.
                          type: string
                        request:
                          description: |-
                            Request is the name chosen for a request in the referenced claim.
                            If empty, everything from the claim is made available, otherwise
                            only the result of this request.
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                    x-kubernetes-list-map-keys:
                    - name
                    x-kubernetes-list-type: map
                  limits:
                    additionalProperties:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    description: |-
                      Limits describes the maximum amount of compute resources allowed.
                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                    type: object
                  requests:
                    additionalProperties:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    description: |-
                      Requests describes the minimum amount of compute resources required.
                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                      otherwise to an implementation-defined value. Requests cannot exceed Limits.
                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                    type: object
                type: object
              storageClass:
                default: local-storage
                description: StorageClass used to create any test-operator related
                  PVCs.
                type: string
              tempestRun:
                description: |-
                  TempestRunSpec - is used to configure execution of tempest. Please refer to
                  Please refer to https://docs.openstack.org/tempest/latest/ for further
                  explanation of the CLI parameters.
                properties:
                  concurrency:
                    default: 0
                    description: Concurrency value that is passed to tempest via --concurrency
                    format: int64
                    maximum: 128
                    minimum: 0
                    type: integer
                  excludeList:
                    description: A content of exclude.txt file that is passed to tempest
                      via --exclude-list
                    type: string
                  expectedFailuresList:
                    description: |-
                      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.
                    type: string
                  externalPlugin:
                    description: |-
                      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.
                    items:
                      description: |-
                        ExternalPluginType - is used to specify a plugin that should be installed
                        from an external resource
                      properties:
                        changeRefspec:
                          description: |-
                            ChangeRefspec specifies which change the remote repository should be
                            checked out to (ChangeRepository must be defined as well).
                          maxLength: 253
                          type: string
                        changeRepository:
                          description: |-
                            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).
                          format: uri
                          type: string
                        repository:
                          description: URL that points to a git repository containing
                            an external plugin.
                          format: uri
                          type: string
                      required:
                      - repository
                      type: object
                    type: array
                  extraImages:
                    description: |-
                      Extra images that should be downloaded inside the test pod and uploaded to
                      openstack.
                    items:
                      description: |-
                        ExtraImagesType - is used to specify extra images that should be downloaded
                        inside the test pod and uploaded to openstack
                      properties:
                        ID:
                          default: '-'
                          description: ID that should be assigned to the newly created
                            image
                          type: string
                        URL:
                          description: URL that points to a location where the image
                            is located
                          format: uri
                          type: string
                        containerFormat:
                          default: '-'
                          description: Image container format
                          type: string
                        diskFormat:
                          default: '-'
                          description: Image disk format
                          type: string
                        flavor:
                          description: Information about flavor that should be created
                            together with the image
                          properties:
                            ID:
                              default: '-'
                              description: ID that should be assigned to the newly
                                created flavor
                              type: string
                            RAM:
                              description: How much RAM should be allocated when this
                                flavor is used
                              format: int64
                              minimum: 1
                              type: integer
                            disk:
                              description: How much disk space should be allocated
                                when this flavor is used
                              format: int64
                              minimum: 0
                              type: integer
                            name:
                              description: Name of the flavor that should be created
                              maxLength: 253
                              minLength: 1
                              pattern: ^[a-z0-9._-]+$
                              type: string
                            osCloud:
                              default: '-'
                              description: Cloud that should be used for authentication
                              type: string
                            vcpus:
                              description: How many vcpus should be allocated when
                                this flavor is used
                              format: int64
                              minimum: 1
                              type: integer
                          required:
                          - RAM
                          - disk
                          - name
                          - vcpus
                          type: object
                        imageCreationTimeout:
                          default: 300
                          description: Timeout duration for an image to reach the
                            active state after its creation
                          format: int64
                          type: integer
                        name:
                          description: Name of the image
                          maxLength: 253
                          minLength: 1
                          pattern: ^[a-z0-9._-]+$
                          type: string
                        osCloud:
                          default: '-'
                          description: Cloud that should be used for authentication
                          type: string
                      required:
                      - URL
                      - name
                      type: object
                    type: array
                  extraRPMs:
                    description: |-
                      A list URLs that point to RPMs that should be downloaded and installed
                      inside the tempest test pod.
                    items:
                      type: string
                    type: array
                  includeList:
                    default: tempest.api.identity.v3
                    description: A content of include.txt file that is passed to tempest
                      via --include-list
                    type: string
                  parallel:
                    default: true
                    description: Indicate whether tempest should be executed with
                      --parallel
                    type: boolean
                  serial:
                    default: false
                    description: Indicate whether tempest should be executed with
                      --serial
                    type: boolean
                  smoke:
                    default: false
                    description: Indicate whether tempest should be executed with
                      --smoke
                    type: boolean
                  workerFile:
                    default: ""
                    description: A content of worker_file.yaml that is passed to tempest
                      via --worker-file
                    type: string
                type: object
              tempestconfRun:
                description: |-
                  TempestconfRunSpec - is used to configure execution of discover-tempest-config
                  Please refer to https://docs.opendev.org/openinfra/python-tempestconf for
                  further explanation of the CLI parameters.
                properties:
                  append:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --append
                    type: string
                  collectTiming:
                    default: false
                    description: |-
                      Indicate whether discover-tempest-config should be executed with
                      --collect-timing
                    type: boolean
                  convertToRaw:
                    default: false
                    description: |-
                      Indicate whether discover-tempest-config should be executed with
                      --convert-to-raw
                    type: boolean
                  create:
                    default: true
                    description: Indicate whether discover-tempest-config should be
                      executed with --create
                    type: boolean
                  createAccountsFile:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      the --create-accounts-file
                    type: string
                  debug:
                    default: false
                    description: Indicate whether discover-tempest-config should be
                      executed with --debug
                    type: boolean
                  deployerInput:
                    default: ""
                    description: A content of deployer_input.ini that is passed to
                      tempest via --deployer-input
                    type: string
                  flavorMinDisk:
                    default: 0
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --flavor-min-disk
                    format: int64
                    minimum: 0
                    type: integer
                  flavorMinMem:
                    default: 0
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --flavor-min-mem
                    format: int64
                    minimum: 0
                    type: integer
                  generateProfile:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --generate-profile
                    type: string
                  image:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --image
                    type: string
                  imageDiskFormat:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --image-disk-format
                    type: string
                  insecure:
                    default: false
                    description: Indicate whether discover-tempest-config should be
                      executed with --insecure
                    type: boolean
                  networkID:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --network-id
                    type: string
                  noDefaultDeployer:
                    default: false
                    description: |-
                      Indicate whether discover-tempest-config should be executed with
                      --no-default-deployer
                    type: boolean
                  nonAdmin:
                    default: false
                    description: Indicate whether discover-tempest-config should be
                      executed with --non-admin
                    type: boolean
                  out:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      the --out parameter
                    type: string
                  overrides:
                    default: identity.v3_endpoint_type public
                    description: |-
                      The content of this variable will be appended at the end of the command
                      that executes discover-tempest-config (override values).
                    type: string
                  profile:
                    default: ""
                    description: A content of profile.yaml that is passed to tempest
                      via --profile
                    type: string
                  remove:
                    default: ""
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --remove
                    type: string
                  retryImage:
                    default: false
                    description: Indicate whether discover-tempest-config should be
                      executed with --retry-image
                    type: boolean
                  testAccounts:
                    default: ""
                    description: A content of accounts.yaml that is passed to tempest
                      via --test-accounts
                    type: string
                  timeout:
                    default: 0
                    description: |-
                      The content of this variable will be passed to discover-tempest-config via
                      --timeout
                    format: int64
                    minimum: 0
                    type: integer
                  verbose:
                    default: false
                    description: Indicate whether discover-tempest-config should be
                      executed with --verbose
                    type: boolean
                type: object
              timingDataUrl:
                description: |-
                  An URL pointing to an archive that contains the saved stestr timing data.
                  This data is used to optimize the tests order, which helps to reduce the
                  total Tempest execution time.
                format: uri
                type: string
              tolerations:
                description: |-
                  This value contains a toleration that is applied to pods spawned by the
                  test pods that are spawned by the test-operator.
                items:
                  description: |-
                    The pod this Toleration is attached to tolerates any taint that matches
                    the triple <key,value,effect> using the matching operator <operator>.
                  properties:
                    effect:
                      description: |-
                        Effect indicates the taint effect to match. Empty means match all taint effects.
                        When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                      type: string
                    key:
                      description: |-
                        Key is the taint key that the toleration applies to. Empty means match all taint keys.
                        If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                      type: string
                    operator:
                      description: |-
                        Operator represents a key's relationship to the value.
                        Valid operators are Exists and Equal. Defaults to Equal.
                        Exists is equivalent to wildcard for value, so that a pod can
                        tolerate all taints of a particular category.
                      type: string
                    tolerationSeconds:
                      description: |-
                        TolerationSeconds represents the period of time the toleration (which must be
                        of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
                        it is not set, which means tolerate the taint forever (do not evict). Zero and
                        negative values will be treated as 0 (evict immediately) by the system.
                      format: int64
                      type: integer
                    value:
                      description: |-
                        Value is the taint value the toleration matches to.
                        If the operator is Exists, the value should be empty, otherwise just a regular string.
                      type: string
                  type: object
                type: array
              workflow:
                description: |-
                  Workflow - can be used to specify 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.
                items:
                  description: |-
                    TempestSpec - configuration of execution of tempest. For specific configuration
                    of tempest see TempestRunSpec and for discover-tempest-config see TempestconfRunSpec.
                  properties:
                    SELinuxLevel:
                      description: |-
                        A SELinuxLevel that should be used for test pods spawned by the test
                        operator.
                      type: string
                    SSHKeySecretName:
                      description: |-
                        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
                      type: string
                    backoffLimit:
                      default: 0
                      description: BackoffLimit allows to define the maximum number
                        of retried executions (defaults to 0).
                      format: int32
                      type: integer
                    configOverwrite:
                      additionalProperties:
                        type: string
                      description: |-
                        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>
                      type: object
                    containerImage:
                      default: ""
                      description: A URL of a container image that should be used
                        by the test-operator for tests execution.
                      type: string
                    extraConfigmapsMounts:
                      description: |-
                        Extra configmaps for mounting inside the pod
                        WARNING: This parameter will be deprecated!
                        Please use ExtraMounts parameter instead!
                      items:
                        description: |-
                          WARNING: This parameter will be deprecated!
                          Please use ExtraMounts parameter instead!
                        properties:
                          mountPath:
                            description: Path within the container at which the volume
                              should be mounted.
                            type: string
                          name:
                            description: The name of an existing config map for mounting.
                            maxLength: 253
                            type: string
                          subPath:
                            default: ""
                            description: Config map subpath for mounting, defaults
                              to configmap root.
                            type: string
                        required:
                        - mountPath
                        - name
                        - subPath
                        type: object
                      type: array
                    networkAttachments:
                      description: |-
                        NetworkAttachments is a list of NetworkAttachment resource names to expose
                        the services to the given network
                      items:
                        type: string
                      type: array
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: |-
                        This value contains a nodeSelector value that is applied to test pods
                        spawned by the test operator.
                      type: object
                    openStackConfigMap:
                      default: openstack-config
                      description: OpenStackConfigMap is the name of the ConfigMap
                        containing the clouds.yaml
                      type: string
                    openStackConfigSecret:
                      default: openstack-config-secret
                      description: OpenStackConfigSecret is the name of the Secret
                        containing the secure.yaml
                      type: string
                    parallel:
                      description: |-
                        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.
                      type: boolean
                    privileged:
                      description: |-
                        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 a certain set
                        of tobiko tests).
                      type: boolean
                    rerunFailedTests:
                      description: |-
                        Activate tempest re-run feature. When activated, tempest will perform
                        another run of the tests that failed during the first execution.
                      type: boolean
                    rerunOverrideStatus:
                      description: |-
                        Allow override of exit status with the tempest re-run feature.
                        When activated, the original return value of the tempest run will be
                        overridden with a result of the tempest run on the set of failed tests.
                      type: boolean
                    resources:
                      description: |-
                        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
                      properties:
                        claims:
                          description: |-
                            Claims lists the names of resources, defined in spec.resourceClaims,
                            that are used by this container.

                            This is an alpha field and requires enabling the
                            DynamicResourceAllocation feature gate.

                            This field is immutable. It can only be set for containers.
                          items:
                            description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                            properties:
                              name:
                                description: |-
                                  Name must match the name of one entry in pod.spec.resourceClaims of
                                  the Pod where this field is used. It makes that resource available
                                  inside a container.
                                type: string
                              request:
                                description: |-
                                  Request is the name chosen for a request in the referenced claim.
                                  If empty, everything from the claim is made available, otherwise
                                  only the result of this request.
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        limits:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: |-
                            Limits describes the maximum amount of compute resources allowed.
                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                          type: object
                        requests:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: |-
                            Requests describes the minimum amount of compute resources required.
                            If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                            otherwise to an implementation-defined value. Requests cannot exceed Limits.
                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                          type: object
                      type: object
                    stepName:
                      description: |-
                        Name of a workflow step. The step name will be used for example to create
                        a logs directory.
                      pattern: ^[a-z0-9-]+$
                      type: string
                    storageClass:
                      description: StorageClass used to create any test-operator related
                        PVCs.
                      type: string
                    tempestRun:
                      description: |-
                        WorkflowTempestRunSpec - is used to configure execution of tempest.
                        Please refer to https://docs.openstack.org/tempest/latest/ for further
                        explanation of the CLI parameters.
                      properties:
                        concurrency:
                          description: Concurrency value that is passed to tempest
                            via --concurrency
                          format: int64
                          maximum: 128
                          minimum: 0
                          type: integer
                        excludeList:
                          description: A content of exclude.txt file that is passed
                            to tempest via --exclude-list
                          type: string
                        expectedFailuresList:
                          description: |-
                            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.
                          type: string
                        externalPlugin:
                          description: |-
                            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.
                          items:
                            description: |-
                              ExternalPluginType - is used to specify a plugin that should be installed
                              from an external resource
                            properties:
                              changeRefspec:
                                description: |-
                                  ChangeRefspec specifies which change the remote repository should be
                                  checked out to (ChangeRepository must be defined as well).
                                maxLength: 253
                                type: string
                              changeRepository:
                                description: |-
                                  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).
                                format: uri
                                type: string
                              repository:
                                description: URL that points to a git repository containing
                                  an external plugin.
                                format: uri
                                type: string
                            required:
                            - repository
                            type: object
                          type: array
                        extraImages:
                          description: |-
                            Extra images that should be downloaded inside the test pod and uploaded to
                            openstack.
                          items:
                            description: |-
                              ExtraImagesType - is used to specify extra images that should be downloaded
                              inside the test pod and uploaded to openstack
                            properties:
                              ID:
                                default: '-'
                                description: ID that should be assigned to the newly
                                  created image
                                type: string
                              URL:
                                description: URL that points to a location where the
                                  image is located
                                format: uri
                                type: string
                              containerFormat:
                                default: '-'
                                description: Image container format
                                type: string
                              diskFormat:
                                default: '-'
                                description: Image disk format
                                type: string
                              flavor:
                                description: Information about flavor that should
                                  be created together with the image
                                properties:
                                  ID:
                                    default: '-'
                                    description: ID that should be assigned to the
                                      newly created flavor
                                    type: string
                                  RAM:
                                    description: How much RAM should be allocated
                                      when this flavor is used
                                    format: int64
                                    minimum: 1
                                    type: integer
                                  disk:
                                    description: How much disk space should be allocated
                                      when this flavor is used
                                    format: int64
                                    minimum: 0
                                    type: integer
                                  name:
                                    description: Name of the flavor that should be
                                      created
                                    maxLength: 253
                                    minLength: 1
                                    pattern: ^[a-z0-9._-]+$
                                    type: string
                                  osCloud:
                                    default: '-'
                                    description: Cloud that should be used for authentication
                                    type: string
                                  vcpus:
                                    description: How many vcpus should be allocated
                                      when this flavor is used
                                    format: int64
                                    minimum: 1
                                    type: integer
                                required:
                                - RAM
                                - disk
                                - name
                                - vcpus
                                type: object
                              imageCreationTimeout:
                                default: 300
                                description: Timeout duration for an image to reach
                                  the active state after its creation
                                format: int64
                                type: integer
                              name:
                                description: Name of the image
                                maxLength: 253
                                minLength: 1
                                pattern: ^[a-z0-9._-]+$
                                type: string
                              osCloud:
                                default: '-'
                                description: Cloud that should be used for authentication
                                type: string
                            required:
                            - URL
                            - name
                            type: object
                          type: array
                        extraRPMs:
                          description: |-
                            A list of URLs that point to RPMs that should be downloaded and installed
                            inside the tempest test pod.
                          items:
                            type: string
                          type: array
                        includeList:
                          description: A content of include.txt file that is passed
                            to tempest via --include-list
                          type: string
                        parallel:
                          description: Indicate whether tempest should be executed
                            with --parallel
                          type: boolean
                        serial:
                          description: Indicate whether tempest should be executed
                            with --serial
                          type: boolean
                        smoke:
                          description: Indicate whether tempest should be executed
                            with --smoke
                          type: boolean
                        workerFile:
                          description: A content of worker_file.yaml that is passed
                            to tempest via --worker-file
                          type: string
                      type: object
                    tempestconfRun:
                      description: |-
                        WorkflowTempestconfRunSpec - is used to configure execution of discover-tempest-config
                        Please refer to https://docs.opendev.org/openinfra/python-tempestconf for
                        further explanation of the CLI parameters.
                      properties:
                        append:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --append
                          type: string
                        collectTiming:
                          description: |-
                            Indicate whether discover-tempest-config should be executed with
                            --collect-timing
                          type: boolean
                        convertToRaw:
                          description: |-
                            Indicate whether discover-tempest-config should be executed with
                            --convert-to-raw
                          type: boolean
                        create:
                          description: Indicate whether discover-tempest-config should
                            be executed with --create
                          type: boolean
                        createAccountsFile:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            the --create-accounts-file
                          type: string
                        debug:
                          description: Indicate whether discover-tempest-config should
                            be executed with --debug
                          type: boolean
                        deployerInput:
                          description: A content of deployer_input.ini that is passed
                            to tempest via --deployer-input
                          type: string
                        flavorMinDisk:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --flavor-min-disk
                          format: int64
                          minimum: 0
                          type: integer
                        flavorMinMem:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --flavor-min-mem
                          format: int64
                          minimum: 0
                          type: integer
                        generateProfile:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --generate-profile
                          type: string
                        image:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --image
                          type: string
                        imageDiskFormat:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --image-disk-format
                          type: string
                        insecure:
                          description: Indicate whether discover-tempest-config should
                            be executed with --insecure
                          type: boolean
                        networkID:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --network-id
                          type: string
                        noDefaultDeployer:
                          description: |-
                            Indicate whether discover-tempest-config should be executed with
                            --no-default-deployer
                          type: boolean
                        nonAdmin:
                          description: Indicate whether discover-tempest-config should
                            be executed with --non-admin
                          type: boolean
                        out:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            the --out parameter
                          type: string
                        overrides:
                          description: |-
                            The content of this variable will be appended at the end of the command
                            that executes discover-tempest-config (override values).
                          type: string
                        profile:
                          description: A content of profile.yaml that is passed to
                            tempest via --profile
                          type: string
                        remove:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --remove
                          type: string
                        retryImage:
                          description: Indicate whether discover-tempest-config should
                            be executed with --retry-image
                          type: boolean
                        testAccounts:
                          description: A content of accounts.yaml that is passed to
                            tempest via --test-accounts
                          type: string
                        timeout:
                          description: |-
                            The content of this variable will be passed to discover-tempest-config via
                            --timeout
                          format: int64
                          minimum: 0
                          type: integer
                        verbose:
                          description: Indicate whether discover-tempest-config should
                            be executed with --verbose
                          type: boolean
                      type: object
                    timingDataUrl:
                      description: |-
                        An URL pointing to an archive that contains the saved stestr timing data.
                        This data is used to optimize the tests order, which helps to reduce the
                        total Tempest execution time.
                      format: uri
                      type: string
                    tolerations:
                      description: |-
                        This value contains a toleration that is applied to pods spawned by the
                        test pods that are spawned by the test-operator.
                      items:
                        description: |-
                          The pod this Toleration is attached to tolerates any taint that matches
                          the triple <key,value,effect> using the matching operator <operator>.
                        properties:
                          effect:
                            description: |-
                              Effect indicates the taint effect to match. Empty means match all taint effects.
                              When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                            type: string
                          key:
                            description: |-
                              Key is the taint key that the toleration applies to. Empty means match all taint keys.
                              If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                            type: string
                          operator:
                            description: |-
                              Operator represents a key's relationship to the value.
                              Valid operators are Exists and Equal. Defaults to Equal.
                              Exists is equivalent to wildcard for value, so that a pod can
                              tolerate all taints of a particular category.
                            type: string
                          tolerationSeconds:
                            description: |-
                              TolerationSeconds represents the period of time the toleration (which must be
                              of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
                              it is not set, which means tolerate the taint forever (do not evict). Zero and
                              negative values will be treated as 0 (evict immediately) by the system.
                            format: int64
                            type: integer
                          value:
                            description: |-
                              Value is the taint value the toleration matches to.
                              If the operator is Exists, the value should be empty, otherwise just a regular string.
                            type: string
                        type: object
                      type: array
                  required:
                  - stepName
                  type: object
                type: array
            type: object
          status:
            description: CommonTestStatus defines the observed state of the controller
            properties:
              conditions:
                description: Conditions
                items:
                  description: Condition defines an observation of a API resource
                    operational state.
                  properties:
                    lastTransitionTime:
                      description: |-
                        Last time the condition transitioned from one status to another.
                        This should be when the underlying condition changed. If that is not known, then using the time when
                        the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition
                        in CamelCase.
                      type: string
                    severity:
                      description: |-
                        Severity provides a classification of Reason code, so the current situation is immediately
                        understandable and could act accordingly.
                        It is meant for situations where Status=False and it should be indicated if it is just
                        informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue
                        and no actions to automatically resolve the issue can/should be done).
                        For conditions where Status=Unknown or Status=True the Severity should be SeverityNone.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition in CamelCase.
                      type: string
                  required:
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
              hash:
                additionalProperties:
                  type: string
                description: Map of hashes to track e.g. job status
                type: object
              networkAttachments:
                additionalProperties:
                  items:
                    type: string
                  type: array
                description: NetworkAttachments status of the deployment pods
                type: object
              observedGeneration:
                description: |-
                  ObservedGeneration - the most recent generation observed for this
                  service. If the observed generation is less than the spec generation,
                  then the controller has not processed the latest changes injected by
                  the opentack-operator in the top-level CR (e.g. the ContainerImage)
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: Tempest
    listKind: TempestList
    plural: tempests
    singular: tempest
  conditions:
  - lastTransitionTime: "2026-04-06T12:15:10Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2026-04-06T12:15:10Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1beta1
