apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.2
  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: '.status.conditions[?(@.type == ''AllReplicasReady'')].status'
          name: AllReplicasReady
          type: string
        - jsonPath: '.status.conditions[?(@.type == ''ReconcileSuccess'')].status'
          name: ReconcileSuccess
          type: string
        - 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
                                  namespaceSelector:
                                    description: >-
                                      A label query over the set of namespaces
                                      that the term applies to. The term is
                                      applied to the union of the namespaces
                                      selected by this field and the ones listed
                                      in the namespaces field. null selector and
                                      null or empty namespaces list means "this
                                      pod's namespace". An empty selector ({})
                                      matches all namespaces. This field is
                                      alpha-level and is only honored when
                                      PodAffinityNamespaceSelector feature is
                                      enabled.
                                    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 a static list of
                                      namespace names that the term applies to.
                                      The term is applied to the union of the
                                      namespaces listed in this field and the
                                      ones selected by namespaceSelector. null
                                      or empty namespaces list and null
                                      namespaceSelector 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
                              namespaceSelector:
                                description: >-
                                  A label query over the set of namespaces that
                                  the term applies to. The term is applied to
                                  the union of the namespaces selected by this
                                  field and the ones listed in the namespaces
                                  field. null selector and null or empty
                                  namespaces list means "this pod's namespace".
                                  An empty selector ({}) matches all namespaces.
                                  This field is alpha-level and is only honored
                                  when PodAffinityNamespaceSelector feature is
                                  enabled.
                                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 a static list of
                                  namespace names that the term applies to. The
                                  term is applied to the union of the namespaces
                                  listed in this field and the ones selected by
                                  namespaceSelector. null or empty namespaces
                                  list and null namespaceSelector 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
                                  namespaceSelector:
                                    description: >-
                                      A label query over the set of namespaces
                                      that the term applies to. The term is
                                      applied to the union of the namespaces
                                      selected by this field and the ones listed
                                      in the namespaces field. null selector and
                                      null or empty namespaces list means "this
                                      pod's namespace". An empty selector ({})
                                      matches all namespaces. This field is
                                      alpha-level and is only honored when
                                      PodAffinityNamespaceSelector feature is
                                      enabled.
                                    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 a static list of
                                      namespace names that the term applies to.
                                      The term is applied to the union of the
                                      namespaces listed in this field and the
                                      ones selected by namespaceSelector. null
                                      or empty namespaces list and null
                                      namespaceSelector 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
                              namespaceSelector:
                                description: >-
                                  A label query over the set of namespaces that
                                  the term applies to. The term is applied to
                                  the union of the namespaces selected by this
                                  field and the ones listed in the namespaces
                                  field. null selector and null or empty
                                  namespaces list means "this pod's namespace".
                                  An empty selector ({}) matches all namespaces.
                                  This field is alpha-level and is only honored
                                  when PodAffinityNamespaceSelector feature is
                                  enabled.
                                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 a static list of
                                  namespace names that the term applies to. The
                                  term is applied to the union of the namespaces
                                  listed in this field and the ones selected by
                                  namespaceSelector. null or empty namespaces
                                  list and null namespaceSelector 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.21-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
                            internalTrafficPolicy:
                              type: string
                            ipFamilies:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            ipFamilyPolicy:
                              type: string
                            loadBalancerClass:
                              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
                                                      namespaceSelector:
                                                        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
                                                  namespaceSelector:
                                                    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
                                                      namespaceSelector:
                                                        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
                                                  namespaceSelector:
                                                    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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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
                                              terminationGracePeriodSeconds:
                                                format: int64
                                                type: integer
                                              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:
                                              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-resources-containers/
                      type: object
                    requests:
                      additionalProperties:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: >-
                          ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      description: >-
                        Requests describes the minimum amount of compute
                        resources required. If Requests is omitted for a
                        container, it defaults to Limits if that is explicitly
                        specified, otherwise to an implementation-defined value.
                        More info:
                        https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      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`, `password`, `host`, and `port`
                          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: []
