apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.5.0
  labels:
    app.kubernetes.io/component: rabbitmq-operator
    app.kubernetes.io/name: rabbitmq-cluster-operator
    app.kubernetes.io/part-of: rabbitmq
  name: rabbitmqclusters.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    kind: RabbitmqCluster
    listKind: RabbitmqClusterList
    plural: rabbitmqclusters
    shortNames:
    - rmq
    singular: rabbitmqcluster
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: RabbitmqCluster is the Schema for the RabbitmqCluster API. Each
          instance of this object corresponds to a single RabbitMQ cluster.
        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: Spec is the desired state of the RabbitmqCluster Custom Resource.
            properties:
              affinity:
                description: Affinity scheduling rules to be applied on created Pods.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: The scheduler will prefer to schedule pods to
                          nodes that satisfy the affinity expressions specified by
                          this field, but it may choose a node that violates one or
                          more of the expressions. The node that is most preferred
                          is the one with the greatest sum of weights, i.e. for each
                          node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions,
                          etc.), compute a sum by iterating through the elements of
                          this field and adding "weight" to the sum if the node matches
                          the corresponding matchExpressions; the node(s) with the
                          highest sum are the most preferred.
                        items:
                          description: An empty preferred scheduling term matches
                            all objects with implicit weight 0 (i.e. it's a no-op).
                            A null preferred scheduling term matches no objects (i.e.
                            is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: A node selector requirement is a
                                      selector that contains values, a key, and an
                                      operator that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: Represents a key's relationship
                                          to a set of values. Valid operators are
                                          In, NotIn, Exists, DoesNotExist. Gt, and
                                          Lt.
                                        type: string
                                      values:
                                        description: 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. If the operator is Gt or
                                          Lt, the values array must have a single
                                          element, which will be interpreted as an
                                          integer. This array is replaced during a
                                          strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: A node selector requirement is a
                                      selector that contains values, a key, and an
                                      operator that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: Represents a key's relationship
                                          to a set of values. Valid operators are
                                          In, NotIn, Exists, DoesNotExist. Gt, and
                                          Lt.
                                        type: string
                                      values:
                                        description: 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. If the operator is Gt or
                                          Lt, the values array must have a single
                                          element, which will be interpreted as an
                                          integer. This array is replaced during a
                                          strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: If the affinity requirements specified by this
                          field are not met at scheduling time, the pod will not be
                          scheduled onto the node. If the affinity requirements specified
                          by this field cease to be met at some point during pod execution
                          (e.g. due to an update), the system may or may not try to
                          eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: A null or empty node selector term matches
                                no objects. The requirements of them are ANDed. The
                                TopologySelectorTerm type implements a subset of the
                                NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: A node selector requirement is a
                                      selector that contains values, a key, and an
                                      operator that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: Represents a key's relationship
                                          to a set of values. Valid operators are
                                          In, NotIn, Exists, DoesNotExist. Gt, and
                                          Lt.
                                        type: string
                                      values:
                                        description: 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. If the operator is Gt or
                                          Lt, the values array must have a single
                                          element, which will be interpreted as an
                                          integer. This array is replaced during a
                                          strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: A node selector requirement is a
                                      selector that contains values, a key, and an
                                      operator that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: Represents a key's relationship
                                          to a set of values. Valid operators are
                                          In, NotIn, Exists, DoesNotExist. Gt, and
                                          Lt.
                                        type: string
                                      values:
                                        description: 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. If the operator is Gt or
                                          Lt, the values array must have a single
                                          element, which will be interpreted as an
                                          integer. This array is replaced during a
                                          strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                        - nodeSelectorTerms
                        type: object
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: The scheduler will prefer to schedule pods to
                          nodes that satisfy the affinity expressions specified by
                          this field, but it may choose a node that violates one or
                          more of the expressions. The node that is most preferred
                          is the one with the greatest sum of weights, i.e. for each
                          node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions,
                          etc.), compute a sum by iterating through the elements of
                          this field and adding "weight" to the sum if the node has
                          pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: A label query over a set of resources,
                                    in this case pods.
                                  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
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    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
                                namespaces:
                                  description: namespaces specifies which namespaces
                                    the labelSelector applies to (matches against);
                                    null or empty list means "this pod's namespace"
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  description: This pod should be co-located (affinity)
                                    or not co-located (anti-affinity) with the pods
                                    matching the labelSelector in the specified namespaces,
                                    where co-located is defined as running on a node
                                    whose value of the label with key topologyKey
                                    matches that of any node on which any of the selected
                                    pods is running. Empty topologyKey is not allowed.
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: weight associated with matching the corresponding
                                podAffinityTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: If the affinity requirements specified by this
                          field are not met at scheduling time, the pod will not be
                          scheduled onto the node. If the affinity requirements specified
                          by this field cease to be met at some point during pod execution
                          (e.g. due to a pod label update), the system may or may
                          not try to eventually evict the pod from its node. When
                          there are multiple elements, the lists of nodes corresponding
                          to each podAffinityTerm are intersected, i.e. all terms
                          must be satisfied.
                        items:
                          description: Defines a set of pods (namely those matching
                            the labelSelector relative to the given namespace(s))
                            that this pod should be co-located (affinity) or not co-located
                            (anti-affinity) with, where co-located is defined as running
                            on a node whose value of the label with key <topologyKey>
                            matches that of any node on which a pod of the set of
                            pods is running
                          properties:
                            labelSelector:
                              description: A label query over a set of resources,
                                in this case pods.
                              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
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                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
                            namespaces:
                              description: namespaces specifies which namespaces the
                                labelSelector applies to (matches against); null or
                                empty list means "this pod's namespace"
                              items:
                                type: string
                              type: array
                            topologyKey:
                              description: This pod should be co-located (affinity)
                                or not co-located (anti-affinity) with the pods matching
                                the labelSelector in the specified namespaces, where
                                co-located is defined as running on a node whose value
                                of the label with key topologyKey matches that of
                                any node on which any of the selected pods is running.
                                Empty topologyKey is not allowed.
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: The scheduler will prefer to schedule pods to
                          nodes that satisfy the anti-affinity expressions specified
                          by this field, but it may choose a node that violates one
                          or more of the expressions. The node that is most preferred
                          is the one with the greatest sum of weights, i.e. for each
                          node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions,
                          etc.), compute a sum by iterating through the elements of
                          this field and adding "weight" to the sum if the node has
                          pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: A label query over a set of resources,
                                    in this case pods.
                                  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
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    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
                                namespaces:
                                  description: namespaces specifies which namespaces
                                    the labelSelector applies to (matches against);
                                    null or empty list means "this pod's namespace"
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  description: This pod should be co-located (affinity)
                                    or not co-located (anti-affinity) with the pods
                                    matching the labelSelector in the specified namespaces,
                                    where co-located is defined as running on a node
                                    whose value of the label with key topologyKey
                                    matches that of any node on which any of the selected
                                    pods is running. Empty topologyKey is not allowed.
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: weight associated with matching the corresponding
                                podAffinityTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: If the anti-affinity requirements specified by
                          this field are not met at scheduling time, the pod will
                          not be scheduled onto the node. If the anti-affinity requirements
                          specified by this field cease to be met at some point during
                          pod execution (e.g. due to a pod label update), the system
                          may or may not try to eventually evict the pod from its
                          node. When there are multiple elements, the lists of nodes
                          corresponding to each podAffinityTerm are intersected, i.e.
                          all terms must be satisfied.
                        items:
                          description: Defines a set of pods (namely those matching
                            the labelSelector relative to the given namespace(s))
                            that this pod should be co-located (affinity) or not co-located
                            (anti-affinity) with, where co-located is defined as running
                            on a node whose value of the label with key <topologyKey>
                            matches that of any node on which a pod of the set of
                            pods is running
                          properties:
                            labelSelector:
                              description: A label query over a set of resources,
                                in this case pods.
                              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
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                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
                            namespaces:
                              description: namespaces specifies which namespaces the
                                labelSelector applies to (matches against); null or
                                empty list means "this pod's namespace"
                              items:
                                type: string
                              type: array
                            topologyKey:
                              description: This pod should be co-located (affinity)
                                or not co-located (anti-affinity) with the pods matching
                                the labelSelector in the specified namespaces, where
                                co-located is defined as running on a node whose value
                                of the label with key topologyKey matches that of
                                any node on which any of the selected pods is running.
                                Empty topologyKey is not allowed.
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                type: object
              image:
                default: rabbitmq:3.8.16-management
                description: Image is the name of the RabbitMQ docker image to use
                  for RabbitMQ nodes in the RabbitmqCluster. Must be provided together
                  with ImagePullSecrets in order to use an image in a private registry.
                type: string
              imagePullSecrets:
                description: List of Secret resource containing access credentials
                  to the registry for the RabbitMQ image. Required if the docker registry
                  is private.
                items:
                  description: LocalObjectReference contains enough information to
                    let you locate the referenced object inside the same namespace.
                  properties:
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        TODO: Add other useful fields. apiVersion, kind, uid?'
                      type: string
                  type: object
                type: array
              override:
                properties:
                  service:
                    properties:
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                          labels:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      spec:
                        properties:
                          allocateLoadBalancerNodePorts:
                            type: boolean
                          clusterIP:
                            type: string
                          clusterIPs:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          externalIPs:
                            items:
                              type: string
                            type: array
                          externalName:
                            type: string
                          externalTrafficPolicy:
                            type: string
                          healthCheckNodePort:
                            format: int32
                            type: integer
                          ipFamilies:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          ipFamilyPolicy:
                            type: string
                          loadBalancerIP:
                            type: string
                          loadBalancerSourceRanges:
                            items:
                              type: string
                            type: array
                          ports:
                            items:
                              properties:
                                appProtocol:
                                  type: string
                                name:
                                  type: string
                                nodePort:
                                  format: int32
                                  type: integer
                                port:
                                  format: int32
                                  type: integer
                                protocol:
                                  default: TCP
                                  type: string
                                targetPort:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - port
                            - protocol
                            x-kubernetes-list-type: map
                          publishNotReadyAddresses:
                            type: boolean
                          selector:
                            additionalProperties:
                              type: string
                            type: object
                          sessionAffinity:
                            type: string
                          sessionAffinityConfig:
                            properties:
                              clientIP:
                                properties:
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          topologyKeys:
                            items:
                              type: string
                            type: array
                          type:
                            type: string
                        type: object
                    type: object
                  statefulSet:
                    properties:
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                          labels:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      spec:
                        properties:
                          podManagementPolicy:
                            type: string
                          replicas:
                            format: int32
                            type: integer
                          selector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                  type: object
                                type: array
                              matchLabels:
                                additionalProperties:
                                  type: string
                                type: object
                            type: object
                          serviceName:
                            type: string
                          template:
                            properties:
                              metadata:
                                properties:
                                  annotations:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  labels:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  name:
                                    type: string
                                  namespace:
                                    type: string
                                type: object
                              spec:
                                properties:
                                  activeDeadlineSeconds:
                                    format: int64
                                    type: integer
                                  affinity:
                                    properties:
                                      nodeAffinity:
                                        properties:
                                          preferredDuringSchedulingIgnoredDuringExecution:
                                            items:
                                              properties:
                                                preference:
                                                  properties:
                                                    matchExpressions:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          operator:
                                                            type: string
                                                          values:
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchFields:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          operator:
                                                            type: string
                                                          values:
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                  type: object
                                                weight:
                                                  format: int32
                                                  type: integer
                                              required:
                                              - preference
                                              - weight
                                              type: object
                                            type: array
                                          requiredDuringSchedulingIgnoredDuringExecution:
                                            properties:
                                              nodeSelectorTerms:
                                                items:
                                                  properties:
                                                    matchExpressions:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          operator:
                                                            type: string
                                                          values:
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchFields:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          operator:
                                                            type: string
                                                          values:
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                  type: object
                                                type: array
                                            required:
                                            - nodeSelectorTerms
                                            type: object
                                        type: object
                                      podAffinity:
                                        properties:
                                          preferredDuringSchedulingIgnoredDuringExecution:
                                            items:
                                              properties:
                                                podAffinityTerm:
                                                  properties:
                                                    labelSelector:
                                                      properties:
                                                        matchExpressions:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              operator:
                                                                type: string
                                                              values:
                                                                items:
                                                                  type: string
                                                                type: array
                                                            required:
                                                            - key
                                                            - operator
                                                            type: object
                                                          type: array
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    namespaces:
                                                      items:
                                                        type: string
                                                      type: array
                                                    topologyKey:
                                                      type: string
                                                  required:
                                                  - topologyKey
                                                  type: object
                                                weight:
                                                  format: int32
                                                  type: integer
                                              required:
                                              - podAffinityTerm
                                              - weight
                                              type: object
                                            type: array
                                          requiredDuringSchedulingIgnoredDuringExecution:
                                            items:
                                              properties:
                                                labelSelector:
                                                  properties:
                                                    matchExpressions:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          operator:
                                                            type: string
                                                          values:
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchLabels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                namespaces:
                                                  items:
                                                    type: string
                                                  type: array
                                                topologyKey:
                                                  type: string
                                              required:
                                              - topologyKey
                                              type: object
                                            type: array
                                        type: object
                                      podAntiAffinity:
                                        properties:
                                          preferredDuringSchedulingIgnoredDuringExecution:
                                            items:
                                              properties:
                                                podAffinityTerm:
                                                  properties:
                                                    labelSelector:
                                                      properties:
                                                        matchExpressions:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              operator:
                                                                type: string
                                                              values:
                                                                items:
                                                                  type: string
                                                                type: array
                                                            required:
                                                            - key
                                                            - operator
                                                            type: object
                                                          type: array
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    namespaces:
                                                      items:
                                                        type: string
                                                      type: array
                                                    topologyKey:
                                                      type: string
                                                  required:
                                                  - topologyKey
                                                  type: object
                                                weight:
                                                  format: int32
                                                  type: integer
                                              required:
                                              - podAffinityTerm
                                              - weight
                                              type: object
                                            type: array
                                          requiredDuringSchedulingIgnoredDuringExecution:
                                            items:
                                              properties:
                                                labelSelector:
                                                  properties:
                                                    matchExpressions:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          operator:
                                                            type: string
                                                          values:
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchLabels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                namespaces:
                                                  items:
                                                    type: string
                                                  type: array
                                                topologyKey:
                                                  type: string
                                              required:
                                              - topologyKey
                                              type: object
                                            type: array
                                        type: object
                                    type: object
                                  automountServiceAccountToken:
                                    type: boolean
                                  containers:
                                    items:
                                      properties:
                                        args:
                                          items:
                                            type: string
                                          type: array
                                        command:
                                          items:
                                            type: string
                                          type: array
                                        env:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                              valueFrom:
                                                properties:
                                                  configMapKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                  fieldRef:
                                                    properties:
                                                      apiVersion:
                                                        type: string
                                                      fieldPath:
                                                        type: string
                                                    required:
                                                    - fieldPath
                                                    type: object
                                                  resourceFieldRef:
                                                    properties:
                                                      containerName:
                                                        type: string
                                                      divisor:
                                                        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
                                                      resource:
                                                        type: string
                                                    required:
                                                    - resource
                                                    type: object
                                                  secretKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                        envFrom:
                                          items:
                                            properties:
                                              configMapRef:
                                                properties:
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                              prefix:
                                                type: string
                                              secretRef:
                                                properties:
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                            type: object
                                          type: array
                                        image:
                                          type: string
                                        imagePullPolicy:
                                          type: string
                                        lifecycle:
                                          properties:
                                            postStart:
                                              properties:
                                                exec:
                                                  properties:
                                                    command:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                httpGet:
                                                  properties:
                                                    host:
                                                      type: string
                                                    httpHeaders:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    path:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                    scheme:
                                                      type: string
                                                  required:
                                                  - port
                                                  type: object
                                                tcpSocket:
                                                  properties:
                                                    host:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                  required:
                                                  - port
                                                  type: object
                                              type: object
                                            preStop:
                                              properties:
                                                exec:
                                                  properties:
                                                    command:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                httpGet:
                                                  properties:
                                                    host:
                                                      type: string
                                                    httpHeaders:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    path:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                    scheme:
                                                      type: string
                                                  required:
                                                  - port
                                                  type: object
                                                tcpSocket:
                                                  properties:
                                                    host:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                  required:
                                                  - port
                                                  type: object
                                              type: object
                                          type: object
                                        livenessProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        name:
                                          type: string
                                        ports:
                                          items:
                                            properties:
                                              containerPort:
                                                format: int32
                                                type: integer
                                              hostIP:
                                                type: string
                                              hostPort:
                                                format: int32
                                                type: integer
                                              name:
                                                type: string
                                              protocol:
                                                default: TCP
                                                type: string
                                            required:
                                            - containerPort
                                            type: object
                                          type: array
                                          x-kubernetes-list-map-keys:
                                          - containerPort
                                          - protocol
                                          x-kubernetes-list-type: map
                                        readinessProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        resources:
                                          properties:
                                            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
                                              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
                                              type: object
                                          type: object
                                        securityContext:
                                          properties:
                                            allowPrivilegeEscalation:
                                              type: boolean
                                            capabilities:
                                              properties:
                                                add:
                                                  items:
                                                    type: string
                                                  type: array
                                                drop:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            privileged:
                                              type: boolean
                                            procMount:
                                              type: string
                                            readOnlyRootFilesystem:
                                              type: boolean
                                            runAsGroup:
                                              format: int64
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              format: int64
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              required:
                                              - type
                                              type: object
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        startupProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        stdin:
                                          type: boolean
                                        stdinOnce:
                                          type: boolean
                                        terminationMessagePath:
                                          type: string
                                        terminationMessagePolicy:
                                          type: string
                                        tty:
                                          type: boolean
                                        volumeDevices:
                                          items:
                                            properties:
                                              devicePath:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - devicePath
                                            - name
                                            type: object
                                          type: array
                                        volumeMounts:
                                          items:
                                            properties:
                                              mountPath:
                                                type: string
                                              mountPropagation:
                                                type: string
                                              name:
                                                type: string
                                              readOnly:
                                                type: boolean
                                              subPath:
                                                type: string
                                              subPathExpr:
                                                type: string
                                            required:
                                            - mountPath
                                            - name
                                            type: object
                                          type: array
                                        workingDir:
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                  dnsConfig:
                                    properties:
                                      nameservers:
                                        items:
                                          type: string
                                        type: array
                                      options:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          type: object
                                        type: array
                                      searches:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  dnsPolicy:
                                    type: string
                                  enableServiceLinks:
                                    type: boolean
                                  ephemeralContainers:
                                    items:
                                      properties:
                                        args:
                                          items:
                                            type: string
                                          type: array
                                        command:
                                          items:
                                            type: string
                                          type: array
                                        env:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                              valueFrom:
                                                properties:
                                                  configMapKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                  fieldRef:
                                                    properties:
                                                      apiVersion:
                                                        type: string
                                                      fieldPath:
                                                        type: string
                                                    required:
                                                    - fieldPath
                                                    type: object
                                                  resourceFieldRef:
                                                    properties:
                                                      containerName:
                                                        type: string
                                                      divisor:
                                                        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
                                                      resource:
                                                        type: string
                                                    required:
                                                    - resource
                                                    type: object
                                                  secretKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                        envFrom:
                                          items:
                                            properties:
                                              configMapRef:
                                                properties:
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                              prefix:
                                                type: string
                                              secretRef:
                                                properties:
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                            type: object
                                          type: array
                                        image:
                                          type: string
                                        imagePullPolicy:
                                          type: string
                                        lifecycle:
                                          properties:
                                            postStart:
                                              properties:
                                                exec:
                                                  properties:
                                                    command:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                httpGet:
                                                  properties:
                                                    host:
                                                      type: string
                                                    httpHeaders:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    path:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                    scheme:
                                                      type: string
                                                  required:
                                                  - port
                                                  type: object
                                                tcpSocket:
                                                  properties:
                                                    host:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                  required:
                                                  - port
                                                  type: object
                                              type: object
                                            preStop:
                                              properties:
                                                exec:
                                                  properties:
                                                    command:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                httpGet:
                                                  properties:
                                                    host:
                                                      type: string
                                                    httpHeaders:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    path:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                    scheme:
                                                      type: string
                                                  required:
                                                  - port
                                                  type: object
                                                tcpSocket:
                                                  properties:
                                                    host:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                  required:
                                                  - port
                                                  type: object
                                              type: object
                                          type: object
                                        livenessProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        name:
                                          type: string
                                        ports:
                                          items:
                                            properties:
                                              containerPort:
                                                format: int32
                                                type: integer
                                              hostIP:
                                                type: string
                                              hostPort:
                                                format: int32
                                                type: integer
                                              name:
                                                type: string
                                              protocol:
                                                default: TCP
                                                type: string
                                            required:
                                            - containerPort
                                            type: object
                                          type: array
                                        readinessProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        resources:
                                          properties:
                                            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
                                              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
                                              type: object
                                          type: object
                                        securityContext:
                                          properties:
                                            allowPrivilegeEscalation:
                                              type: boolean
                                            capabilities:
                                              properties:
                                                add:
                                                  items:
                                                    type: string
                                                  type: array
                                                drop:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            privileged:
                                              type: boolean
                                            procMount:
                                              type: string
                                            readOnlyRootFilesystem:
                                              type: boolean
                                            runAsGroup:
                                              format: int64
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              format: int64
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              required:
                                              - type
                                              type: object
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        startupProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        stdin:
                                          type: boolean
                                        stdinOnce:
                                          type: boolean
                                        targetContainerName:
                                          type: string
                                        terminationMessagePath:
                                          type: string
                                        terminationMessagePolicy:
                                          type: string
                                        tty:
                                          type: boolean
                                        volumeDevices:
                                          items:
                                            properties:
                                              devicePath:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - devicePath
                                            - name
                                            type: object
                                          type: array
                                        volumeMounts:
                                          items:
                                            properties:
                                              mountPath:
                                                type: string
                                              mountPropagation:
                                                type: string
                                              name:
                                                type: string
                                              readOnly:
                                                type: boolean
                                              subPath:
                                                type: string
                                              subPathExpr:
                                                type: string
                                            required:
                                            - mountPath
                                            - name
                                            type: object
                                          type: array
                                        workingDir:
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                  hostAliases:
                                    items:
                                      properties:
                                        hostnames:
                                          items:
                                            type: string
                                          type: array
                                        ip:
                                          type: string
                                      type: object
                                    type: array
                                  hostIPC:
                                    type: boolean
                                  hostNetwork:
                                    type: boolean
                                  hostPID:
                                    type: boolean
                                  hostname:
                                    type: string
                                  imagePullSecrets:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                      type: object
                                    type: array
                                  initContainers:
                                    items:
                                      properties:
                                        args:
                                          items:
                                            type: string
                                          type: array
                                        command:
                                          items:
                                            type: string
                                          type: array
                                        env:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                              valueFrom:
                                                properties:
                                                  configMapKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                  fieldRef:
                                                    properties:
                                                      apiVersion:
                                                        type: string
                                                      fieldPath:
                                                        type: string
                                                    required:
                                                    - fieldPath
                                                    type: object
                                                  resourceFieldRef:
                                                    properties:
                                                      containerName:
                                                        type: string
                                                      divisor:
                                                        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
                                                      resource:
                                                        type: string
                                                    required:
                                                    - resource
                                                    type: object
                                                  secretKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                        envFrom:
                                          items:
                                            properties:
                                              configMapRef:
                                                properties:
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                              prefix:
                                                type: string
                                              secretRef:
                                                properties:
                                                  name:
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                type: object
                                            type: object
                                          type: array
                                        image:
                                          type: string
                                        imagePullPolicy:
                                          type: string
                                        lifecycle:
                                          properties:
                                            postStart:
                                              properties:
                                                exec:
                                                  properties:
                                                    command:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                httpGet:
                                                  properties:
                                                    host:
                                                      type: string
                                                    httpHeaders:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    path:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                    scheme:
                                                      type: string
                                                  required:
                                                  - port
                                                  type: object
                                                tcpSocket:
                                                  properties:
                                                    host:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                  required:
                                                  - port
                                                  type: object
                                              type: object
                                            preStop:
                                              properties:
                                                exec:
                                                  properties:
                                                    command:
                                                      items:
                                                        type: string
                                                      type: array
                                                  type: object
                                                httpGet:
                                                  properties:
                                                    host:
                                                      type: string
                                                    httpHeaders:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    path:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                    scheme:
                                                      type: string
                                                  required:
                                                  - port
                                                  type: object
                                                tcpSocket:
                                                  properties:
                                                    host:
                                                      type: string
                                                    port:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      x-kubernetes-int-or-string: true
                                                  required:
                                                  - port
                                                  type: object
                                              type: object
                                          type: object
                                        livenessProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        name:
                                          type: string
                                        ports:
                                          items:
                                            properties:
                                              containerPort:
                                                format: int32
                                                type: integer
                                              hostIP:
                                                type: string
                                              hostPort:
                                                format: int32
                                                type: integer
                                              name:
                                                type: string
                                              protocol:
                                                default: TCP
                                                type: string
                                            required:
                                            - containerPort
                                            type: object
                                          type: array
                                          x-kubernetes-list-map-keys:
                                          - containerPort
                                          - protocol
                                          x-kubernetes-list-type: map
                                        readinessProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        resources:
                                          properties:
                                            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
                                              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
                                              type: object
                                          type: object
                                        securityContext:
                                          properties:
                                            allowPrivilegeEscalation:
                                              type: boolean
                                            capabilities:
                                              properties:
                                                add:
                                                  items:
                                                    type: string
                                                  type: array
                                                drop:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            privileged:
                                              type: boolean
                                            procMount:
                                              type: string
                                            readOnlyRootFilesystem:
                                              type: boolean
                                            runAsGroup:
                                              format: int64
                                              type: integer
                                            runAsNonRoot:
                                              type: boolean
                                            runAsUser:
                                              format: int64
                                              type: integer
                                            seLinuxOptions:
                                              properties:
                                                level:
                                                  type: string
                                                role:
                                                  type: string
                                                type:
                                                  type: string
                                                user:
                                                  type: string
                                              type: object
                                            seccompProfile:
                                              properties:
                                                localhostProfile:
                                                  type: string
                                                type:
                                                  type: string
                                              required:
                                              - type
                                              type: object
                                            windowsOptions:
                                              properties:
                                                gmsaCredentialSpec:
                                                  type: string
                                                gmsaCredentialSpecName:
                                                  type: string
                                                runAsUserName:
                                                  type: string
                                              type: object
                                          type: object
                                        startupProbe:
                                          properties:
                                            exec:
                                              properties:
                                                command:
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            failureThreshold:
                                              format: int32
                                              type: integer
                                            httpGet:
                                              properties:
                                                host:
                                                  type: string
                                                httpHeaders:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                path:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                                scheme:
                                                  type: string
                                              required:
                                              - port
                                              type: object
                                            initialDelaySeconds:
                                              format: int32
                                              type: integer
                                            periodSeconds:
                                              format: int32
                                              type: integer
                                            successThreshold:
                                              format: int32
                                              type: integer
                                            tcpSocket:
                                              properties:
                                                host:
                                                  type: string
                                                port:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  x-kubernetes-int-or-string: true
                                              required:
                                              - port
                                              type: object
                                            timeoutSeconds:
                                              format: int32
                                              type: integer
                                          type: object
                                        stdin:
                                          type: boolean
                                        stdinOnce:
                                          type: boolean
                                        terminationMessagePath:
                                          type: string
                                        terminationMessagePolicy:
                                          type: string
                                        tty:
                                          type: boolean
                                        volumeDevices:
                                          items:
                                            properties:
                                              devicePath:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - devicePath
                                            - name
                                            type: object
                                          type: array
                                        volumeMounts:
                                          items:
                                            properties:
                                              mountPath:
                                                type: string
                                              mountPropagation:
                                                type: string
                                              name:
                                                type: string
                                              readOnly:
                                                type: boolean
                                              subPath:
                                                type: string
                                              subPathExpr:
                                                type: string
                                            required:
                                            - mountPath
                                            - name
                                            type: object
                                          type: array
                                        workingDir:
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                  nodeName:
                                    type: string
                                  nodeSelector:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  overhead:
                                    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
                                    type: object
                                  preemptionPolicy:
                                    type: string
                                  priority:
                                    format: int32
                                    type: integer
                                  priorityClassName:
                                    type: string
                                  readinessGates:
                                    items:
                                      properties:
                                        conditionType:
                                          type: string
                                      required:
                                      - conditionType
                                      type: object
                                    type: array
                                  restartPolicy:
                                    type: string
                                  runtimeClassName:
                                    type: string
                                  schedulerName:
                                    type: string
                                  securityContext:
                                    properties:
                                      fsGroup:
                                        format: int64
                                        type: integer
                                      fsGroupChangePolicy:
                                        type: string
                                      runAsGroup:
                                        format: int64
                                        type: integer
                                      runAsNonRoot:
                                        type: boolean
                                      runAsUser:
                                        format: int64
                                        type: integer
                                      seLinuxOptions:
                                        properties:
                                          level:
                                            type: string
                                          role:
                                            type: string
                                          type:
                                            type: string
                                          user:
                                            type: string
                                        type: object
                                      seccompProfile:
                                        properties:
                                          localhostProfile:
                                            type: string
                                          type:
                                            type: string
                                        required:
                                        - type
                                        type: object
                                      supplementalGroups:
                                        items:
                                          format: int64
                                          type: integer
                                        type: array
                                      sysctls:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      windowsOptions:
                                        properties:
                                          gmsaCredentialSpec:
                                            type: string
                                          gmsaCredentialSpecName:
                                            type: string
                                          runAsUserName:
                                            type: string
                                        type: object
                                    type: object
                                  serviceAccount:
                                    type: string
                                  serviceAccountName:
                                    type: string
                                  setHostnameAsFQDN:
                                    type: boolean
                                  shareProcessNamespace:
                                    type: boolean
                                  subdomain:
                                    type: string
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  tolerations:
                                    items:
                                      properties:
                                        effect:
                                          type: string
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        tolerationSeconds:
                                          format: int64
                                          type: integer
                                        value:
                                          type: string
                                      type: object
                                    type: array
                                  topologySpreadConstraints:
                                    items:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        maxSkew:
                                          format: int32
                                          type: integer
                                        topologyKey:
                                          type: string
                                        whenUnsatisfiable:
                                          type: string
                                      required:
                                      - maxSkew
                                      - topologyKey
                                      - whenUnsatisfiable
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - topologyKey
                                    - whenUnsatisfiable
                                    x-kubernetes-list-type: map
                                  volumes:
                                    items:
                                      properties:
                                        awsElasticBlockStore:
                                          properties:
                                            fsType:
                                              type: string
                                            partition:
                                              format: int32
                                              type: integer
                                            readOnly:
                                              type: boolean
                                            volumeID:
                                              type: string
                                          required:
                                          - volumeID
                                          type: object
                                        azureDisk:
                                          properties:
                                            cachingMode:
                                              type: string
                                            diskName:
                                              type: string
                                            diskURI:
                                              type: string
                                            fsType:
                                              type: string
                                            kind:
                                              type: string
                                            readOnly:
                                              type: boolean
                                          required:
                                          - diskName
                                          - diskURI
                                          type: object
                                        azureFile:
                                          properties:
                                            readOnly:
                                              type: boolean
                                            secretName:
                                              type: string
                                            shareName:
                                              type: string
                                          required:
                                          - secretName
                                          - shareName
                                          type: object
                                        cephfs:
                                          properties:
                                            monitors:
                                              items:
                                                type: string
                                              type: array
                                            path:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            secretFile:
                                              type: string
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            user:
                                              type: string
                                          required:
                                          - monitors
                                          type: object
                                        cinder:
                                          properties:
                                            fsType:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            volumeID:
                                              type: string
                                          required:
                                          - volumeID
                                          type: object
                                        configMap:
                                          properties:
                                            defaultMode:
                                              format: int32
                                              type: integer
                                            items:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  mode:
                                                    format: int32
                                                    type: integer
                                                  path:
                                                    type: string
                                                required:
                                                - key
                                                - path
                                                type: object
                                              type: array
                                            name:
                                              type: string
                                            optional:
                                              type: boolean
                                          type: object
                                        csi:
                                          properties:
                                            driver:
                                              type: string
                                            fsType:
                                              type: string
                                            nodePublishSecretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            readOnly:
                                              type: boolean
                                            volumeAttributes:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          required:
                                          - driver
                                          type: object
                                        downwardAPI:
                                          properties:
                                            defaultMode:
                                              format: int32
                                              type: integer
                                            items:
                                              items:
                                                properties:
                                                  fieldRef:
                                                    properties:
                                                      apiVersion:
                                                        type: string
                                                      fieldPath:
                                                        type: string
                                                    required:
                                                    - fieldPath
                                                    type: object
                                                  mode:
                                                    format: int32
                                                    type: integer
                                                  path:
                                                    type: string
                                                  resourceFieldRef:
                                                    properties:
                                                      containerName:
                                                        type: string
                                                      divisor:
                                                        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
                                                      resource:
                                                        type: string
                                                    required:
                                                    - resource
                                                    type: object
                                                required:
                                                - path
                                                type: object
                                              type: array
                                          type: object
                                        emptyDir:
                                          properties:
                                            medium:
                                              type: string
                                            sizeLimit:
                                              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
                                          type: object
                                        ephemeral:
                                          properties:
                                            readOnly:
                                              type: boolean
                                            volumeClaimTemplate:
                                              properties:
                                                metadata:
                                                  type: object
                                                spec:
                                                  properties:
                                                    accessModes:
                                                      items:
                                                        type: string
                                                      type: array
                                                    dataSource:
                                                      properties:
                                                        apiGroup:
                                                          type: string
                                                        kind:
                                                          type: string
                                                        name:
                                                          type: string
                                                      required:
                                                      - kind
                                                      - name
                                                      type: object
                                                    resources:
                                                      properties:
                                                        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
                                                          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
                                                          type: object
                                                      type: object
                                                    selector:
                                                      properties:
                                                        matchExpressions:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              operator:
                                                                type: string
                                                              values:
                                                                items:
                                                                  type: string
                                                                type: array
                                                            required:
                                                            - key
                                                            - operator
                                                            type: object
                                                          type: array
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    storageClassName:
                                                      type: string
                                                    volumeMode:
                                                      type: string
                                                    volumeName:
                                                      type: string
                                                  type: object
                                              required:
                                              - spec
                                              type: object
                                          type: object
                                        fc:
                                          properties:
                                            fsType:
                                              type: string
                                            lun:
                                              format: int32
                                              type: integer
                                            readOnly:
                                              type: boolean
                                            targetWWNs:
                                              items:
                                                type: string
                                              type: array
                                            wwids:
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        flexVolume:
                                          properties:
                                            driver:
                                              type: string
                                            fsType:
                                              type: string
                                            options:
                                              additionalProperties:
                                                type: string
                                              type: object
                                            readOnly:
                                              type: boolean
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                          required:
                                          - driver
                                          type: object
                                        flocker:
                                          properties:
                                            datasetName:
                                              type: string
                                            datasetUUID:
                                              type: string
                                          type: object
                                        gcePersistentDisk:
                                          properties:
                                            fsType:
                                              type: string
                                            partition:
                                              format: int32
                                              type: integer
                                            pdName:
                                              type: string
                                            readOnly:
                                              type: boolean
                                          required:
                                          - pdName
                                          type: object
                                        gitRepo:
                                          properties:
                                            directory:
                                              type: string
                                            repository:
                                              type: string
                                            revision:
                                              type: string
                                          required:
                                          - repository
                                          type: object
                                        glusterfs:
                                          properties:
                                            endpoints:
                                              type: string
                                            path:
                                              type: string
                                            readOnly:
                                              type: boolean
                                          required:
                                          - endpoints
                                          - path
                                          type: object
                                        hostPath:
                                          properties:
                                            path:
                                              type: string
                                            type:
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        iscsi:
                                          properties:
                                            chapAuthDiscovery:
                                              type: boolean
                                            chapAuthSession:
                                              type: boolean
                                            fsType:
                                              type: string
                                            initiatorName:
                                              type: string
                                            iqn:
                                              type: string
                                            iscsiInterface:
                                              type: string
                                            lun:
                                              format: int32
                                              type: integer
                                            portals:
                                              items:
                                                type: string
                                              type: array
                                            readOnly:
                                              type: boolean
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            targetPortal:
                                              type: string
                                          required:
                                          - iqn
                                          - lun
                                          - targetPortal
                                          type: object
                                        name:
                                          type: string
                                        nfs:
                                          properties:
                                            path:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            server:
                                              type: string
                                          required:
                                          - path
                                          - server
                                          type: object
                                        persistentVolumeClaim:
                                          properties:
                                            claimName:
                                              type: string
                                            readOnly:
                                              type: boolean
                                          required:
                                          - claimName
                                          type: object
                                        photonPersistentDisk:
                                          properties:
                                            fsType:
                                              type: string
                                            pdID:
                                              type: string
                                          required:
                                          - pdID
                                          type: object
                                        portworxVolume:
                                          properties:
                                            fsType:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            volumeID:
                                              type: string
                                          required:
                                          - volumeID
                                          type: object
                                        projected:
                                          properties:
                                            defaultMode:
                                              format: int32
                                              type: integer
                                            sources:
                                              items:
                                                properties:
                                                  configMap:
                                                    properties:
                                                      items:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            mode:
                                                              format: int32
                                                              type: integer
                                                            path:
                                                              type: string
                                                          required:
                                                          - key
                                                          - path
                                                          type: object
                                                        type: array
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    type: object
                                                  downwardAPI:
                                                    properties:
                                                      items:
                                                        items:
                                                          properties:
                                                            fieldRef:
                                                              properties:
                                                                apiVersion:
                                                                  type: string
                                                                fieldPath:
                                                                  type: string
                                                              required:
                                                              - fieldPath
                                                              type: object
                                                            mode:
                                                              format: int32
                                                              type: integer
                                                            path:
                                                              type: string
                                                            resourceFieldRef:
                                                              properties:
                                                                containerName:
                                                                  type: string
                                                                divisor:
                                                                  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
                                                                resource:
                                                                  type: string
                                                              required:
                                                              - resource
                                                              type: object
                                                          required:
                                                          - path
                                                          type: object
                                                        type: array
                                                    type: object
                                                  secret:
                                                    properties:
                                                      items:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            mode:
                                                              format: int32
                                                              type: integer
                                                            path:
                                                              type: string
                                                          required:
                                                          - key
                                                          - path
                                                          type: object
                                                        type: array
                                                      name:
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    type: object
                                                  serviceAccountToken:
                                                    properties:
                                                      audience:
                                                        type: string
                                                      expirationSeconds:
                                                        format: int64
                                                        type: integer
                                                      path:
                                                        type: string
                                                    required:
                                                    - path
                                                    type: object
                                                type: object
                                              type: array
                                          type: object
                                        quobyte:
                                          properties:
                                            group:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            registry:
                                              type: string
                                            tenant:
                                              type: string
                                            user:
                                              type: string
                                            volume:
                                              type: string
                                          required:
                                          - registry
                                          - volume
                                          type: object
                                        rbd:
                                          properties:
                                            fsType:
                                              type: string
                                            image:
                                              type: string
                                            keyring:
                                              type: string
                                            monitors:
                                              items:
                                                type: string
                                              type: array
                                            pool:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            user:
                                              type: string
                                          required:
                                          - image
                                          - monitors
                                          type: object
                                        scaleIO:
                                          properties:
                                            fsType:
                                              type: string
                                            gateway:
                                              type: string
                                            protectionDomain:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            sslEnabled:
                                              type: boolean
                                            storageMode:
                                              type: string
                                            storagePool:
                                              type: string
                                            system:
                                              type: string
                                            volumeName:
                                              type: string
                                          required:
                                          - gateway
                                          - secretRef
                                          - system
                                          type: object
                                        secret:
                                          properties:
                                            defaultMode:
                                              format: int32
                                              type: integer
                                            items:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  mode:
                                                    format: int32
                                                    type: integer
                                                  path:
                                                    type: string
                                                required:
                                                - key
                                                - path
                                                type: object
                                              type: array
                                            optional:
                                              type: boolean
                                            secretName:
                                              type: string
                                          type: object
                                        storageos:
                                          properties:
                                            fsType:
                                              type: string
                                            readOnly:
                                              type: boolean
                                            secretRef:
                                              properties:
                                                name:
                                                  type: string
                                              type: object
                                            volumeName:
                                              type: string
                                            volumeNamespace:
                                              type: string
                                          type: object
                                        vsphereVolume:
                                          properties:
                                            fsType:
                                              type: string
                                            storagePolicyID:
                                              type: string
                                            storagePolicyName:
                                              type: string
                                            volumePath:
                                              type: string
                                          required:
                                          - volumePath
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                required:
                                - containers
                                type: object
                            type: object
                          updateStrategy:
                            properties:
                              rollingUpdate:
                                properties:
                                  partition:
                                    format: int32
                                    type: integer
                                type: object
                              type:
                                type: string
                            type: object
                          volumeClaimTemplates:
                            items:
                              properties:
                                apiVersion:
                                  type: string
                                kind:
                                  type: string
                                metadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    resources:
                                      properties:
                                        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
                                          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
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    storageClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              type: object
                            type: array
                        type: object
                    type: object
                type: object
              persistence:
                default:
                  storage: 10Gi
                description: The desired persistent storage configuration for each
                  Pod in the cluster.
                properties:
                  storage:
                    anyOf:
                    - type: integer
                    - type: string
                    default: 10Gi
                    description: The requested size of the persistent volume attached
                      to each Pod in the RabbitmqCluster. The format of this field
                      matches that defined by kubernetes/apimachinery. See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity
                      for more info on the format of this field.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  storageClassName:
                    description: The name of the StorageClass to claim a PersistentVolume
                      from.
                    type: string
                type: object
              rabbitmq:
                description: Configuration options for RabbitMQ Pods created in the
                  cluster.
                properties:
                  additionalConfig:
                    description: Modify to add to the rabbitmq.conf file in addition
                      to default configurations set by the operator. Modifying this
                      property on an existing RabbitmqCluster will trigger a StatefulSet
                      rolling restart and will cause rabbitmq downtime. For more information
                      on this config, see https://www.rabbitmq.com/configure.html#config-file
                    maxLength: 2000
                    type: string
                  additionalPlugins:
                    description: 'List of plugins to enable in addition to essential
                      plugins: rabbitmq_management, rabbitmq_prometheus, and rabbitmq_peer_discovery_k8s.'
                    items:
                      description: A Plugin to enable on the RabbitmqCluster.
                      maxLength: 100
                      pattern: ^\w+$
                      type: string
                    maxItems: 100
                    type: array
                  advancedConfig:
                    description: Specify any rabbitmq advanced.config configurations
                      to apply to the cluster. For more information on advanced config,
                      see https://www.rabbitmq.com/configure.html#advanced-config-file
                    maxLength: 100000
                    type: string
                  envConfig:
                    description: Modify to add to the rabbitmq-env.conf file. Modifying
                      this property on an existing RabbitmqCluster will trigger a
                      StatefulSet rolling restart and will cause rabbitmq downtime.
                      For more information on env config, see https://www.rabbitmq.com/man/rabbitmq-env.conf.5.html
                    maxLength: 100000
                    type: string
                type: object
              replicas:
                default: 1
                description: Replicas is the number of nodes in the RabbitMQ cluster.
                  Each node is deployed as a Replica in a StatefulSet. Only 1, 3,
                  5 replicas clusters are tested. This value should be an odd number
                  to ensure the resultant cluster can establish exactly one quorum
                  of nodes in the event of a fragmenting network partition.
                format: int32
                minimum: 0
                type: integer
              resources:
                default:
                  limits:
                    cpu: 2000m
                    memory: 2Gi
                  requests:
                    cpu: 1000m
                    memory: 2Gi
                description: The desired compute resource requirements of Pods in
                  the cluster.
                properties:
                  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-compute-resources-container/'
                    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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                    type: object
                type: object
              service:
                default:
                  type: ClusterIP
                description: The desired state of the Kubernetes Service to create
                  for the cluster.
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    description: Annotations to add to the Service.
                    type: object
                  type:
                    default: ClusterIP
                    description: 'Type of Service to create for the cluster. Must
                      be one of: ClusterIP, LoadBalancer, NodePort. For more info
                      see https://pkg.go.dev/k8s.io/api/core/v1#ServiceType'
                    enum:
                    - ClusterIP
                    - LoadBalancer
                    - NodePort
                    type: string
                type: object
              skipPostDeploySteps:
                description: If unset, or set to false, the cluster will run `rabbitmq-queues
                  rebalance all` whenever the cluster is updated. Set to true to prevent
                  the operator rebalancing queue leaders after a cluster update. Has
                  no effect if the cluster only consists of one node. For more information,
                  see https://www.rabbitmq.com/rabbitmq-queues.8.html#rebalance
                type: boolean
              terminationGracePeriodSeconds:
                default: 604800
                description: 'TerminationGracePeriodSeconds is the timeout that each
                  rabbitmqcluster pod will have to terminate gracefully. It defaults
                  to 604800 seconds ( a week long) to ensure that the container preStop
                  lifecycle hook can finish running. For more information, see: https://github.com/rabbitmq/cluster-operator/blob/main/docs/design/20200520-graceful-pod-termination.md'
                format: int64
                minimum: 0
                type: integer
              tls:
                description: TLS-related configuration for the RabbitMQ cluster.
                properties:
                  caSecretName:
                    description: Name of a Secret in the same Namespace as the RabbitmqCluster,
                      containing the Certificate Authority's public certificate for
                      TLS. The Secret must store this as ca.crt. This Secret can be
                      created by running `kubectl create secret generic ca-secret
                      --from-file=ca.crt=path/to/ca.cert` Used for mTLS, and TLS for
                      rabbitmq_web_stomp and rabbitmq_web_mqtt.
                    type: string
                  disableNonTLSListeners:
                    description: 'When set to true, the RabbitmqCluster disables non-TLS
                      listeners for RabbitMQ, management plugin and for any enabled
                      plugins in the following list: stomp, mqtt, web_stomp, web_mqtt.
                      Only TLS-enabled clients will be able to connect.'
                    type: boolean
                  secretName:
                    description: Name of a Secret in the same Namespace as the RabbitmqCluster,
                      containing the server's private key & public certificate for
                      TLS. The Secret must store these as tls.key and tls.crt, respectively.
                      This Secret can be created by running `kubectl create secret
                      tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key`
                    type: string
                type: object
              tolerations:
                description: Tolerations is the list of Toleration resources attached
                  to each Pod in the RabbitmqCluster.
                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
            type: object
          status:
            description: Status presents the observed state of RabbitmqCluster
            properties:
              binding:
                description: 'Binding exposes a secret containing the binding information
                  for this RabbitmqCluster. It implements the service binding Provisioned
                  Service duck type. See: https://k8s-service-bindings.github.io/spec/#provisioned-service'
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
              conditions:
                description: Set of Conditions describing the current state of the
                  RabbitmqCluster
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition type changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of RabbitmqCluster status
                        addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              defaultUser:
                description: Identifying information on internal resources
                properties:
                  secretReference:
                    description: Reference to the Kubernetes Secret containing the
                      credentials of the default user.
                    properties:
                      keys:
                        additionalProperties:
                          type: string
                        description: Key-value pairs in the Secret corresponding to
                          `username` and `password`
                        type: object
                      name:
                        description: Name of the Secret containing the default user
                          credentials
                        type: string
                      namespace:
                        description: Namespace of the Secret containing the default
                          user credentials
                        type: string
                    required:
                    - keys
                    - name
                    - namespace
                    type: object
                  serviceReference:
                    description: Reference to the Kubernetes Service serving the cluster.
                    properties:
                      name:
                        description: Name of the Service serving the cluster
                        type: string
                      namespace:
                        description: Namespace of the Service serving the cluster
                        type: string
                    required:
                    - name
                    - namespace
                    type: object
                type: object
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this RabbitmqCluster. It corresponds to the RabbitmqCluster's
                  generation, which is updated on mutation by the API Server.
                format: int64
                type: integer
            required:
            - conditions
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []