# CustomResourceDefinitions for Calico and Tigera operator
---
# Source: crds/operator.tigera.io_apiservers.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: apiservers.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: APIServer
    listKind: APIServerList
    plural: apiservers
    singular: apiserver
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: |-
            APIServer installs the Tigera API server and related resources. At most one instance
            of this resource is supported. It must be named "default" or "tigera-secure".
          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: Specification of the desired state for the Tigera API server.
              properties:
                apiServerDeployment:
                  description: |-
                    APIServerDeployment configures the calico-apiserver Deployment. If
                    used in conjunction with ControlPlaneNodeSelector or ControlPlaneTolerations, then these overrides
                    take precedence.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the Deployment.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description: Spec is the specification of the API server Deployment.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the API server Deployment.
                            If omitted, the API server Deployment will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        template:
                          description:
                            Template describes the API server Deployment
                            pod that will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: Spec is the API server Deployment's PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the API server pods.
                                    If specified, this overrides any affinity that may be set on the API server Deployment.
                                    If omitted, the API server Deployment will use its default value for affinity.
                                    WARNING: Please note that this field will override the default API server Deployment affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of API server containers.
                                    If specified, this overrides the specified API server Deployment containers.
                                    If omitted, the API server Deployment will use its default values for its containers.
                                  items:
                                    description:
                                      APIServerDeploymentContainer is an
                                      API server Deployment container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the API server Deployment container by name.
                                          Supported values are: calico-apiserver, tigera-queryserver, calico-l7-admission-controller
                                        enum:
                                          - calico-apiserver
                                          - tigera-queryserver
                                          - calico-l7-admission-controller
                                        type: string
                                      ports:
                                        description: |-
                                          Ports allows customization of container's ports.
                                          If specified, this overrides the named APIServer Deployment container's ports.
                                          If omitted, the API server Deployment will use its default value for this container's port.
                                        items:
                                          properties:
                                            containerPort:
                                              description: |-
                                                Number of port to expose on the pod's IP address.
                                                This must be a valid port number, 0 < x < 65536.
                                              format: int32
                                              type: integer
                                            name:
                                              description: |-
                                                Name is an enum which identifies the API server Deployment Container port by name.
                                                Supported values are: apiserver, queryserver, l7admctrl
                                              enum:
                                                - apiserver
                                                - queryserver
                                                - l7admctrl
                                              type: string
                                          required:
                                            - containerPort
                                            - name
                                          type: object
                                        type: array
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named API server Deployment container's resources.
                                          If omitted, the API server Deployment will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                initContainers:
                                  description: |-
                                    InitContainers is a list of API server init containers.
                                    If specified, this overrides the specified API server Deployment init containers.
                                    If omitted, the API server Deployment will use its default values for its init containers.
                                  items:
                                    description:
                                      APIServerDeploymentInitContainer is
                                      an API server Deployment init container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the API server Deployment init container by name.
                                          Supported values are: calico-apiserver-certs-key-cert-provisioner
                                        enum:
                                          - calico-apiserver-certs-key-cert-provisioner
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named API server Deployment init container's resources.
                                          If omitted, the API server Deployment will use its default value for this init container's resources.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the API server pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the API server Deployment nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If used in conjunction with ControlPlaneNodeSelector, that nodeSelector is set on the API server Deployment
                                    and each of this field's key/value pairs are added to the API server Deployment nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the API server Deployment will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default API server Deployment nodeSelector.
                                  type: object
                                priorityClassName:
                                  description:
                                    PriorityClassName allows to specify a
                                    PriorityClass resource to be used.
                                  type: string
                                tolerations:
                                  description: |-
                                    Tolerations is the API server pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the API server Deployment.
                                    If omitted, the API server Deployment will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default API server Deployment tolerations.
                                  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
                                topologySpreadConstraints:
                                  description: |-
                                    TopologySpreadConstraints describes how a group of pods ought to spread across topology
                                    domains. Scheduler will schedule pods in a way which abides by the constraints.
                                    All topologySpreadConstraints are ANDed.
                                  items:
                                    description:
                                      TopologySpreadConstraint specifies
                                      how to spread matching pods among the given topology.
                                    properties:
                                      labelSelector:
                                        description: |-
                                          LabelSelector is used to find matching pods.
                                          Pods that match this label selector are counted to determine the number of pods
                                          in their corresponding topology domain.
                                        properties:
                                          matchExpressions:
                                            description:
                                              matchExpressions is a list
                                              of label selector requirements. The requirements
                                              are ANDed.
                                            items:
                                              description: |-
                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                relates the key and values.
                                              properties:
                                                key:
                                                  description:
                                                    key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    operator represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: |-
                                                    values is an array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. This array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: |-
                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: |-
                                          MatchLabelKeys is a set of pod label keys to select the pods over which
                                          spreading will be calculated. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are ANDed with labelSelector
                                          to select the group of existing pods over which spreading will be calculated
                                          for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                          MatchLabelKeys cannot be set when LabelSelector isn't set.
                                          Keys that don't exist in the incoming pod labels will
                                          be ignored. A null or empty list means only match against labelSelector.
                                          This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      maxSkew:
                                        description: |-
                                          MaxSkew describes the degree to which pods may be unevenly distributed.
                                          When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                          between the number of matching pods in the target topology and the global minimum.
                                          The global minimum is the minimum number of matching pods in an eligible domain
                                          or zero if the number of eligible domains is less than MinDomains.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 2/2/1:
                                          In this case, the global minimum is 1.
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |   P   |
                                          - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                          scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                          violate MaxSkew(1).
                                          - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                          When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                          to topologies that satisfy it.
                                          It's a required field. Default value is 1 and 0 is not allowed.
                                        format: int32
                                        type: integer
                                      minDomains:
                                        description: |-
                                          MinDomains indicates a minimum number of eligible domains.
                                          When the number of eligible domains with matching topology keys is less than minDomains,
                                          Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                          And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                          this value has no effect on scheduling.
                                          As a result, when the number of eligible domains is less than minDomains,
                                          scheduler won't schedule more than maxSkew Pods to those domains.
                                          If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                          Valid values are integers greater than 0.
                                          When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                          For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                          labelSelector spread as 2/2/2:
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |  P P  |
                                          The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                          In this situation, new pod with the same labelSelector cannot be scheduled,
                                          because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                          it will violate MaxSkew.
                                        format: int32
                                        type: integer
                                      nodeAffinityPolicy:
                                        description: |-
                                          NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                          when calculating pod topology spread skew. Options are:
                                          - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                          - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                          If this value is nil, the behavior is equivalent to the Honor policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      nodeTaintsPolicy:
                                        description: |-
                                          NodeTaintsPolicy indicates how we will treat node taints when calculating
                                          pod topology spread skew. Options are:
                                          - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                          has a toleration, are included.
                                          - Ignore: node taints are ignored. All nodes are included.
                                          If this value is nil, the behavior is equivalent to the Ignore policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      topologyKey:
                                        description: |-
                                          TopologyKey is the key of node labels. Nodes that have a label with this key
                                          and identical values are considered to be in the same topology.
                                          We consider each <key, value> as a "bucket", and try to put balanced number
                                          of pods into each bucket.
                                          We define a domain as a particular instance of a topology.
                                          Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                          nodeAffinityPolicy and nodeTaintsPolicy.
                                          e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                          And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                          It's a required field.
                                        type: string
                                      whenUnsatisfiable:
                                        description: |-
                                          WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                          the spread constraint.
                                          - DoNotSchedule (default) tells the scheduler not to schedule it.
                                          - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                            but giving higher precedence to topologies that would help reduce the
                                            skew.
                                          A constraint is considered "Unsatisfiable" for an incoming pod
                                          if and only if every possible node assignment for that pod would violate
                                          "MaxSkew" on some topology.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 3/1/1:
                                          | zone1 | zone2 | zone3 |
                                          | P P P |   P   |   P   |
                                          If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                          to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                          MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                          won't make it *more* imbalanced.
                                          It's a required field.
                                        type: string
                                    required:
                                      - maxSkew
                                      - topologyKey
                                      - whenUnsatisfiable
                                    type: object
                                  type: array
                              type: object
                          type: object
                      type: object
                  type: object
                logging:
                  properties:
                    apiServer:
                      properties:
                        logSeverity:
                          default: Info
                          description: LogSeverity defines log level for APIServer container.
                          enum:
                            - Fatal
                            - Error
                            - Warn
                            - Info
                            - Debug
                            - Trace
                          type: string
                      type: object
                    queryServer:
                      properties:
                        logSeverity:
                          default: Info
                          description:
                            LogSeverity defines log level for QueryServer
                            container.
                          enum:
                            - Fatal
                            - Error
                            - Warn
                            - Info
                            - Debug
                            - Trace
                          type: string
                      type: object
                  type: object
              type: object
            status:
              description: Most recently observed status for the Tigera API server.
              properties:
                conditions:
                  description: |-
                    Conditions represents the latest observed set of conditions for the component. A component may be one or more of
                    Ready, Progressing, Degraded or other customer types.
                  items:
                    description:
                      Condition contains details for one aspect of the current
                      state of this API Resource.
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                state:
                  description: State provides user-readable status.
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/operator.tigera.io_gatewayapis.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: gatewayapis.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: GatewayAPI
    listKind: GatewayAPIList
    plural: gatewayapis
    singular: gatewayapi
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              description: |-
                APIVersion defines the versioned schema of this representation of an object.
                Servers should convert recognized schemas to the latest internal value, and
                may reject unrecognized values.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
              type: string
            kind:
              description: |-
                Kind is a string value representing the REST resource this object represents.
                Servers may infer this from the endpoint the client submits requests to.
                Cannot be updated.
                In CamelCase.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
              type: string
            metadata:
              type: object
            spec:
              description:
                GatewayAPISpec has fields that can be used to customize our
                GatewayAPI support.
              properties:
                crdManagement:
                  description: |-
                    Configures how to manage and update Gateway API CRDs.  The default behaviour - which is
                    used when this field is not set, or is set to "PreferExisting" - is that the Tigera
                    operator will create the Gateway API CRDs if they do not already exist, but will not
                    overwrite any existing Gateway API CRDs.  This setting may be preferable if the customer
                    is using other implementations of the Gateway API concurrently with the Gateway API
                    support in Calico Enterprise.  It is then the customer's responsibility to ensure that
                    CRDs are installed that meet the needs of all the Gateway API implementations in their
                    cluster.
                    Alternatively, if this field is set to "Reconcile", the Tigera operator will keep the
                    cluster's Gateway API CRDs aligned with those that it would install on a cluster that
                    does not yet have any version of those CRDs.
                  enum:
                    - Reconcile
                    - PreferExisting
                  type: string
                envoyGatewayConfigRef:
                  description: |-
                    Reference to a custom EnvoyGateway YAML to use as the base EnvoyGateway configuration for
                    the gateway controller.  When specified, must identify a ConfigMap resource with an
                    "envoy-gateway.yaml" key whose value is the desired EnvoyGateway YAML (i.e. following the
                    same pattern as the default `envoy-gateway-config` ConfigMap).
                    When not specified, the Tigera operator uses the `envoy-gateway-config` from the Envoy
                    Gateway helm chart as its base.
                    Starting from that base, the Tigera operator copies and modifies the EnvoyGateway
                    resource as follows:
                    1. If not already specified, it sets the ControllerName to
                    "gateway.envoyproxy.io/gatewayclass-controller".
                    2. It configures the `tigera/envoy-gateway` and `tigera/envoy-ratelimit` images that will
                    be used (according to the current Calico version, private registry and image set
                    settings) and any pull secrets that are needed to pull those images.
                    3. It enables use of the Backend API.
                    The resulting EnvoyGateway is provisioned as the `envoy-gateway-config` ConfigMap (which
                    the gateway controller then uses as its config).
                  properties:
                    name:
                      type: string
                    namespace:
                      type: string
                  required:
                    - name
                    - namespace
                  type: object
                gatewayCertgenJob:
                  description: Allows customization of the gateway certgen job.
                  properties:
                    metadata:
                      description: |-
                        If non-nil, non-clashing labels and annotations from this metadata are added into the
                        job's top-level metadata.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description:
                        GatewayCertgenJobSpec allows customization of the
                        gateway certgen job spec.
                      properties:
                        template:
                          description:
                            GatewayCertgenJobPodTemplate allows customization
                            of the gateway certgen job's pod template.
                          properties:
                            metadata:
                              description: |-
                                If non-nil, non-clashing labels and annotations from this metadata are added into the
                                job's pod template.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description:
                                GatewayCertgenJobPodSpec allows customization
                                of the gateway certgen job's pod spec.
                              properties:
                                affinity:
                                  description:
                                    If non-nil, Affinity sets the affinity
                                    field of the job's pod template.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  items:
                                    description: |-
                                      GatewayCertgenJobContainer allows customization of the gateway certgen job's resource
                                      requirements.
                                    properties:
                                      name:
                                        enum:
                                          - envoy-gateway-certgen
                                        type: string
                                      resources:
                                        description: |-
                                          If non-nil, Resources sets the ResourceRequirements of the job's "envoy-gateway-certgen"
                                          container.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description:
                                    If non-nil, NodeSelector sets the node
                                    selector for where job pods may be scheduled.
                                  type: object
                                tolerations:
                                  description:
                                    If non-nil, Tolerations sets the tolerations
                                    field of the job's pod template.
                                  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
                          type: object
                      type: object
                  type: object
                gatewayClasses:
                  description: |-
                    Configures the GatewayClasses that will be available; please see GatewayClassSpec for
                    more detail.  If GatewayClasses is nil, the Tigera operator defaults to provisioning a
                    single GatewayClass named "tigera-gateway-class", without any of the detailed
                    customizations that are allowed within GatewayClassSpec.
                  items:
                    properties:
                      envoyProxyRef:
                        description: |-
                          Reference to a custom EnvoyProxy resource to use as the base EnvoyProxy configuration for
                          this GatewayClass.  When specified, must identify an EnvoyProxy resource.
                          When not specified, the Tigera operator uses an empty EnvoyProxy resource as its base.
                          Starting from that base, the Tigera operator copies and modifies the EnvoyProxy resource
                          as follows, in the order described:
                          1. It configures the `tigera/envoy-proxy` image that will be used (according to the
                          current Calico version, private registry and image set settings) and any pull secrets
                          that are needed to pull that image.
                          2. It applies customizations as specified by the following `GatewayKind`,
                          `GatewayDeployment`, `GatewayDaemonSet` and `GatewayService` fields.
                          The resulting EnvoyProxy is provisioned in the `tigera-gateway` namespace, together with
                          a GatewayClass that references it.
                          If a custom EnvoyProxy resource is specified and uses `EnvoyDaemonSet` instead of the
                          default `EnvoyDeployment`, deployment-related customizations will be applied within
                          `EnvoyDaemonSet` instead of within `EnvoyDeployment`.
                        properties:
                          name:
                            type: string
                          namespace:
                            type: string
                        required:
                          - name
                          - namespace
                        type: object
                      gatewayDaemonSet:
                        description: |-
                          Allows customization of Gateways when deployed as Kubernetes DaemonSets, for Gateways in
                          this GatewayClass.
                        properties:
                          spec:
                            description:
                              GatewayDeploymentSpec allows customization
                              of the spec of gateway daemonsets.
                            properties:
                              template:
                                description:
                                  GatewayDeploymentPodTemplate allows customization
                                  of the pod template of gateway daemonsets.
                                properties:
                                  metadata:
                                    description: |-
                                      If non-nil, non-clashing labels and annotations from this metadata are added into each
                                      daemonset's pod template.
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          Annotations is a map of arbitrary non-identifying metadata. Each of these
                                          key/value pairs are added to the object's annotations provided the key does not
                                          already exist in the object's annotations.
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          Labels is a map of string keys and values that may match replicaset and
                                          service selectors. Each of these key/value pairs are added to the
                                          object's labels provided the key does not already exist in the object's labels.
                                        type: object
                                    type: object
                                  spec:
                                    description:
                                      GatewayDaemonSetPodSpec allows customization
                                      of the pod spec of gateway daemonsets.
                                    properties:
                                      affinity:
                                        description:
                                          If non-nil, Affinity sets the affinity
                                          field of the daemonset's pod template.
                                        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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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
                                                x-kubernetes-list-type: atomic
                                              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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                  - nodeSelectorTerms
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            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.
                                                            If it's null, this PodAffinityTerm matches with no 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
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        matchLabelKeys:
                                                          description: |-
                                                            MatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                            Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        mismatchLabelKeys:
                                                          description: |-
                                                            MismatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                            Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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.
                                                          properties:
                                                            matchExpressions:
                                                              description:
                                                                matchExpressions
                                                                is a list of label selector
                                                                requirements. The requirements
                                                                are ANDed.
                                                              items:
                                                                description: |-
                                                                  A label selector requirement is a selector that contains values, a key, and an operator that
                                                                  relates the key and values.
                                                                properties:
                                                                  key:
                                                                    description:
                                                                      key
                                                                      is the label key
                                                                      that the selector
                                                                      applies to.
                                                                    type: string
                                                                  operator:
                                                                    description:
                                                                      |-
                                                                      operator represents a key's relationship to a set of values.
                                                                      Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                    type: string
                                                                  values:
                                                                    description:
                                                                      |-
                                                                      values is an array of string values. If the operator is In or NotIn,
                                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                      the values array must be empty. This array is replaced during a strategic
                                                                      merge patch.
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        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
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                x-kubernetes-list-type: atomic
                                              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.
                                                        If it's null, this PodAffinityTerm matches with no 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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    matchLabelKeys:
                                                      description: |-
                                                        MatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                        Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    mismatchLabelKeys:
                                                      description: |-
                                                        MismatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                        Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    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.
                                                      properties:
                                                        matchExpressions:
                                                          description:
                                                            matchExpressions
                                                            is a list of label selector
                                                            requirements. The requirements
                                                            are ANDed.
                                                          items:
                                                            description: |-
                                                              A label selector requirement is a selector that contains values, a key, and an operator that
                                                              relates the key and values.
                                                            properties:
                                                              key:
                                                                description:
                                                                  key is
                                                                  the label key that
                                                                  the selector applies
                                                                  to.
                                                                type: string
                                                              operator:
                                                                description: |-
                                                                  operator represents a key's relationship to a set of values.
                                                                  Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                type: string
                                                              values:
                                                                description: |-
                                                                  values is an array of string values. If the operator is In or NotIn,
                                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                  the values array must be empty. This array is replaced during a strategic
                                                                  merge patch.
                                                                items:
                                                                  type: string
                                                                type: array
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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
                                                      x-kubernetes-list-type: atomic
                                                    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
                                                x-kubernetes-list-type: atomic
                                            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.
                                                            If it's null, this PodAffinityTerm matches with no 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
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        matchLabelKeys:
                                                          description: |-
                                                            MatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                            Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        mismatchLabelKeys:
                                                          description: |-
                                                            MismatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                            Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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.
                                                          properties:
                                                            matchExpressions:
                                                              description:
                                                                matchExpressions
                                                                is a list of label selector
                                                                requirements. The requirements
                                                                are ANDed.
                                                              items:
                                                                description: |-
                                                                  A label selector requirement is a selector that contains values, a key, and an operator that
                                                                  relates the key and values.
                                                                properties:
                                                                  key:
                                                                    description:
                                                                      key
                                                                      is the label key
                                                                      that the selector
                                                                      applies to.
                                                                    type: string
                                                                  operator:
                                                                    description:
                                                                      |-
                                                                      operator represents a key's relationship to a set of values.
                                                                      Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                    type: string
                                                                  values:
                                                                    description:
                                                                      |-
                                                                      values is an array of string values. If the operator is In or NotIn,
                                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                      the values array must be empty. This array is replaced during a strategic
                                                                      merge patch.
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        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
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                x-kubernetes-list-type: atomic
                                              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.
                                                        If it's null, this PodAffinityTerm matches with no 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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    matchLabelKeys:
                                                      description: |-
                                                        MatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                        Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    mismatchLabelKeys:
                                                      description: |-
                                                        MismatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                        Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    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.
                                                      properties:
                                                        matchExpressions:
                                                          description:
                                                            matchExpressions
                                                            is a list of label selector
                                                            requirements. The requirements
                                                            are ANDed.
                                                          items:
                                                            description: |-
                                                              A label selector requirement is a selector that contains values, a key, and an operator that
                                                              relates the key and values.
                                                            properties:
                                                              key:
                                                                description:
                                                                  key is
                                                                  the label key that
                                                                  the selector applies
                                                                  to.
                                                                type: string
                                                              operator:
                                                                description: |-
                                                                  operator represents a key's relationship to a set of values.
                                                                  Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                type: string
                                                              values:
                                                                description: |-
                                                                  values is an array of string values. If the operator is In or NotIn,
                                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                  the values array must be empty. This array is replaced during a strategic
                                                                  merge patch.
                                                                items:
                                                                  type: string
                                                                type: array
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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
                                                      x-kubernetes-list-type: atomic
                                                    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
                                                x-kubernetes-list-type: atomic
                                            type: object
                                        type: object
                                      containers:
                                        items:
                                          description: |-
                                            GatewayDaemonSetContainer allows customization of the resource requirements of gateway
                                            daemonsets.
                                          properties:
                                            name:
                                              enum:
                                                - envoy
                                              type: string
                                            resources:
                                              description: |-
                                                If non-nil, Resources sets the ResourceRequirements of the daemonset's "envoy"
                                                container.
                                              properties:
                                                claims:
                                                  description: |-
                                                    Claims lists the names of resources, defined in spec.resourceClaims,
                                                    that are used by this container.
                                                    This is an alpha field and requires enabling the
                                                    DynamicResourceAllocation feature gate.
                                                    This field is immutable. It can only be set for containers.
                                                  items:
                                                    description:
                                                      ResourceClaim references
                                                      one entry in PodSpec.ResourceClaims.
                                                    properties:
                                                      name:
                                                        description: |-
                                                          Name must match the name of one entry in pod.spec.resourceClaims of
                                                          the Pod where this field is used. It makes that resource available
                                                          inside a container.
                                                        type: string
                                                      request:
                                                        description: |-
                                                          Request is the name chosen for a request in the referenced claim.
                                                          If empty, everything from the claim is made available, otherwise
                                                          only the result of this request.
                                                        type: string
                                                    required:
                                                      - name
                                                    type: object
                                                  type: array
                                                  x-kubernetes-list-map-keys:
                                                    - name
                                                  x-kubernetes-list-type: map
                                                limits:
                                                  additionalProperties:
                                                    anyOf:
                                                      - type: integer
                                                      - type: string
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  description: |-
                                                    Limits describes the maximum amount of compute resources allowed.
                                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    anyOf:
                                                      - type: integer
                                                      - type: string
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  description: |-
                                                    Requests describes the minimum amount of compute resources required.
                                                    If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                    otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                  type: object
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      nodeSelector:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          If non-nil, NodeSelector sets the node selector for where daemonset pods may be
                                          scheduled.
                                        type: object
                                      tolerations:
                                        description:
                                          If non-nil, Tolerations sets the
                                          tolerations field of the daemonset's pod template.
                                        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
                                      topologySpreadConstraints:
                                        description: |-
                                          If non-nil, TopologySpreadConstraints sets the topology spread constraints of the
                                          daemonset's pod template.  TopologySpreadConstraints describes how a group of pods ought
                                          to spread across topology domains. Scheduler will schedule pods in a way which abides by
                                          the constraints.  All topologySpreadConstraints are ANDed.
                                        items:
                                          description:
                                            TopologySpreadConstraint specifies
                                            how to spread matching pods among the given
                                            topology.
                                          properties:
                                            labelSelector:
                                              description: |-
                                                LabelSelector is used to find matching pods.
                                                Pods that match this label selector are counted to determine the number of pods
                                                in their corresponding topology domain.
                                              properties:
                                                matchExpressions:
                                                  description:
                                                    matchExpressions is a
                                                    list of label selector requirements.
                                                    The requirements are ANDed.
                                                  items:
                                                    description: |-
                                                      A label selector requirement is a selector that contains values, a key, and an operator that
                                                      relates the key and values.
                                                    properties:
                                                      key:
                                                        description:
                                                          key is the label
                                                          key that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: |-
                                                          operator represents a key's relationship to a set of values.
                                                          Valid operators are In, NotIn, Exists and DoesNotExist.
                                                        type: string
                                                      values:
                                                        description: |-
                                                          values is an array of string values. If the operator is In or NotIn,
                                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                          the values array must be empty. This array is replaced during a strategic
                                                          merge patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    required:
                                                      - key
                                                      - operator
                                                    type: object
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: |-
                                                    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                    map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                    operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                  type: object
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            matchLabelKeys:
                                              description: |-
                                                MatchLabelKeys is a set of pod label keys to select the pods over which
                                                spreading will be calculated. The keys are used to lookup values from the
                                                incoming pod labels, those key-value labels are ANDed with labelSelector
                                                to select the group of existing pods over which spreading will be calculated
                                                for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                                MatchLabelKeys cannot be set when LabelSelector isn't set.
                                                Keys that don't exist in the incoming pod labels will
                                                be ignored. A null or empty list means only match against labelSelector.
                                                This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            maxSkew:
                                              description: |-
                                                MaxSkew describes the degree to which pods may be unevenly distributed.
                                                When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                                between the number of matching pods in the target topology and the global minimum.
                                                The global minimum is the minimum number of matching pods in an eligible domain
                                                or zero if the number of eligible domains is less than MinDomains.
                                                For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                                labelSelector spread as 2/2/1:
                                                In this case, the global minimum is 1.
                                                | zone1 | zone2 | zone3 |
                                                |  P P  |  P P  |   P   |
                                                - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                                scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                                violate MaxSkew(1).
                                                - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                                When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                                to topologies that satisfy it.
                                                It's a required field. Default value is 1 and 0 is not allowed.
                                              format: int32
                                              type: integer
                                            minDomains:
                                              description: |-
                                                MinDomains indicates a minimum number of eligible domains.
                                                When the number of eligible domains with matching topology keys is less than minDomains,
                                                Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                                And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                                this value has no effect on scheduling.
                                                As a result, when the number of eligible domains is less than minDomains,
                                                scheduler won't schedule more than maxSkew Pods to those domains.
                                                If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                                Valid values are integers greater than 0.
                                                When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                                For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                                labelSelector spread as 2/2/2:
                                                | zone1 | zone2 | zone3 |
                                                |  P P  |  P P  |  P P  |
                                                The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                                In this situation, new pod with the same labelSelector cannot be scheduled,
                                                because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                                it will violate MaxSkew.
                                              format: int32
                                              type: integer
                                            nodeAffinityPolicy:
                                              description: |-
                                                NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                                when calculating pod topology spread skew. Options are:
                                                - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                                - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                                If this value is nil, the behavior is equivalent to the Honor policy.
                                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                              type: string
                                            nodeTaintsPolicy:
                                              description: |-
                                                NodeTaintsPolicy indicates how we will treat node taints when calculating
                                                pod topology spread skew. Options are:
                                                - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                                has a toleration, are included.
                                                - Ignore: node taints are ignored. All nodes are included.
                                                If this value is nil, the behavior is equivalent to the Ignore policy.
                                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                              type: string
                                            topologyKey:
                                              description: |-
                                                TopologyKey is the key of node labels. Nodes that have a label with this key
                                                and identical values are considered to be in the same topology.
                                                We consider each <key, value> as a "bucket", and try to put balanced number
                                                of pods into each bucket.
                                                We define a domain as a particular instance of a topology.
                                                Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                                nodeAffinityPolicy and nodeTaintsPolicy.
                                                e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                                And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                                It's a required field.
                                              type: string
                                            whenUnsatisfiable:
                                              description: |-
                                                WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                                the spread constraint.
                                                - DoNotSchedule (default) tells the scheduler not to schedule it.
                                                - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                                  but giving higher precedence to topologies that would help reduce the
                                                  skew.
                                                A constraint is considered "Unsatisfiable" for an incoming pod
                                                if and only if every possible node assignment for that pod would violate
                                                "MaxSkew" on some topology.
                                                For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                                labelSelector spread as 3/1/1:
                                                | zone1 | zone2 | zone3 |
                                                | P P P |   P   |   P   |
                                                If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                                to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                                MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                                won't make it *more* imbalanced.
                                                It's a required field.
                                              type: string
                                          required:
                                            - maxSkew
                                            - topologyKey
                                            - whenUnsatisfiable
                                          type: object
                                        type: array
                                    type: object
                                type: object
                            type: object
                        type: object
                      gatewayDeployment:
                        description: |-
                          Allows customization of Gateways when deployed as Kubernetes Deployments, for Gateways in
                          this GatewayClass.
                        properties:
                          spec:
                            description:
                              GatewayDeploymentSpec allows customization
                              of the spec of gateway deployments.
                            properties:
                              replicas:
                                description:
                                  If non-nil, Replicas sets the number of
                                  replicas for the deployment.
                                format: int32
                                type: integer
                              strategy:
                                description:
                                  The deployment strategy to use to replace
                                  existing pods with new ones.
                                properties:
                                  rollingUpdate:
                                    description:
                                      Spec to control the desired behavior
                                      of rolling update.
                                    properties:
                                      maxSurge:
                                        anyOf:
                                          - type: integer
                                          - type: string
                                        description: |-
                                          The maximum number of pods that can be scheduled above the desired number of
                                          pods.
                                          Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                          This can not be 0 if MaxUnavailable is 0.
                                          Absolute number is calculated from percentage by rounding up.
                                          Defaults to 25%.
                                          Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
                                          the rolling update starts, such that the total number of old and new pods do not exceed
                                          130% of desired pods. Once old pods have been killed,
                                          new ReplicaSet can be scaled up further, ensuring that total number of pods running
                                          at any time during the update is at most 130% of desired pods.
                                        x-kubernetes-int-or-string: true
                                      maxUnavailable:
                                        anyOf:
                                          - type: integer
                                          - type: string
                                        description: |-
                                          The maximum number of pods that can be unavailable during the update.
                                          Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                          Absolute number is calculated from percentage by rounding down.
                                          This can not be 0 if MaxSurge is 0.
                                          Defaults to 25%.
                                          Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
                                          immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
                                          can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
                                          that the total number of pods available at all times during the update is at
                                          least 70% of desired pods.
                                        x-kubernetes-int-or-string: true
                                    type: object
                                type: object
                              template:
                                description:
                                  GatewayDeploymentPodTemplate allows customization
                                  of the pod template of gateway deployments.
                                properties:
                                  metadata:
                                    description: |-
                                      If non-nil, non-clashing labels and annotations from this metadata are added into each
                                      deployment's pod template.
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          Annotations is a map of arbitrary non-identifying metadata. Each of these
                                          key/value pairs are added to the object's annotations provided the key does not
                                          already exist in the object's annotations.
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          Labels is a map of string keys and values that may match replicaset and
                                          service selectors. Each of these key/value pairs are added to the
                                          object's labels provided the key does not already exist in the object's labels.
                                        type: object
                                    type: object
                                  spec:
                                    description:
                                      GatewayDeploymentPodSpec allows customization
                                      of the pod spec of gateway deployments.
                                    properties:
                                      affinity:
                                        description:
                                          If non-nil, Affinity sets the affinity
                                          field of the deployment's pod template.
                                        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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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
                                                x-kubernetes-list-type: atomic
                                              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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                  - nodeSelectorTerms
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            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.
                                                            If it's null, this PodAffinityTerm matches with no 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
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        matchLabelKeys:
                                                          description: |-
                                                            MatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                            Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        mismatchLabelKeys:
                                                          description: |-
                                                            MismatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                            Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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.
                                                          properties:
                                                            matchExpressions:
                                                              description:
                                                                matchExpressions
                                                                is a list of label selector
                                                                requirements. The requirements
                                                                are ANDed.
                                                              items:
                                                                description: |-
                                                                  A label selector requirement is a selector that contains values, a key, and an operator that
                                                                  relates the key and values.
                                                                properties:
                                                                  key:
                                                                    description:
                                                                      key
                                                                      is the label key
                                                                      that the selector
                                                                      applies to.
                                                                    type: string
                                                                  operator:
                                                                    description:
                                                                      |-
                                                                      operator represents a key's relationship to a set of values.
                                                                      Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                    type: string
                                                                  values:
                                                                    description:
                                                                      |-
                                                                      values is an array of string values. If the operator is In or NotIn,
                                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                      the values array must be empty. This array is replaced during a strategic
                                                                      merge patch.
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        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
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                x-kubernetes-list-type: atomic
                                              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.
                                                        If it's null, this PodAffinityTerm matches with no 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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    matchLabelKeys:
                                                      description: |-
                                                        MatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                        Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    mismatchLabelKeys:
                                                      description: |-
                                                        MismatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                        Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    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.
                                                      properties:
                                                        matchExpressions:
                                                          description:
                                                            matchExpressions
                                                            is a list of label selector
                                                            requirements. The requirements
                                                            are ANDed.
                                                          items:
                                                            description: |-
                                                              A label selector requirement is a selector that contains values, a key, and an operator that
                                                              relates the key and values.
                                                            properties:
                                                              key:
                                                                description:
                                                                  key is
                                                                  the label key that
                                                                  the selector applies
                                                                  to.
                                                                type: string
                                                              operator:
                                                                description: |-
                                                                  operator represents a key's relationship to a set of values.
                                                                  Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                type: string
                                                              values:
                                                                description: |-
                                                                  values is an array of string values. If the operator is In or NotIn,
                                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                  the values array must be empty. This array is replaced during a strategic
                                                                  merge patch.
                                                                items:
                                                                  type: string
                                                                type: array
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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
                                                      x-kubernetes-list-type: atomic
                                                    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
                                                x-kubernetes-list-type: atomic
                                            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.
                                                            If it's null, this PodAffinityTerm matches with no 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
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        matchLabelKeys:
                                                          description: |-
                                                            MatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                            Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        mismatchLabelKeys:
                                                          description: |-
                                                            MismatchLabelKeys is a set of pod label keys to select which pods will
                                                            be taken into consideration. The keys are used to lookup values from the
                                                            incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                            to select the group of existing pods which pods will be taken into consideration
                                                            for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                            pod labels will be ignored. The default value is empty.
                                                            The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                            Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                            This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        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.
                                                          properties:
                                                            matchExpressions:
                                                              description:
                                                                matchExpressions
                                                                is a list of label selector
                                                                requirements. The requirements
                                                                are ANDed.
                                                              items:
                                                                description: |-
                                                                  A label selector requirement is a selector that contains values, a key, and an operator that
                                                                  relates the key and values.
                                                                properties:
                                                                  key:
                                                                    description:
                                                                      key
                                                                      is the label key
                                                                      that the selector
                                                                      applies to.
                                                                    type: string
                                                                  operator:
                                                                    description:
                                                                      |-
                                                                      operator represents a key's relationship to a set of values.
                                                                      Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                    type: string
                                                                  values:
                                                                    description:
                                                                      |-
                                                                      values is an array of string values. If the operator is In or NotIn,
                                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                      the values array must be empty. This array is replaced during a strategic
                                                                      merge patch.
                                                                    items:
                                                                      type: string
                                                                    type: array
                                                                    x-kubernetes-list-type: atomic
                                                                required:
                                                                  - key
                                                                  - operator
                                                                type: object
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                            matchLabels:
                                                              additionalProperties:
                                                                type: string
                                                              description: |-
                                                                matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                                map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                                operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                              type: object
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        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
                                                          x-kubernetes-list-type: atomic
                                                        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
                                                x-kubernetes-list-type: atomic
                                              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.
                                                        If it's null, this PodAffinityTerm matches with no 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
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    matchLabelKeys:
                                                      description: |-
                                                        MatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                        Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    mismatchLabelKeys:
                                                      description: |-
                                                        MismatchLabelKeys is a set of pod label keys to select which pods will
                                                        be taken into consideration. The keys are used to lookup values from the
                                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                        to select the group of existing pods which pods will be taken into consideration
                                                        for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                        pod labels will be ignored. The default value is empty.
                                                        The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                        Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                        This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                    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.
                                                      properties:
                                                        matchExpressions:
                                                          description:
                                                            matchExpressions
                                                            is a list of label selector
                                                            requirements. The requirements
                                                            are ANDed.
                                                          items:
                                                            description: |-
                                                              A label selector requirement is a selector that contains values, a key, and an operator that
                                                              relates the key and values.
                                                            properties:
                                                              key:
                                                                description:
                                                                  key is
                                                                  the label key that
                                                                  the selector applies
                                                                  to.
                                                                type: string
                                                              operator:
                                                                description: |-
                                                                  operator represents a key's relationship to a set of values.
                                                                  Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                type: string
                                                              values:
                                                                description: |-
                                                                  values is an array of string values. If the operator is In or NotIn,
                                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                  the values array must be empty. This array is replaced during a strategic
                                                                  merge patch.
                                                                items:
                                                                  type: string
                                                                type: array
                                                                x-kubernetes-list-type: atomic
                                                            required:
                                                              - key
                                                              - operator
                                                            type: object
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                        matchLabels:
                                                          additionalProperties:
                                                            type: string
                                                          description: |-
                                                            matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                            map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                            operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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
                                                      x-kubernetes-list-type: atomic
                                                    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
                                                x-kubernetes-list-type: atomic
                                            type: object
                                        type: object
                                      containers:
                                        items:
                                          description: |-
                                            GatewayDeploymentContainer allows customization of the resource requirements of gateway
                                            deployments.
                                          properties:
                                            name:
                                              enum:
                                                - envoy
                                              type: string
                                            resources:
                                              description: |-
                                                If non-nil, Resources sets the ResourceRequirements of the deployment's "envoy"
                                                container.
                                              properties:
                                                claims:
                                                  description: |-
                                                    Claims lists the names of resources, defined in spec.resourceClaims,
                                                    that are used by this container.
                                                    This is an alpha field and requires enabling the
                                                    DynamicResourceAllocation feature gate.
                                                    This field is immutable. It can only be set for containers.
                                                  items:
                                                    description:
                                                      ResourceClaim references
                                                      one entry in PodSpec.ResourceClaims.
                                                    properties:
                                                      name:
                                                        description: |-
                                                          Name must match the name of one entry in pod.spec.resourceClaims of
                                                          the Pod where this field is used. It makes that resource available
                                                          inside a container.
                                                        type: string
                                                      request:
                                                        description: |-
                                                          Request is the name chosen for a request in the referenced claim.
                                                          If empty, everything from the claim is made available, otherwise
                                                          only the result of this request.
                                                        type: string
                                                    required:
                                                      - name
                                                    type: object
                                                  type: array
                                                  x-kubernetes-list-map-keys:
                                                    - name
                                                  x-kubernetes-list-type: map
                                                limits:
                                                  additionalProperties:
                                                    anyOf:
                                                      - type: integer
                                                      - type: string
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  description: |-
                                                    Limits describes the maximum amount of compute resources allowed.
                                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                  type: object
                                                requests:
                                                  additionalProperties:
                                                    anyOf:
                                                      - type: integer
                                                      - type: string
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  description: |-
                                                    Requests describes the minimum amount of compute resources required.
                                                    If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                    otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                  type: object
                                              type: object
                                          required:
                                            - name
                                          type: object
                                        type: array
                                      nodeSelector:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          If non-nil, NodeSelector sets the node selector for where deployment pods may be
                                          scheduled.
                                        type: object
                                      tolerations:
                                        description:
                                          If non-nil, Tolerations sets the
                                          tolerations field of the deployment's pod
                                          template.
                                        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
                                      topologySpreadConstraints:
                                        description: |-
                                          If non-nil, TopologySpreadConstraints sets the topology spread constraints of the
                                          deployment's pod template.  TopologySpreadConstraints describes how a group of pods ought
                                          to spread across topology domains. Scheduler will schedule pods in a way which abides by
                                          the constraints.  All topologySpreadConstraints are ANDed.
                                        items:
                                          description:
                                            TopologySpreadConstraint specifies
                                            how to spread matching pods among the given
                                            topology.
                                          properties:
                                            labelSelector:
                                              description: |-
                                                LabelSelector is used to find matching pods.
                                                Pods that match this label selector are counted to determine the number of pods
                                                in their corresponding topology domain.
                                              properties:
                                                matchExpressions:
                                                  description:
                                                    matchExpressions is a
                                                    list of label selector requirements.
                                                    The requirements are ANDed.
                                                  items:
                                                    description: |-
                                                      A label selector requirement is a selector that contains values, a key, and an operator that
                                                      relates the key and values.
                                                    properties:
                                                      key:
                                                        description:
                                                          key is the label
                                                          key that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: |-
                                                          operator represents a key's relationship to a set of values.
                                                          Valid operators are In, NotIn, Exists and DoesNotExist.
                                                        type: string
                                                      values:
                                                        description: |-
                                                          values is an array of string values. If the operator is In or NotIn,
                                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                          the values array must be empty. This array is replaced during a strategic
                                                          merge patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    required:
                                                      - key
                                                      - operator
                                                    type: object
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: |-
                                                    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                    map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                    operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                  type: object
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            matchLabelKeys:
                                              description: |-
                                                MatchLabelKeys is a set of pod label keys to select the pods over which
                                                spreading will be calculated. The keys are used to lookup values from the
                                                incoming pod labels, those key-value labels are ANDed with labelSelector
                                                to select the group of existing pods over which spreading will be calculated
                                                for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                                MatchLabelKeys cannot be set when LabelSelector isn't set.
                                                Keys that don't exist in the incoming pod labels will
                                                be ignored. A null or empty list means only match against labelSelector.
                                                This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            maxSkew:
                                              description: |-
                                                MaxSkew describes the degree to which pods may be unevenly distributed.
                                                When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                                between the number of matching pods in the target topology and the global minimum.
                                                The global minimum is the minimum number of matching pods in an eligible domain
                                                or zero if the number of eligible domains is less than MinDomains.
                                                For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                                labelSelector spread as 2/2/1:
                                                In this case, the global minimum is 1.
                                                | zone1 | zone2 | zone3 |
                                                |  P P  |  P P  |   P   |
                                                - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                                scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                                violate MaxSkew(1).
                                                - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                                When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                                to topologies that satisfy it.
                                                It's a required field. Default value is 1 and 0 is not allowed.
                                              format: int32
                                              type: integer
                                            minDomains:
                                              description: |-
                                                MinDomains indicates a minimum number of eligible domains.
                                                When the number of eligible domains with matching topology keys is less than minDomains,
                                                Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                                And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                                this value has no effect on scheduling.
                                                As a result, when the number of eligible domains is less than minDomains,
                                                scheduler won't schedule more than maxSkew Pods to those domains.
                                                If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                                Valid values are integers greater than 0.
                                                When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                                For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                                labelSelector spread as 2/2/2:
                                                | zone1 | zone2 | zone3 |
                                                |  P P  |  P P  |  P P  |
                                                The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                                In this situation, new pod with the same labelSelector cannot be scheduled,
                                                because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                                it will violate MaxSkew.
                                              format: int32
                                              type: integer
                                            nodeAffinityPolicy:
                                              description: |-
                                                NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                                when calculating pod topology spread skew. Options are:
                                                - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                                - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                                If this value is nil, the behavior is equivalent to the Honor policy.
                                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                              type: string
                                            nodeTaintsPolicy:
                                              description: |-
                                                NodeTaintsPolicy indicates how we will treat node taints when calculating
                                                pod topology spread skew. Options are:
                                                - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                                has a toleration, are included.
                                                - Ignore: node taints are ignored. All nodes are included.
                                                If this value is nil, the behavior is equivalent to the Ignore policy.
                                                This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                              type: string
                                            topologyKey:
                                              description: |-
                                                TopologyKey is the key of node labels. Nodes that have a label with this key
                                                and identical values are considered to be in the same topology.
                                                We consider each <key, value> as a "bucket", and try to put balanced number
                                                of pods into each bucket.
                                                We define a domain as a particular instance of a topology.
                                                Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                                nodeAffinityPolicy and nodeTaintsPolicy.
                                                e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                                And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                                It's a required field.
                                              type: string
                                            whenUnsatisfiable:
                                              description: |-
                                                WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                                the spread constraint.
                                                - DoNotSchedule (default) tells the scheduler not to schedule it.
                                                - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                                  but giving higher precedence to topologies that would help reduce the
                                                  skew.
                                                A constraint is considered "Unsatisfiable" for an incoming pod
                                                if and only if every possible node assignment for that pod would violate
                                                "MaxSkew" on some topology.
                                                For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                                labelSelector spread as 3/1/1:
                                                | zone1 | zone2 | zone3 |
                                                | P P P |   P   |   P   |
                                                If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                                to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                                MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                                won't make it *more* imbalanced.
                                                It's a required field.
                                              type: string
                                          required:
                                            - maxSkew
                                            - topologyKey
                                            - whenUnsatisfiable
                                          type: object
                                        type: array
                                    type: object
                                type: object
                            type: object
                        type: object
                      gatewayKind:
                        description: |-
                          Specifies whether Gateways in this class are deployed as Deployments (default) or as
                          DaemonSets.  It is an error for GatewayKind to specify a choice that is incompatible with
                          the custom EnvoyProxy, when EnvoyProxyRef is also specified.
                        enum:
                          - Deployment
                          - DaemonSet
                        type: string
                      gatewayService:
                        description:
                          Allows customization of gateway services, for Gateways
                          in this GatewayClass.
                        properties:
                          metadata:
                            description: |-
                              If non-nil, non-clashing labels and annotations from this metadata are added into the
                              each Gateway Service's metadata.
                            properties:
                              annotations:
                                additionalProperties:
                                  type: string
                                description: |-
                                  Annotations is a map of arbitrary non-identifying metadata. Each of these
                                  key/value pairs are added to the object's annotations provided the key does not
                                  already exist in the object's annotations.
                                type: object
                              labels:
                                additionalProperties:
                                  type: string
                                description: |-
                                  Labels is a map of string keys and values that may match replicaset and
                                  service selectors. Each of these key/value pairs are added to the
                                  object's labels provided the key does not already exist in the object's labels.
                                type: object
                            type: object
                          spec:
                            description: |-
                              GatewayServiceSpec allows customization of the services that front gateway deployments.
                              The LoadBalancer fields allow customization of the corresponding fields in the Kubernetes
                              ServiceSpec.  These can be used for some cloud-independent control of the external load balancer
                              that is provisioned for each Gateway.  For finer-grained cloud-specific control please use
                              the Metadata.Annotations field in GatewayService.
                            properties:
                              allocateLoadBalancerNodePorts:
                                type: boolean
                              loadBalancerClass:
                                type: string
                              loadBalancerIP:
                                type: string
                              loadBalancerSourceRanges:
                                items:
                                  type: string
                                type: array
                            type: object
                        type: object
                      name:
                        description: The name of this GatewayClass.
                        type: string
                    required:
                      - name
                    type: object
                  type: array
                gatewayControllerDeployment:
                  description: Allows customization of the gateway controller deployment.
                  properties:
                    metadata:
                      description: |-
                        If non-nil, non-clashing labels and annotations from this metadata are added into the
                        deployment's top-level metadata.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description:
                        GatewayControllerDeploymentSpec allows customization
                        of the gateway controller deployment spec.
                      properties:
                        minReadySeconds:
                          description:
                            If non-nil, MinReadySeconds sets the minReadySeconds
                            field for the deployment.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        replicas:
                          description:
                            If non-nil, Replicas sets the number of replicas
                            for the deployment.
                          format: int32
                          type: integer
                        template:
                          description: |-
                            GatewayControllerDeploymentPodTemplate allows customization of the gateway controller deployment
                            pod template.
                          properties:
                            metadata:
                              description: |-
                                If non-nil, non-clashing labels and annotations from this metadata are added into the
                                deployment's pod template.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: |-
                                GatewayControllerDeploymentPodSpec allows customization of the gateway controller deployment pod
                                spec.
                              properties:
                                affinity:
                                  description:
                                    If non-nil, Affinity sets the affinity
                                    field of the deployment's pod template.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  items:
                                    description: |-
                                      GatewayControllerDeploymentContainer allows customization of the gateway controller's resource
                                      requirements.
                                    properties:
                                      name:
                                        enum:
                                          - envoy-gateway
                                        type: string
                                      resources:
                                        description: |-
                                          If non-nil, Resources sets the ResourceRequirements of the controller's "envoy-gateway"
                                          container.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    If non-nil, NodeSelector sets the node selector for where deployment pods may be
                                    scheduled.
                                  type: object
                                tolerations:
                                  description:
                                    If non-nil, Tolerations sets the tolerations
                                    field of the deployment's pod template.
                                  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
                                topologySpreadConstraints:
                                  description: |-
                                    If non-nil, TopologySpreadConstraints sets the topology spread constraints of the
                                    deployment's pod template.  TopologySpreadConstraints describes how a group of pods ought
                                    to spread across topology domains. Scheduler will schedule pods in a way which abides by
                                    the constraints.  All topologySpreadConstraints are ANDed.
                                  items:
                                    description:
                                      TopologySpreadConstraint specifies
                                      how to spread matching pods among the given topology.
                                    properties:
                                      labelSelector:
                                        description: |-
                                          LabelSelector is used to find matching pods.
                                          Pods that match this label selector are counted to determine the number of pods
                                          in their corresponding topology domain.
                                        properties:
                                          matchExpressions:
                                            description:
                                              matchExpressions is a list
                                              of label selector requirements. The requirements
                                              are ANDed.
                                            items:
                                              description: |-
                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                relates the key and values.
                                              properties:
                                                key:
                                                  description:
                                                    key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    operator represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: |-
                                                    values is an array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. This array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: |-
                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: |-
                                          MatchLabelKeys is a set of pod label keys to select the pods over which
                                          spreading will be calculated. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are ANDed with labelSelector
                                          to select the group of existing pods over which spreading will be calculated
                                          for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                          MatchLabelKeys cannot be set when LabelSelector isn't set.
                                          Keys that don't exist in the incoming pod labels will
                                          be ignored. A null or empty list means only match against labelSelector.
                                          This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      maxSkew:
                                        description: |-
                                          MaxSkew describes the degree to which pods may be unevenly distributed.
                                          When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                          between the number of matching pods in the target topology and the global minimum.
                                          The global minimum is the minimum number of matching pods in an eligible domain
                                          or zero if the number of eligible domains is less than MinDomains.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 2/2/1:
                                          In this case, the global minimum is 1.
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |   P   |
                                          - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                          scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                          violate MaxSkew(1).
                                          - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                          When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                          to topologies that satisfy it.
                                          It's a required field. Default value is 1 and 0 is not allowed.
                                        format: int32
                                        type: integer
                                      minDomains:
                                        description: |-
                                          MinDomains indicates a minimum number of eligible domains.
                                          When the number of eligible domains with matching topology keys is less than minDomains,
                                          Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                          And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                          this value has no effect on scheduling.
                                          As a result, when the number of eligible domains is less than minDomains,
                                          scheduler won't schedule more than maxSkew Pods to those domains.
                                          If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                          Valid values are integers greater than 0.
                                          When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                          For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                          labelSelector spread as 2/2/2:
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |  P P  |
                                          The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                          In this situation, new pod with the same labelSelector cannot be scheduled,
                                          because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                          it will violate MaxSkew.
                                        format: int32
                                        type: integer
                                      nodeAffinityPolicy:
                                        description: |-
                                          NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                          when calculating pod topology spread skew. Options are:
                                          - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                          - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                          If this value is nil, the behavior is equivalent to the Honor policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      nodeTaintsPolicy:
                                        description: |-
                                          NodeTaintsPolicy indicates how we will treat node taints when calculating
                                          pod topology spread skew. Options are:
                                          - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                          has a toleration, are included.
                                          - Ignore: node taints are ignored. All nodes are included.
                                          If this value is nil, the behavior is equivalent to the Ignore policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      topologyKey:
                                        description: |-
                                          TopologyKey is the key of node labels. Nodes that have a label with this key
                                          and identical values are considered to be in the same topology.
                                          We consider each <key, value> as a "bucket", and try to put balanced number
                                          of pods into each bucket.
                                          We define a domain as a particular instance of a topology.
                                          Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                          nodeAffinityPolicy and nodeTaintsPolicy.
                                          e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                          And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                          It's a required field.
                                        type: string
                                      whenUnsatisfiable:
                                        description: |-
                                          WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                          the spread constraint.
                                          - DoNotSchedule (default) tells the scheduler not to schedule it.
                                          - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                            but giving higher precedence to topologies that would help reduce the
                                            skew.
                                          A constraint is considered "Unsatisfiable" for an incoming pod
                                          if and only if every possible node assignment for that pod would violate
                                          "MaxSkew" on some topology.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 3/1/1:
                                          | zone1 | zone2 | zone3 |
                                          | P P P |   P   |   P   |
                                          If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                          to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                          MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                          won't make it *more* imbalanced.
                                          It's a required field.
                                        type: string
                                    required:
                                      - maxSkew
                                      - topologyKey
                                      - whenUnsatisfiable
                                    type: object
                                  type: array
                              type: object
                          type: object
                      type: object
                  type: object
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/operator.tigera.io_goldmanes.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: goldmanes.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: Goldmane
    listKind: GoldmaneList
    plural: goldmanes
    singular: goldmane
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              description: |-
                APIVersion defines the versioned schema of this representation of an object.
                Servers should convert recognized schemas to the latest internal value, and
                may reject unrecognized values.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
              type: string
            kind:
              description: |-
                Kind is a string value representing the REST resource this object represents.
                Servers may infer this from the endpoint the client submits requests to.
                Cannot be updated.
                In CamelCase.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
              type: string
            metadata:
              type: object
            spec:
              properties:
                goldmaneDeployment:
                  description:
                    GoldmaneDeployment is the configuration for the goldmane
                    Deployment.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the Deployment.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description: Spec is the specification of the goldmane Deployment.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the goldmane Deployment.
                            If omitted, the goldmane Deployment will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        strategy:
                          description:
                            The deployment strategy to use to replace existing
                            pods with new ones.
                          properties:
                            rollingUpdate:
                              description: |-
                                Rolling update config params. Present only if DeploymentStrategyType =
                                RollingUpdate.
                                to be.
                              properties:
                                maxSurge:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: |-
                                    The maximum number of pods that can be scheduled above the desired number of
                                    pods.
                                    Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                    This can not be 0 if MaxUnavailable is 0.
                                    Absolute number is calculated from percentage by rounding up.
                                    Defaults to 25%.
                                    Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
                                    the rolling update starts, such that the total number of old and new pods do not exceed
                                    130% of desired pods. Once old pods have been killed,
                                    new ReplicaSet can be scaled up further, ensuring that total number of pods running
                                    at any time during the update is at most 130% of desired pods.
                                  x-kubernetes-int-or-string: true
                                maxUnavailable:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: |-
                                    The maximum number of pods that can be unavailable during the update.
                                    Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                    Absolute number is calculated from percentage by rounding down.
                                    This can not be 0 if MaxSurge is 0.
                                    Defaults to 25%.
                                    Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
                                    immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
                                    can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
                                    that the total number of pods available at all times during the update is at
                                    least 70% of desired pods.
                                  x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        template:
                          description:
                            Template describes the goldmane Deployment pod
                            that will be created.
                          properties:
                            metadata:
                              description:
                                Metadata is a subset of a Kubernetes object's
                                metadata that is added to the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: Spec is the goldmane Deployment's PodSpec.
                              properties:
                                affinity:
                                  description:
                                    Affinity is a group of affinity scheduling
                                    rules for the goldmane 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of goldmane containers.
                                    If specified, this overrides the specified EGW Deployment containers.
                                    If omitted, the goldmane Deployment will use its default values for its containers.
                                  items:
                                    properties:
                                      name:
                                        enum:
                                          - goldmane
                                        type: string
                                      resources:
                                        description:
                                          ResourceRequirements describes
                                          the compute resource requirements.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description:
                                    NodeSelector gives more control over
                                    the nodes where the goldmane pods will run on.
                                  type: object
                                priorityClassName:
                                  description:
                                    PriorityClassName allows to specify a
                                    PriorityClass resource to be used.
                                  type: string
                                terminationGracePeriodSeconds:
                                  description:
                                    TerminationGracePeriodSeconds defines
                                    the termination grace period of the goldmane pods
                                    in seconds.
                                  format: int64
                                  minimum: 0
                                  type: integer
                                tolerations:
                                  description: |-
                                    Tolerations is the goldmane pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the goldmane Deployment.
                                    If omitted, the goldmane Deployment will use its default value for tolerations.
                                  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
                                topologySpreadConstraints:
                                  description: |-
                                    TopologySpreadConstraints describes how a group of pods ought to spread across topology
                                    domains. Scheduler will schedule pods in a way which abides by the constraints.
                                    All topologySpreadConstraints are ANDed.
                                  items:
                                    description:
                                      TopologySpreadConstraint specifies
                                      how to spread matching pods among the given topology.
                                    properties:
                                      labelSelector:
                                        description: |-
                                          LabelSelector is used to find matching pods.
                                          Pods that match this label selector are counted to determine the number of pods
                                          in their corresponding topology domain.
                                        properties:
                                          matchExpressions:
                                            description:
                                              matchExpressions is a list
                                              of label selector requirements. The requirements
                                              are ANDed.
                                            items:
                                              description: |-
                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                relates the key and values.
                                              properties:
                                                key:
                                                  description:
                                                    key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    operator represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: |-
                                                    values is an array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. This array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: |-
                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: |-
                                          MatchLabelKeys is a set of pod label keys to select the pods over which
                                          spreading will be calculated. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are ANDed with labelSelector
                                          to select the group of existing pods over which spreading will be calculated
                                          for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                          MatchLabelKeys cannot be set when LabelSelector isn't set.
                                          Keys that don't exist in the incoming pod labels will
                                          be ignored. A null or empty list means only match against labelSelector.
                                          This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      maxSkew:
                                        description: |-
                                          MaxSkew describes the degree to which pods may be unevenly distributed.
                                          When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                          between the number of matching pods in the target topology and the global minimum.
                                          The global minimum is the minimum number of matching pods in an eligible domain
                                          or zero if the number of eligible domains is less than MinDomains.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 2/2/1:
                                          In this case, the global minimum is 1.
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |   P   |
                                          - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                          scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                          violate MaxSkew(1).
                                          - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                          When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                          to topologies that satisfy it.
                                          It's a required field. Default value is 1 and 0 is not allowed.
                                        format: int32
                                        type: integer
                                      minDomains:
                                        description: |-
                                          MinDomains indicates a minimum number of eligible domains.
                                          When the number of eligible domains with matching topology keys is less than minDomains,
                                          Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                          And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                          this value has no effect on scheduling.
                                          As a result, when the number of eligible domains is less than minDomains,
                                          scheduler won't schedule more than maxSkew Pods to those domains.
                                          If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                          Valid values are integers greater than 0.
                                          When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                          For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                          labelSelector spread as 2/2/2:
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |  P P  |
                                          The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                          In this situation, new pod with the same labelSelector cannot be scheduled,
                                          because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                          it will violate MaxSkew.
                                        format: int32
                                        type: integer
                                      nodeAffinityPolicy:
                                        description: |-
                                          NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                          when calculating pod topology spread skew. Options are:
                                          - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                          - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                          If this value is nil, the behavior is equivalent to the Honor policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      nodeTaintsPolicy:
                                        description: |-
                                          NodeTaintsPolicy indicates how we will treat node taints when calculating
                                          pod topology spread skew. Options are:
                                          - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                          has a toleration, are included.
                                          - Ignore: node taints are ignored. All nodes are included.
                                          If this value is nil, the behavior is equivalent to the Ignore policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      topologyKey:
                                        description: |-
                                          TopologyKey is the key of node labels. Nodes that have a label with this key
                                          and identical values are considered to be in the same topology.
                                          We consider each <key, value> as a "bucket", and try to put balanced number
                                          of pods into each bucket.
                                          We define a domain as a particular instance of a topology.
                                          Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                          nodeAffinityPolicy and nodeTaintsPolicy.
                                          e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                          And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                          It's a required field.
                                        type: string
                                      whenUnsatisfiable:
                                        description: |-
                                          WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                          the spread constraint.
                                          - DoNotSchedule (default) tells the scheduler not to schedule it.
                                          - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                            but giving higher precedence to topologies that would help reduce the
                                            skew.
                                          A constraint is considered "Unsatisfiable" for an incoming pod
                                          if and only if every possible node assignment for that pod would violate
                                          "MaxSkew" on some topology.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 3/1/1:
                                          | zone1 | zone2 | zone3 |
                                          | P P P |   P   |   P   |
                                          If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                          to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                          MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                          won't make it *more* imbalanced.
                                          It's a required field.
                                        type: string
                                    required:
                                      - maxSkew
                                      - topologyKey
                                      - whenUnsatisfiable
                                    type: object
                                  type: array
                              type: object
                          type: object
                      type: object
                  type: object
              type: object
            status:
              description: GoldmaneStatus defines the observed state of Goldmane
              properties:
                conditions:
                  description: |-
                    Conditions represents the latest observed set of conditions for the component. A component may be one or more of
                    Ready, Progressing, Degraded or other customer types.
                  items:
                    description:
                      Condition contains details for one aspect of the current
                      state of this API Resource.
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/operator.tigera.io_imagesets.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: imagesets.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: ImageSet
    listKind: ImageSetList
    plural: imagesets
    singular: imageset
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: |-
            ImageSet is used to specify image digests for the images that the operator deploys.
            The name of the ImageSet is expected to be in the format `<variant>-<release>`.
            The `variant` used is `enterprise` if the InstallationSpec Variant is
            `TigeraSecureEnterprise` otherwise it is `calico`.
            The `release` must match the version of the variant that the operator is built to deploy,
            this version can be obtained by passing the `--version` flag to the operator binary.
          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: ImageSetSpec defines the desired state of ImageSet.
              properties:
                images:
                  description: |-
                    Images is the list of images to use digests. All images that the operator will deploy
                    must be specified.
                  items:
                    properties:
                      digest:
                        description: |-
                          Digest is the image identifier that will be used for the Image.
                          The field should not include a leading `@` and must be prefixed with `sha256:`.
                        type: string
                      image:
                        description: |-
                          Image is an image that the operator deploys and instead of using the built in tag
                          the operator will use the Digest for the image identifier.
                          The value should be the *original* image name without registry or tag or digest.
                          For the image `docker.io/calico/node:v3.17.1` it should be represented as `calico/node`
                          The "Installation" spec allows defining custom image registries, paths or prefixes.
                          Even for custom images such as example.com/custompath/customprefix-calico-node:v3.17.1,
                          this value should still be `calico/node`.
                        type: string
                    required:
                      - digest
                      - image
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/operator.tigera.io_installations.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: installations.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: Installation
    listKind: InstallationList
    plural: installations
    singular: installation
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: |-
            Installation configures an installation of Calico or Calico Enterprise. At most one instance
            of this resource is supported. It must be named "default". The Installation API installs core networking
            and network policy components, and provides general install-time configuration.
          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:
                Specification of the desired state for the Calico or Calico
                Enterprise installation.
              properties:
                azure:
                  description: Azure is used to configure azure provider specific options.
                  properties:
                    policyMode:
                      default: Default
                      description: |-
                        PolicyMode determines whether the "control-plane" label is applied to namespaces. It offers two options: Default and Manual.
                        The Default option adds the "control-plane" label to the required namespaces.
                        The Manual option does not apply the "control-plane" label to any namespace.
                        Default: Default
                      enum:
                        - Default
                        - Manual
                      type: string
                  type: object
                calicoKubeControllersDeployment:
                  description: |-
                    CalicoKubeControllersDeployment configures the calico-kube-controllers Deployment. If used in
                    conjunction with the deprecated ComponentResources, then these overrides take precedence.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the Deployment.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description:
                        Spec is the specification of the calico-kube-controllers
                        Deployment.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the calico-kube-controllers Deployment.
                            If omitted, the calico-kube-controllers Deployment will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        template:
                          description:
                            Template describes the calico-kube-controllers
                            Deployment pod that will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description:
                                Spec is the calico-kube-controllers Deployment's
                                PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the calico-kube-controllers pods.
                                    If specified, this overrides any affinity that may be set on the calico-kube-controllers Deployment.
                                    If omitted, the calico-kube-controllers Deployment will use its default value for affinity.
                                    WARNING: Please note that this field will override the default calico-kube-controllers Deployment affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of calico-kube-controllers containers.
                                    If specified, this overrides the specified calico-kube-controllers Deployment containers.
                                    If omitted, the calico-kube-controllers Deployment will use its default values for its containers.
                                  items:
                                    description:
                                      CalicoKubeControllersDeploymentContainer
                                      is a calico-kube-controllers Deployment container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the calico-kube-controllers Deployment container by name.
                                          Supported values are: calico-kube-controllers, es-calico-kube-controllers
                                        enum:
                                          - calico-kube-controllers
                                          - es-calico-kube-controllers
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named calico-kube-controllers Deployment container's resources.
                                          If omitted, the calico-kube-controllers Deployment will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the calico-kube-controllers pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the calico-kube-controllers Deployment nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If used in conjunction with ControlPlaneNodeSelector, that nodeSelector is set on the calico-kube-controllers Deployment
                                    and each of this field's key/value pairs are added to the calico-kube-controllers Deployment nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the calico-kube-controllers Deployment will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default calico-kube-controllers Deployment nodeSelector.
                                  type: object
                                tolerations:
                                  description: |-
                                    Tolerations is the calico-kube-controllers pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the calico-kube-controllers Deployment.
                                    If omitted, the calico-kube-controllers Deployment will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default calico-kube-controllers Deployment tolerations.
                                  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
                          type: object
                      type: object
                  type: object
                calicoNetwork:
                  description:
                    CalicoNetwork specifies networking configuration options
                    for Calico.
                  properties:
                    bgp:
                      description:
                        BGP configures whether or not to enable Calico's
                        BGP capabilities.
                      enum:
                        - Enabled
                        - Disabled
                      type: string
                    bpfNetworkBootstrap:
                      description: |-
                        BPFNetworkBootstrap manages the initial networking setup required to configure the BPF dataplane.
                        When enabled, the operator tries to bootstraps access to the Kubernetes API Server
                        by using the Kubernetes service and its associated endpoints.
                        This field should be enabled only if linuxDataplane is set to "BPF".
                        If another dataplane is selected, this field must be omitted or explicitly set to Disabled.
                        When disabled and linuxDataplane is BPF, you must manually provide the Kubernetes API Server
                        information via the "kubernetes-service-endpoint" ConfigMap. It is invalid to use both the ConfigMap
                        and have this field set to true at the same time.
                        Default: Disabled
                      enum:
                        - Disabled
                        - Enabled
                      type: string
                    containerIPForwarding:
                      description: |-
                        ContainerIPForwarding configures whether ip forwarding will be enabled for containers in the CNI configuration.
                        Default: Disabled
                      enum:
                        - Enabled
                        - Disabled
                      type: string
                    hostPorts:
                      description: |-
                        HostPorts configures whether or not Calico will support Kubernetes HostPorts. Valid only when using the Calico CNI plugin.
                        Default: Enabled
                      enum:
                        - Enabled
                        - Disabled
                      type: string
                    ipPools:
                      description: |-
                        IPPools contains a list of IP pools to manage. If nil, a single IPv4 IP pool
                        will be created by the operator. If an empty list is provided, the operator will not create any IP pools and will instead
                        wait for IP pools to be created out-of-band.
                        IP pools in this list will be reconciled by the operator and should not be modified out-of-band.
                      items:
                        properties:
                          allowedUses:
                            description: |-
                              AllowedUse controls what the IP pool will be used for.  If not specified or empty, defaults to
                              ["Tunnel", "Workload"] for back-compatibility
                            items:
                              type: string
                            type: array
                          assignmentMode:
                            description:
                              AssignmentMode determines if IP addresses from
                              this pool should be  assigned automatically or on request
                              only
                            type: string
                          blockSize:
                            description: |-
                              BlockSize specifies the CIDR prefex length to use when allocating per-node IP blocks from
                              the main IP pool CIDR.
                              Default: 26 (IPv4), 122 (IPv6)
                            format: int32
                            type: integer
                          cidr:
                            description:
                              CIDR contains the address range for the IP
                              Pool in classless inter-domain routing format.
                            type: string
                          disableBGPExport:
                            default: false
                            description: |-
                              DisableBGPExport specifies whether routes from this IP pool's CIDR are exported over BGP.
                              Default: false
                            type: boolean
                          disableNewAllocations:
                            description: |-
                              DisableNewAllocations specifies whether or not new IP allocations are allowed from this pool.
                              This is useful when you want to prevent new pods from receiving IP addresses from this pool, without
                              impacting any existing pods that have already been assigned addresses from this pool.
                            type: boolean
                          encapsulation:
                            description: |-
                              Encapsulation specifies the encapsulation type that will be used with
                              the IP Pool.
                              Default: IPIP
                            enum:
                              - IPIPCrossSubnet
                              - IPIP
                              - VXLAN
                              - VXLANCrossSubnet
                              - None
                            type: string
                          name:
                            description:
                              Name is the name of the IP pool. If omitted,
                              this will be generated.
                            type: string
                          natOutgoing:
                            description: |-
                              NATOutgoing specifies if NAT will be enabled or disabled for outgoing traffic.
                              Default: Enabled
                            enum:
                              - Enabled
                              - Disabled
                            type: string
                          nodeSelector:
                            description: |-
                              NodeSelector specifies the node selector that will be set for the IP Pool.
                              Default: 'all()'
                            type: string
                        required:
                          - cidr
                        type: object
                      maxItems: 25
                      type: array
                    kubeProxyManagement:
                      description: |-
                        KubeProxyManagement controls whether the operator manages the kube-proxy DaemonSet.
                        When enabled, the operator will manage the DaemonSet by patching it:
                        it disables kube-proxy if the dataplane is BPF, or enables it otherwise.
                        Default: Disabled
                      enum:
                        - Disabled
                        - Enabled
                      type: string
                    linuxDataplane:
                      description: |-
                        LinuxDataplane is used to select the dataplane used for Linux nodes. In particular, it
                        causes the operator to add required mounts and environment variables for the particular dataplane.
                        If not specified, iptables mode is used.
                        Default: Iptables
                      enum:
                        - Iptables
                        - BPF
                        - VPP
                        - Nftables
                      type: string
                    linuxPolicySetupTimeoutSeconds:
                      description: |-
                        LinuxPolicySetupTimeoutSeconds delays new pods from running containers
                        until their policy has been programmed in the dataplane.
                        The specified delay defines the maximum amount of time
                        that the Calico CNI plugin will wait for policy to be programmed.
                        Only applies to pods created on Linux nodes.
                        * A value of 0 disables pod startup delays.
                        Default: 0
                      format: int32
                      type: integer
                    mtu:
                      description: |-
                        MTU specifies the maximum transmission unit to use on the pod network.
                        If not specified, Calico will perform MTU auto-detection based on the cluster network.
                      format: int32
                      type: integer
                    multiInterfaceMode:
                      description: |-
                        MultiInterfaceMode configures what will configure multiple interface per pod. Only valid for Calico Enterprise installations
                        using the Calico CNI plugin.
                        Default: None
                      enum:
                        - None
                        - Multus
                      type: string
                    nodeAddressAutodetectionV4:
                      description: |-
                        NodeAddressAutodetectionV4 specifies an approach to automatically detect node IPv4 addresses. If not specified,
                        will use default auto-detection settings to acquire an IPv4 address for each node.
                      properties:
                        canReach:
                          description: |-
                            CanReach enables IP auto-detection based on which source address on the node is used to reach the
                            specified IP or domain.
                          type: string
                        cidrs:
                          description: |-
                            CIDRS enables IP auto-detection based on which addresses on the nodes are within
                            one of the provided CIDRs.
                          items:
                            type: string
                          type: array
                        firstFound:
                          description: |-
                            FirstFound uses default interface matching parameters to select an interface, performing best-effort
                            filtering based on well-known interface names.
                          type: boolean
                        interface:
                          description:
                            Interface enables IP auto-detection based on
                            interfaces that match the given regex.
                          type: string
                        kubernetes:
                          description:
                            Kubernetes configures Calico to detect node addresses
                            based on the Kubernetes API.
                          enum:
                            - NodeInternalIP
                          type: string
                        skipInterface:
                          description: |-
                            SkipInterface enables IP auto-detection based on interfaces that do not match
                            the given regex.
                          type: string
                      type: object
                    nodeAddressAutodetectionV6:
                      description: |-
                        NodeAddressAutodetectionV6 specifies an approach to automatically detect node IPv6 addresses. If not specified,
                        IPv6 addresses will not be auto-detected.
                      properties:
                        canReach:
                          description: |-
                            CanReach enables IP auto-detection based on which source address on the node is used to reach the
                            specified IP or domain.
                          type: string
                        cidrs:
                          description: |-
                            CIDRS enables IP auto-detection based on which addresses on the nodes are within
                            one of the provided CIDRs.
                          items:
                            type: string
                          type: array
                        firstFound:
                          description: |-
                            FirstFound uses default interface matching parameters to select an interface, performing best-effort
                            filtering based on well-known interface names.
                          type: boolean
                        interface:
                          description:
                            Interface enables IP auto-detection based on
                            interfaces that match the given regex.
                          type: string
                        kubernetes:
                          description:
                            Kubernetes configures Calico to detect node addresses
                            based on the Kubernetes API.
                          enum:
                            - NodeInternalIP
                          type: string
                        skipInterface:
                          description: |-
                            SkipInterface enables IP auto-detection based on interfaces that do not match
                            the given regex.
                          type: string
                      type: object
                    sysctl:
                      description: Sysctl configures sysctl parameters for tuning plugin
                      items:
                        properties:
                          key:
                            enum:
                              - net.ipv4.tcp_keepalive_intvl
                              - net.ipv4.tcp_keepalive_probes
                              - net.ipv4.tcp_keepalive_time
                            type: string
                          value:
                            type: string
                        required:
                          - key
                          - value
                        type: object
                      type: array
                    windowsDataplane:
                      description: |-
                        WindowsDataplane is used to select the dataplane used for Windows nodes. In particular, it
                        causes the operator to add required mounts and environment variables for the particular dataplane.
                        If not specified, it is disabled and the operator will not render the Calico Windows nodes daemonset.
                        Default: Disabled
                      enum:
                        - HNS
                        - Disabled
                      type: string
                  type: object
                calicoNodeDaemonSet:
                  description: |-
                    CalicoNodeDaemonSet configures the calico-node DaemonSet. If used in
                    conjunction with the deprecated ComponentResources, then these overrides take precedence.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the DaemonSet.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description: Spec is the specification of the calico-node DaemonSet.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created DaemonSet pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the calico-node DaemonSet.
                            If omitted, the calico-node DaemonSet will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        template:
                          description:
                            Template describes the calico-node DaemonSet
                            pod that will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: Spec is the calico-node DaemonSet's PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the calico-node pods.
                                    If specified, this overrides any affinity that may be set on the calico-node DaemonSet.
                                    If omitted, the calico-node DaemonSet will use its default value for affinity.
                                    WARNING: Please note that this field will override the default calico-node DaemonSet affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of calico-node containers.
                                    If specified, this overrides the specified calico-node DaemonSet containers.
                                    If omitted, the calico-node DaemonSet will use its default values for its containers.
                                  items:
                                    description:
                                      CalicoNodeDaemonSetContainer is a calico-node
                                      DaemonSet container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the calico-node DaemonSet container by name.
                                          Supported values are: calico-node
                                        enum:
                                          - calico-node
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named calico-node DaemonSet container's resources.
                                          If omitted, the calico-node DaemonSet will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                dnsConfig:
                                  description:
                                    DNSConfig allows customization of the
                                    DNS configuration for the calico-node pods.
                                  properties:
                                    nameservers:
                                      description: |-
                                        A list of DNS name server IP addresses.
                                        This will be appended to the base nameservers generated from DNSPolicy.
                                        Duplicated nameservers will be removed.
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    options:
                                      description: |-
                                        A list of DNS resolver options.
                                        This will be merged with the base options generated from DNSPolicy.
                                        Duplicated entries will be removed. Resolution options given in Options
                                        will override those that appear in the base DNSPolicy.
                                      items:
                                        description:
                                          PodDNSConfigOption defines DNS
                                          resolver options of a pod.
                                        properties:
                                          name:
                                            description: |-
                                              Name is this DNS resolver option's name.
                                              Required.
                                            type: string
                                          value:
                                            description:
                                              Value is this DNS resolver
                                              option's value.
                                            type: string
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    searches:
                                      description: |-
                                        A list of DNS search domains for host-name lookup.
                                        This will be appended to the base search paths generated from DNSPolicy.
                                        Duplicated search paths will be removed.
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                dnsPolicy:
                                  description:
                                    DNSPolicy is the DNS policy for the calico-node
                                    pods.
                                  enum:
                                    - ""
                                    - Default
                                    - ClusterFirst
                                    - ClusterFirstWithHostNet
                                    - None
                                  type: string
                                initContainers:
                                  description: |-
                                    InitContainers is a list of calico-node init containers.
                                    If specified, this overrides the specified calico-node DaemonSet init containers.
                                    If omitted, the calico-node DaemonSet will use its default values for its init containers.
                                  items:
                                    description:
                                      CalicoNodeDaemonSetInitContainer is
                                      a calico-node DaemonSet init container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the calico-node DaemonSet init container by name.
                                          Supported values are: install-cni, hostpath-init, flexvol-driver, ebpf-bootstrap, node-certs-key-cert-provisioner, calico-node-prometheus-server-tls-key-cert-provisioner, mount-bpffs (deprecated, replaced by ebpf-bootstrap)
                                        enum:
                                          - install-cni
                                          - hostpath-init
                                          - flexvol-driver
                                          - ebpf-bootstrap
                                          - node-certs-key-cert-provisioner
                                          - calico-node-prometheus-server-tls-key-cert-provisioner
                                          - mount-bpffs
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named calico-node DaemonSet init container's resources.
                                          If omitted, the calico-node DaemonSet will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the calico-node pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the calico-node DaemonSet nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the calico-node DaemonSet will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default calico-node DaemonSet nodeSelector.
                                  type: object
                                tolerations:
                                  description: |-
                                    Tolerations is the calico-node pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the calico-node DaemonSet.
                                    If omitted, the calico-node DaemonSet will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default calico-node DaemonSet tolerations.
                                  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
                          type: object
                      type: object
                  type: object
                calicoNodeWindowsDaemonSet:
                  description:
                    CalicoNodeWindowsDaemonSet configures the calico-node-windows
                    DaemonSet.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the DaemonSet.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description:
                        Spec is the specification of the calico-node-windows
                        DaemonSet.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created DaemonSet pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the calico-node-windows DaemonSet.
                            If omitted, the calico-node-windows DaemonSet will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        template:
                          description:
                            Template describes the calico-node-windows DaemonSet
                            pod that will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description:
                                Spec is the calico-node-windows DaemonSet's
                                PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the calico-node-windows pods.
                                    If specified, this overrides any affinity that may be set on the calico-node-windows DaemonSet.
                                    If omitted, the calico-node-windows DaemonSet will use its default value for affinity.
                                    WARNING: Please note that this field will override the default calico-node-windows DaemonSet affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of calico-node-windows containers.
                                    If specified, this overrides the specified calico-node-windows DaemonSet containers.
                                    If omitted, the calico-node-windows DaemonSet will use its default values for its containers.
                                  items:
                                    description:
                                      CalicoNodeWindowsDaemonSetContainer
                                      is a calico-node-windows DaemonSet container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the calico-node-windows DaemonSet container by name.
                                          Supported values are: calico-node-windows
                                        enum:
                                          - calico-node-windows
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named calico-node-windows DaemonSet container's resources.
                                          If omitted, the calico-node-windows DaemonSet will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                initContainers:
                                  description: |-
                                    InitContainers is a list of calico-node-windows init containers.
                                    If specified, this overrides the specified calico-node-windows DaemonSet init containers.
                                    If omitted, the calico-node-windows DaemonSet will use its default values for its init containers.
                                  items:
                                    description:
                                      CalicoNodeWindowsDaemonSetInitContainer
                                      is a calico-node-windows DaemonSet init container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the calico-node-windows DaemonSet init container by name.
                                          Supported values are: install-cni;hostpath-init, flexvol-driver, node-certs-key-cert-provisioner, calico-node-windows-prometheus-server-tls-key-cert-provisioner
                                        enum:
                                          - install-cni
                                          - hostpath-init
                                          - flexvol-driver
                                          - node-certs-key-cert-provisioner
                                          - calico-node-windows-prometheus-server-tls-key-cert-provisioner
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named calico-node-windows DaemonSet init container's resources.
                                          If omitted, the calico-node-windows DaemonSet will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the calico-node-windows pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the calico-node-windows DaemonSet nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the calico-node-windows DaemonSet will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default calico-node-windows DaemonSet nodeSelector.
                                  type: object
                                tolerations:
                                  description: |-
                                    Tolerations is the calico-node-windows pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the calico-node-windows DaemonSet.
                                    If omitted, the calico-node-windows DaemonSet will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default calico-node-windows DaemonSet tolerations.
                                  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
                          type: object
                      type: object
                  type: object
                calicoWindowsUpgradeDaemonSet:
                  description: |-
                    Deprecated. The CalicoWindowsUpgradeDaemonSet is deprecated and will be removed from the API in the future.
                    CalicoWindowsUpgradeDaemonSet configures the calico-windows-upgrade DaemonSet.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the Deployment.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description:
                        Spec is the specification of the calico-windows-upgrade
                        DaemonSet.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the calico-windows-upgrade DaemonSet.
                            If omitted, the calico-windows-upgrade DaemonSet will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        template:
                          description:
                            Template describes the calico-windows-upgrade
                            DaemonSet pod that will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description:
                                Spec is the calico-windows-upgrade DaemonSet's
                                PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the calico-windows-upgrade pods.
                                    If specified, this overrides any affinity that may be set on the calico-windows-upgrade DaemonSet.
                                    If omitted, the calico-windows-upgrade DaemonSet will use its default value for affinity.
                                    WARNING: Please note that this field will override the default calico-windows-upgrade DaemonSet affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of calico-windows-upgrade containers.
                                    If specified, this overrides the specified calico-windows-upgrade DaemonSet containers.
                                    If omitted, the calico-windows-upgrade DaemonSet will use its default values for its containers.
                                  items:
                                    description:
                                      CalicoWindowsUpgradeDaemonSetContainer
                                      is a calico-windows-upgrade DaemonSet container.
                                    properties:
                                      name:
                                        description:
                                          Name is an enum which identifies
                                          the calico-windows-upgrade DaemonSet container
                                          by name.
                                        enum:
                                          - calico-windows-upgrade
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named calico-windows-upgrade DaemonSet container's resources.
                                          If omitted, the calico-windows-upgrade DaemonSet will use its default value for this container's resources.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the calico-windows-upgrade pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the calico-windows-upgrade DaemonSet nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the calico-windows-upgrade DaemonSet will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default calico-windows-upgrade DaemonSet nodeSelector.
                                  type: object
                                tolerations:
                                  description: |-
                                    Tolerations is the calico-windows-upgrade pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the calico-windows-upgrade DaemonSet.
                                    If omitted, the calico-windows-upgrade DaemonSet will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default calico-windows-upgrade DaemonSet tolerations.
                                  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
                          type: object
                      type: object
                  type: object
                certificateManagement:
                  description: |-
                    CertificateManagement configures pods to submit a CertificateSigningRequest to the certificates.k8s.io/v1 API in order
                    to obtain TLS certificates. This feature requires that you bring your own CSR signing and approval process, otherwise
                    pods will be stuck during initialization.
                  properties:
                    caCert:
                      description:
                        Certificate of the authority that signs the CertificateSigningRequests
                        in PEM format.
                      format: byte
                      type: string
                    keyAlgorithm:
                      description: |-
                        Specify the algorithm used by pods to generate a key pair that is associated with the X.509 certificate request.
                        Default: RSAWithSize2048
                      enum:
                        - ""
                        - RSAWithSize2048
                        - RSAWithSize4096
                        - RSAWithSize8192
                        - ECDSAWithCurve256
                        - ECDSAWithCurve384
                        - ECDSAWithCurve521
                      type: string
                    signatureAlgorithm:
                      description: |-
                        Specify the algorithm used for the signature of the X.509 certificate request.
                        Default: SHA256WithRSA
                      enum:
                        - ""
                        - SHA256WithRSA
                        - SHA384WithRSA
                        - SHA512WithRSA
                        - ECDSAWithSHA256
                        - ECDSAWithSHA384
                        - ECDSAWithSHA512
                      type: string
                    signerName:
                      description: |-
                        When a CSR is issued to the certificates.k8s.io API, the signerName is added to the request in order to accommodate for clusters
                        with multiple signers.
                        Must be formatted as: `<my-domain>/<my-signername>`.
                      type: string
                  required:
                    - caCert
                    - signerName
                  type: object
                cni:
                  description: CNI specifies the CNI that will be used by this installation.
                  properties:
                    binDir:
                      description: |-
                        BinDir is the path to the CNI binaries directory.
                        If you have changed the installation directory for CNI binaries in the container runtime configuration,
                        please ensure that this field points to the same directory as specified in the container runtime settings.
                        Default directory depends on the KubernetesProvider.
                        * For KubernetesProvider GKE, this field defaults to "/home/kubernetes/bin".
                        * For KubernetesProvider OpenShift, this field defaults to "/var/lib/cni/bin".
                        * Otherwise, this field defaults to "/opt/cni/bin".
                      type: string
                    confDir:
                      description: |-
                        ConfDir is the path to the CNI config directory.
                        If you have changed the installation directory for CNI configuration in the container runtime configuration,
                        please ensure that this field points to the same directory as specified in the container runtime settings.
                        Default directory depends on the KubernetesProvider.
                        * For KubernetesProvider GKE, this field defaults to "/etc/cni/net.d".
                        * For KubernetesProvider OpenShift, this field defaults to "/var/run/multus/cni/net.d".
                        * Otherwise, this field defaults to "/etc/cni/net.d".
                      type: string
                    ipam:
                      description: |-
                        IPAM specifies the pod IP address management that will be used in the Calico or
                        Calico Enterprise installation.
                      properties:
                        type:
                          description: |-
                            Specifies the IPAM plugin that will be used in the Calico or Calico Enterprise installation.
                            * For CNI Plugin Calico, this field defaults to Calico.
                            * For CNI Plugin GKE, this field defaults to HostLocal.
                            * For CNI Plugin AzureVNET, this field defaults to AzureVNET.
                            * For CNI Plugin AmazonVPC, this field defaults to AmazonVPC.
                            The IPAM plugin is installed and configured only if the CNI plugin is set to Calico,
                            for all other values of the CNI plugin the plugin binaries and CNI config is a dependency
                            that is expected to be installed separately.
                            Default: Calico
                          enum:
                            - Calico
                            - HostLocal
                            - AmazonVPC
                            - AzureVNET
                          type: string
                      required:
                        - type
                      type: object
                    type:
                      description: |-
                        Specifies the CNI plugin that will be used in the Calico or Calico Enterprise installation.
                        * For KubernetesProvider GKE, this field defaults to GKE.
                        * For KubernetesProvider AKS, this field defaults to AzureVNET.
                        * For KubernetesProvider EKS, this field defaults to AmazonVPC.
                        * If aws-node daemonset exists in kube-system when the Installation resource is created, this field defaults to AmazonVPC.
                        * For all other cases this field defaults to Calico.
                        For the value Calico, the CNI plugin binaries and CNI config will be installed as part of deployment,
                        for all other values the CNI plugin binaries and CNI config is a dependency that is expected
                        to be installed separately.
                        Default: Calico
                      enum:
                        - Calico
                        - GKE
                        - AmazonVPC
                        - AzureVNET
                      type: string
                  required:
                    - type
                  type: object
                componentResources:
                  description: |-
                    Deprecated. Please use CalicoNodeDaemonSet, TyphaDeployment, and KubeControllersDeployment.
                    ComponentResources can be used to customize the resource requirements for each component.
                    Node, Typha, and KubeControllers are supported for installations.
                  items:
                    description: |-
                      Deprecated. Please use component resource config fields in Installation.Spec instead.
                      The ComponentResource struct associates a ResourceRequirements with a component by name
                    properties:
                      componentName:
                        description: ComponentName is an enum which identifies the component
                        enum:
                          - Node
                          - Typha
                          - KubeControllers
                        type: string
                      resourceRequirements:
                        description:
                          ResourceRequirements allows customization of limits
                          and requests for compute resources such as cpu and memory.
                        properties:
                          claims:
                            description: |-
                              Claims lists the names of resources, defined in spec.resourceClaims,
                              that are used by this container.
                              This is an alpha field and requires enabling the
                              DynamicResourceAllocation feature gate.
                              This field is immutable. It can only be set for containers.
                            items:
                              description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                              properties:
                                name:
                                  description: |-
                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                    the Pod where this field is used. It makes that resource available
                                    inside a container.
                                  type: string
                                request:
                                  description: |-
                                    Request is the name chosen for a request in the referenced claim.
                                    If empty, everything from the claim is made available, otherwise
                                    only the result of this request.
                                  type: string
                              required:
                                - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                              - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: |-
                              Limits describes the maximum amount of compute resources allowed.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: |-
                              Requests describes the minimum amount of compute resources required.
                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                            type: object
                        type: object
                    required:
                      - componentName
                      - resourceRequirements
                    type: object
                  type: array
                controlPlaneNodeSelector:
                  additionalProperties:
                    type: string
                  description: |-
                    ControlPlaneNodeSelector is used to select control plane nodes on which to run Calico
                    components. This is globally applied to all resources created by the operator excluding daemonsets.
                  type: object
                controlPlaneReplicas:
                  description: |-
                    ControlPlaneReplicas defines how many replicas of the control plane core components will be deployed.
                    This field applies to all control plane components that support High Availability. Defaults to 2.
                  format: int32
                  type: integer
                controlPlaneTolerations:
                  description: |-
                    ControlPlaneTolerations specify tolerations which are then globally applied to all resources
                    created by the operator.
                  items:
                    description: |-
                      The pod this Toleration is attached to tolerates any taint that matches
                      the triple <key,value,effect> using the matching operator <operator>.
                    properties:
                      effect:
                        description: |-
                          Effect indicates the taint effect to match. Empty means match all taint effects.
                          When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                        type: string
                      key:
                        description: |-
                          Key is the taint key that the toleration applies to. Empty means match all taint keys.
                          If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                        type: string
                      operator:
                        description: |-
                          Operator represents a key's relationship to the value.
                          Valid operators are Exists and Equal. Defaults to Equal.
                          Exists is equivalent to wildcard for value, so that a pod can
                          tolerate all taints of a particular category.
                        type: string
                      tolerationSeconds:
                        description: |-
                          TolerationSeconds represents the period of time the toleration (which must be
                          of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
                          it is not set, which means tolerate the taint forever (do not evict). Zero and
                          negative values will be treated as 0 (evict immediately) by the system.
                        format: int64
                        type: integer
                      value:
                        description: |-
                          Value is the taint value the toleration matches to.
                          If the operator is Exists, the value should be empty, otherwise just a regular string.
                        type: string
                    type: object
                  type: array
                csiNodeDriverDaemonSet:
                  description:
                    CSINodeDriverDaemonSet configures the csi-node-driver
                    DaemonSet.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the DaemonSet.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description:
                        Spec is the specification of the csi-node-driver
                        DaemonSet.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created DaemonSet pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the csi-node-driver DaemonSet.
                            If omitted, the csi-node-driver DaemonSet will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        template:
                          description:
                            Template describes the csi-node-driver DaemonSet
                            pod that will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: Spec is the csi-node-driver DaemonSet's PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the csi-node-driver pods.
                                    If specified, this overrides any affinity that may be set on the csi-node-driver DaemonSet.
                                    If omitted, the csi-node-driver DaemonSet will use its default value for affinity.
                                    WARNING: Please note that this field will override the default csi-node-driver DaemonSet affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of csi-node-driver containers.
                                    If specified, this overrides the specified csi-node-driver DaemonSet containers.
                                    If omitted, the csi-node-driver DaemonSet will use its default values for its containers.
                                  items:
                                    description:
                                      CSINodeDriverDaemonSetContainer is
                                      a csi-node-driver DaemonSet container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the csi-node-driver DaemonSet container by name.
                                          Supported values are: calico-csi, csi-node-driver-registrar.
                                        enum:
                                          - calico-csi
                                          - csi-node-driver-registrar
                                          - csi-node-driver
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named csi-node-driver DaemonSet container's resources.
                                          If omitted, the csi-node-driver DaemonSet will use its default value for this container's resources.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the csi-node-driver pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the csi-node-driver DaemonSet nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the csi-node-driver DaemonSet will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default csi-node-driver DaemonSet nodeSelector.
                                  type: object
                                tolerations:
                                  description: |-
                                    Tolerations is the csi-node-driver pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the csi-node-driver DaemonSet.
                                    If omitted, the csi-node-driver DaemonSet will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default csi-node-driver DaemonSet tolerations.
                                  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
                          type: object
                      type: object
                  type: object
                fipsMode:
                  description: |-
                    FIPSMode uses images and features only that are using FIPS 140-2 validated cryptographic modules and standards.
                    Only supported for Variant=Calico.
                    Default: Disabled
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                flexVolumePath:
                  description: |-
                    FlexVolumePath optionally specifies a custom path for FlexVolume. If not specified, FlexVolume will be
                    enabled by default. If set to 'None', FlexVolume will be disabled. The default is based on the
                    kubernetesProvider.
                  type: string
                imagePath:
                  description: |-
                    ImagePath allows for the path part of an image to be specified. If specified
                    then the specified value will be used as the image path for each image. If not specified
                    or empty, the default for each image will be used.
                    A special case value, UseDefault, is supported to explicitly specify the default
                    image path will be used for each image.
                    Image format:
                       `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
                    This option allows configuring the `<imagePath>` portion of the above format.
                  type: string
                imagePrefix:
                  description: |-
                    ImagePrefix allows for the prefix part of an image to be specified. If specified
                    then the given value will be used as a prefix on each image. If not specified
                    or empty, no prefix will be used.
                    A special case value, UseDefault, is supported to explicitly specify the default
                    image prefix will be used for each image.
                    Image format:
                       `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
                    This option allows configuring the `<imagePrefix>` portion of the above format.
                  type: string
                imagePullSecrets:
                  description: |-
                    ImagePullSecrets is an array of references to container registry pull secrets to use. These are
                    applied to all images to be pulled.
                  items:
                    description: |-
                      LocalObjectReference contains enough information to let you locate the
                      referenced object inside the same namespace.
                    properties:
                      name:
                        default: ""
                        description: |-
                          Name of the referent.
                          This field is effectively required, but due to backwards compatibility is
                          allowed to be empty. Instances of this type with an empty value here are
                          almost certainly wrong.
                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  type: array
                kubeletVolumePluginPath:
                  description: |-
                    KubeletVolumePluginPath optionally specifies enablement of Calico CSI plugin. If not specified,
                    CSI will be enabled by default. If set to 'None', CSI will be disabled.
                    Default: /var/lib/kubelet
                  type: string
                kubernetesProvider:
                  description: |-
                    KubernetesProvider specifies a particular provider of the Kubernetes platform and enables provider-specific configuration.
                    If the specified value is empty, the Operator will attempt to automatically determine the current provider.
                    If the specified value is not empty, the Operator will still attempt auto-detection, but
                    will additionally compare the auto-detected value to the specified value to confirm they match.
                  enum:
                    - ""
                    - EKS
                    - GKE
                    - AKS
                    - OpenShift
                    - DockerEnterprise
                    - RKE2
                    - TKG
                    - Kind
                  type: string
                logging:
                  description: Logging Configuration for Components
                  properties:
                    cni:
                      description: Customized logging specification for calico-cni plugin
                      properties:
                        logFileMaxAgeDays:
                          description: "Default: 30 (days)"
                          format: int32
                          type: integer
                        logFileMaxCount:
                          description: "Default: 10"
                          format: int32
                          type: integer
                        logFileMaxSize:
                          anyOf:
                            - type: integer
                            - type: string
                          description: "Default: 100Mi"
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        logSeverity:
                          description: "Default: Info"
                          enum:
                            - Error
                            - Warning
                            - Info
                            - Debug
                          type: string
                      type: object
                  type: object
                nodeMetricsPort:
                  description: |-
                    NodeMetricsPort specifies which port calico/node serves prometheus metrics on. By default, metrics are not enabled.
                    If specified, this overrides any FelixConfiguration resources which may exist. If omitted, then
                    prometheus metrics may still be configured through FelixConfiguration.
                  format: int32
                  type: integer
                nodeUpdateStrategy:
                  description: |-
                    NodeUpdateStrategy can be used to customize the desired update strategy, such as the MaxUnavailable
                    field.
                  properties:
                    rollingUpdate:
                      description:
                        Rolling update config params. Present only if type
                        = "RollingUpdate".
                      properties:
                        maxSurge:
                          anyOf:
                            - type: integer
                            - type: string
                          description: |-
                            The maximum number of nodes with an existing available DaemonSet pod that
                            can have an updated DaemonSet pod during during an update.
                            Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                            This can not be 0 if MaxUnavailable is 0.
                            Absolute number is calculated from percentage by rounding up to a minimum of 1.
                            Default value is 0.
                            Example: when this is set to 30%, at most 30% of the total number of nodes
                            that should be running the daemon pod (i.e. status.desiredNumberScheduled)
                            can have their a new pod created before the old pod is marked as deleted.
                            The update starts by launching new pods on 30% of nodes. Once an updated
                            pod is available (Ready for at least minReadySeconds) the old DaemonSet pod
                            on that node is marked deleted. If the old pod becomes unavailable for any
                            reason (Ready transitions to false, is evicted, or is drained) an updated
                            pod is immediatedly created on that node without considering surge limits.
                            Allowing surge implies the possibility that the resources consumed by the
                            daemonset on any given node can double if the readiness check fails, and
                            so resource intensive daemonsets should take into account that they may
                            cause evictions during disruption.
                          x-kubernetes-int-or-string: true
                        maxUnavailable:
                          anyOf:
                            - type: integer
                            - type: string
                          description: |-
                            The maximum number of DaemonSet pods that can be unavailable during the
                            update. Value can be an absolute number (ex: 5) or a percentage of total
                            number of DaemonSet pods at the start of the update (ex: 10%). Absolute
                            number is calculated from percentage by rounding up.
                            This cannot be 0 if MaxSurge is 0
                            Default value is 1.
                            Example: when this is set to 30%, at most 30% of the total number of nodes
                            that should be running the daemon pod (i.e. status.desiredNumberScheduled)
                            can have their pods stopped for an update at any given time. The update
                            starts by stopping at most 30% of those DaemonSet pods and then brings
                            up new DaemonSet pods in their place. Once the new pods are available,
                            it then proceeds onto other DaemonSet pods, thus ensuring that at least
                            70% of original number of DaemonSet pods are available at all times during
                            the update.
                          x-kubernetes-int-or-string: true
                      type: object
                    type:
                      description:
                        Type of daemon set update. Can be "RollingUpdate"
                        or "OnDelete". Default is RollingUpdate.
                      type: string
                  type: object
                nonPrivileged:
                  description:
                    NonPrivileged configures Calico to be run in non-privileged
                    containers as non-root users where possible.
                  type: string
                proxy:
                  description: |-
                    Proxy is used to configure the HTTP(S) proxy settings that will be applied to Tigera containers that connect
                    to destinations outside the cluster. It is expected that NO_PROXY is configured such that destinations within
                    the cluster (including the API server) are exempt from proxying.
                  properties:
                    httpProxy:
                      description: |-
                        HTTPProxy defines the value of the HTTP_PROXY environment variable that will be set on Tigera containers that connect to
                        destinations outside the cluster.
                      type: string
                    httpsProxy:
                      description: |-
                        HTTPSProxy defines the value of the HTTPS_PROXY environment variable that will be set on Tigera containers that connect to
                        destinations outside the cluster.
                      type: string
                    noProxy:
                      description: |-
                        NoProxy defines the value of the NO_PROXY environment variable that will be set on Tigera containers that connect to
                        destinations outside the cluster. This value must be set such that destinations within the scope of the cluster, including
                        the Kubernetes API server, are exempt from being proxied.
                      type: string
                  type: object
                registry:
                  description: |-
                    Registry is the default Docker registry used for component Docker images.
                    If specified then the given value must end with a slash character (`/`) and all images will be pulled from this registry.
                    If not specified then the default registries will be used. A special case value, UseDefault, is
                    supported to explicitly specify the default registries will be used.
                    Image format:
                       `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
                    This option allows configuring the `<registry>` portion of the above format.
                  type: string
                serviceCIDRs:
                  description:
                    Kubernetes Service CIDRs. Specifying this is required
                    when using Calico for Windows.
                  items:
                    type: string
                  type: array
                tlsCipherSuites:
                  description:
                    TLSCipherSuites defines the cipher suite list that the
                    TLS protocol should use during secure communication.
                  items:
                    properties:
                      name:
                        description: This should be a valid TLS cipher suite name.
                        enum:
                          - TLS_AES_256_GCM_SHA384
                          - TLS_CHACHA20_POLY1305_SHA256
                          - TLS_AES_128_GCM_SHA256
                          - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
                          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
                          - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
                          - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
                          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
                          - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
                          - TLS_RSA_WITH_AES_256_GCM_SHA384
                          - TLS_RSA_WITH_AES_128_GCM_SHA256
                          - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
                          - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
                          - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
                        type: string
                    type: object
                  type: array
                typhaAffinity:
                  description: |-
                    Deprecated. Please use Installation.Spec.TyphaDeployment instead.
                    TyphaAffinity allows configuration of node affinity characteristics for Typha pods.
                  properties:
                    nodeAffinity:
                      description:
                        NodeAffinity describes node affinity scheduling rules
                        for typha.
                      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.
                          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
                                          x-kubernetes-list-type: atomic
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  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
                                          x-kubernetes-list-type: atomic
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                                x-kubernetes-map-type: atomic
                              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: |-
                            WARNING: Please note that if the affinity requirements specified by this field are not met at
                            scheduling time, the pod will NOT be scheduled onto the node.
                            There is no fallback to another affinity rules with this setting.
                            This may cause networking disruption or even catastrophic failure!
                            PreferredDuringSchedulingIgnoredDuringExecution should be used for affinity
                            unless there is a specific well understood reason to use RequiredDuringSchedulingIgnoredDuringExecution and
                            you can guarantee that the RequiredDuringSchedulingIgnoredDuringExecution will always have sufficient nodes to satisfy the requirement.
                            NOTE: RequiredDuringSchedulingIgnoredDuringExecution is set by default for AKS nodes,
                            to avoid scheduling Typhas on virtual-nodes.
                            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
                                          x-kubernetes-list-type: atomic
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  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
                                          x-kubernetes-list-type: atomic
                                      required:
                                        - key
                                        - operator
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                                x-kubernetes-map-type: atomic
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                            - nodeSelectorTerms
                          type: object
                          x-kubernetes-map-type: atomic
                      type: object
                  type: object
                typhaDeployment:
                  description: |-
                    TyphaDeployment configures the typha Deployment. If used in conjunction with the deprecated
                    ComponentResources or TyphaAffinity, then these overrides take precedence.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the Deployment.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description: Spec is the specification of the typha Deployment.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the typha Deployment.
                            If omitted, the typha Deployment will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        strategy:
                          description:
                            The deployment strategy to use to replace existing
                            pods with new ones.
                          properties:
                            rollingUpdate:
                              description: |-
                                Rolling update config params. Present only if DeploymentStrategyType =
                                RollingUpdate.
                                to be.
                              properties:
                                maxSurge:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: |-
                                    The maximum number of pods that can be scheduled above the desired number of
                                    pods.
                                    Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                    This can not be 0 if MaxUnavailable is 0.
                                    Absolute number is calculated from percentage by rounding up.
                                    Defaults to 25%.
                                    Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
                                    the rolling update starts, such that the total number of old and new pods do not exceed
                                    130% of desired pods. Once old pods have been killed,
                                    new ReplicaSet can be scaled up further, ensuring that total number of pods running
                                    at any time during the update is at most 130% of desired pods.
                                  x-kubernetes-int-or-string: true
                                maxUnavailable:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: |-
                                    The maximum number of pods that can be unavailable during the update.
                                    Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                    Absolute number is calculated from percentage by rounding down.
                                    This can not be 0 if MaxSurge is 0.
                                    Defaults to 25%.
                                    Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
                                    immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
                                    can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
                                    that the total number of pods available at all times during the update is at
                                    least 70% of desired pods.
                                  x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        template:
                          description:
                            Template describes the typha Deployment pod that
                            will be created.
                          properties:
                            metadata:
                              description: |-
                                Metadata is a subset of a Kubernetes object's metadata that is added to
                                the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: Spec is the typha Deployment's PodSpec.
                              properties:
                                affinity:
                                  description: |-
                                    Affinity is a group of affinity scheduling rules for the typha pods.
                                    If specified, this overrides any affinity that may be set on the typha Deployment.
                                    If omitted, the typha Deployment will use its default value for affinity.
                                    If used in conjunction with the deprecated TyphaAffinity, then this value takes precedence.
                                    WARNING: Please note that this field will override the default calico-typha Deployment affinity.
                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of typha containers.
                                    If specified, this overrides the specified typha Deployment containers.
                                    If omitted, the typha Deployment will use its default values for its containers.
                                  items:
                                    description:
                                      TyphaDeploymentContainer is a typha
                                      Deployment container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the typha Deployment container by name.
                                          Supported values are: calico-typha
                                        enum:
                                          - calico-typha
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named typha Deployment container's resources.
                                          If omitted, the typha Deployment will use its default value for this container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                initContainers:
                                  description: |-
                                    InitContainers is a list of typha init containers.
                                    If specified, this overrides the specified typha Deployment init containers.
                                    If omitted, the typha Deployment will use its default values for its init containers.
                                  items:
                                    description:
                                      TyphaDeploymentInitContainer is a typha
                                      Deployment init container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the typha Deployment init container by name.
                                          Supported values are: typha-certs-key-cert-provisioner
                                        enum:
                                          - typha-certs-key-cert-provisioner
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named typha Deployment init container's resources.
                                          If omitted, the typha Deployment will use its default value for this init container's resources.
                                          If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    NodeSelector is the calico-typha pod's scheduling constraints.
                                    If specified, each of the key/value pairs are added to the calico-typha Deployment nodeSelector provided
                                    the key does not already exist in the object's nodeSelector.
                                    If omitted, the calico-typha Deployment will use its default value for nodeSelector.
                                    WARNING: Please note that this field will modify the default calico-typha Deployment nodeSelector.
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: |-
                                    Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
                                    Value must be non-negative integer. The value zero indicates stop immediately via
                                    the kill signal (no opportunity to shut down).
                                    If this value is nil, the default grace period will be used instead.
                                    The grace period is the duration in seconds after the processes running in the pod are sent
                                    a termination signal and the time when the processes are forcibly halted with a kill signal.
                                    Set this value longer than the expected cleanup time for your process.
                                    Defaults to 30 seconds.
                                  format: int64
                                  type: integer
                                tolerations:
                                  description: |-
                                    Tolerations is the typha pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the typha Deployment.
                                    If omitted, the typha Deployment will use its default value for tolerations.
                                    WARNING: Please note that this field will override the default calico-typha Deployment tolerations.
                                  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
                                topologySpreadConstraints:
                                  description: |-
                                    TopologySpreadConstraints describes how a group of pods ought to spread across topology
                                    domains. Scheduler will schedule pods in a way which abides by the constraints.
                                    All topologySpreadConstraints are ANDed.
                                  items:
                                    description:
                                      TopologySpreadConstraint specifies
                                      how to spread matching pods among the given topology.
                                    properties:
                                      labelSelector:
                                        description: |-
                                          LabelSelector is used to find matching pods.
                                          Pods that match this label selector are counted to determine the number of pods
                                          in their corresponding topology domain.
                                        properties:
                                          matchExpressions:
                                            description:
                                              matchExpressions is a list
                                              of label selector requirements. The requirements
                                              are ANDed.
                                            items:
                                              description: |-
                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                relates the key and values.
                                              properties:
                                                key:
                                                  description:
                                                    key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    operator represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: |-
                                                    values is an array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. This array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: |-
                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: |-
                                          MatchLabelKeys is a set of pod label keys to select the pods over which
                                          spreading will be calculated. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are ANDed with labelSelector
                                          to select the group of existing pods over which spreading will be calculated
                                          for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                          MatchLabelKeys cannot be set when LabelSelector isn't set.
                                          Keys that don't exist in the incoming pod labels will
                                          be ignored. A null or empty list means only match against labelSelector.
                                          This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      maxSkew:
                                        description: |-
                                          MaxSkew describes the degree to which pods may be unevenly distributed.
                                          When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                          between the number of matching pods in the target topology and the global minimum.
                                          The global minimum is the minimum number of matching pods in an eligible domain
                                          or zero if the number of eligible domains is less than MinDomains.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 2/2/1:
                                          In this case, the global minimum is 1.
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |   P   |
                                          - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                          scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                          violate MaxSkew(1).
                                          - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                          When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                          to topologies that satisfy it.
                                          It's a required field. Default value is 1 and 0 is not allowed.
                                        format: int32
                                        type: integer
                                      minDomains:
                                        description: |-
                                          MinDomains indicates a minimum number of eligible domains.
                                          When the number of eligible domains with matching topology keys is less than minDomains,
                                          Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                          And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                          this value has no effect on scheduling.
                                          As a result, when the number of eligible domains is less than minDomains,
                                          scheduler won't schedule more than maxSkew Pods to those domains.
                                          If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                          Valid values are integers greater than 0.
                                          When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                          For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                          labelSelector spread as 2/2/2:
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |  P P  |
                                          The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                          In this situation, new pod with the same labelSelector cannot be scheduled,
                                          because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                          it will violate MaxSkew.
                                        format: int32
                                        type: integer
                                      nodeAffinityPolicy:
                                        description: |-
                                          NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                          when calculating pod topology spread skew. Options are:
                                          - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                          - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                          If this value is nil, the behavior is equivalent to the Honor policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      nodeTaintsPolicy:
                                        description: |-
                                          NodeTaintsPolicy indicates how we will treat node taints when calculating
                                          pod topology spread skew. Options are:
                                          - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                          has a toleration, are included.
                                          - Ignore: node taints are ignored. All nodes are included.
                                          If this value is nil, the behavior is equivalent to the Ignore policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      topologyKey:
                                        description: |-
                                          TopologyKey is the key of node labels. Nodes that have a label with this key
                                          and identical values are considered to be in the same topology.
                                          We consider each <key, value> as a "bucket", and try to put balanced number
                                          of pods into each bucket.
                                          We define a domain as a particular instance of a topology.
                                          Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                          nodeAffinityPolicy and nodeTaintsPolicy.
                                          e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                          And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                          It's a required field.
                                        type: string
                                      whenUnsatisfiable:
                                        description: |-
                                          WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                          the spread constraint.
                                          - DoNotSchedule (default) tells the scheduler not to schedule it.
                                          - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                            but giving higher precedence to topologies that would help reduce the
                                            skew.
                                          A constraint is considered "Unsatisfiable" for an incoming pod
                                          if and only if every possible node assignment for that pod would violate
                                          "MaxSkew" on some topology.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 3/1/1:
                                          | zone1 | zone2 | zone3 |
                                          | P P P |   P   |   P   |
                                          If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                          to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                          MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                          won't make it *more* imbalanced.
                                          It's a required field.
                                        type: string
                                    required:
                                      - maxSkew
                                      - topologyKey
                                      - whenUnsatisfiable
                                    type: object
                                  type: array
                              type: object
                          type: object
                      type: object
                  type: object
                typhaMetricsPort:
                  description:
                    TyphaMetricsPort specifies which port calico/typha serves
                    prometheus metrics on. By default, metrics are not enabled.
                  format: int32
                  type: integer
                variant:
                  description: |-
                    Variant is the product to install - one of Calico or TigeraSecureEnterprise
                    Default: Calico
                  enum:
                    - Calico
                    - TigeraSecureEnterprise
                  type: string
                windowsNodes:
                  description: Windows Configuration
                  properties:
                    cniBinDir:
                      description: |-
                        CNIBinDir is the path to the CNI binaries directory on Windows, it must match what is used as 'bin_dir' under
                        [plugins]
                          [plugins."io.containerd.grpc.v1.cri"]
                            [plugins."io.containerd.grpc.v1.cri".cni]
                        on the containerd 'config.toml' file on the Windows nodes.
                      type: string
                    cniConfigDir:
                      description: |-
                        CNIConfigDir is the path to the CNI configuration directory on Windows, it must match what is used as 'conf_dir' under
                        [plugins]
                          [plugins."io.containerd.grpc.v1.cri"]
                            [plugins."io.containerd.grpc.v1.cri".cni]
                        on the containerd 'config.toml' file on the Windows nodes.
                      type: string
                    cniLogDir:
                      description:
                        CNILogDir is the path to the Calico CNI logs directory
                        on Windows.
                      type: string
                    vxlanAdapter:
                      description:
                        VXLANAdapter is the Network Adapter used for VXLAN,
                        leave blank for primary NIC
                      type: string
                    vxlanMACPrefix:
                      description:
                        VXLANMACPrefix is the prefix used when generating
                        MAC addresses for virtual NICs
                      pattern: ^[0-9A-Fa-f]{2}-[0-9A-Fa-f]{2}$
                      type: string
                  type: object
              type: object
            status:
              description:
                Most recently observed state for the Calico or Calico Enterprise
                installation.
              properties:
                calicoVersion:
                  description: |-
                    CalicoVersion shows the current running version of calico.
                    CalicoVersion along with Variant is needed to know the exact
                    version deployed.
                  type: string
                computed:
                  description:
                    Computed is the final installation including overlaid
                    resources.
                  properties:
                    azure:
                      description:
                        Azure is used to configure azure provider specific
                        options.
                      properties:
                        policyMode:
                          default: Default
                          description: |-
                            PolicyMode determines whether the "control-plane" label is applied to namespaces. It offers two options: Default and Manual.
                            The Default option adds the "control-plane" label to the required namespaces.
                            The Manual option does not apply the "control-plane" label to any namespace.
                            Default: Default
                          enum:
                            - Default
                            - Manual
                          type: string
                      type: object
                    calicoKubeControllersDeployment:
                      description: |-
                        CalicoKubeControllersDeployment configures the calico-kube-controllers Deployment. If used in
                        conjunction with the deprecated ComponentResources, then these overrides take precedence.
                      properties:
                        metadata:
                          description:
                            Metadata is a subset of a Kubernetes object's
                            metadata that is added to the Deployment.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: |-
                                Annotations is a map of arbitrary non-identifying metadata. Each of these
                                key/value pairs are added to the object's annotations provided the key does not
                                already exist in the object's annotations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: |-
                                Labels is a map of string keys and values that may match replicaset and
                                service selectors. Each of these key/value pairs are added to the
                                object's labels provided the key does not already exist in the object's labels.
                              type: object
                          type: object
                        spec:
                          description:
                            Spec is the specification of the calico-kube-controllers
                            Deployment.
                          properties:
                            minReadySeconds:
                              description: |-
                                MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                                be ready without any of its container crashing, for it to be considered available.
                                If specified, this overrides any minReadySeconds value that may be set on the calico-kube-controllers Deployment.
                                If omitted, the calico-kube-controllers Deployment will use its default value for minReadySeconds.
                              format: int32
                              maximum: 2147483647
                              minimum: 0
                              type: integer
                            template:
                              description:
                                Template describes the calico-kube-controllers
                                Deployment pod that will be created.
                              properties:
                                metadata:
                                  description: |-
                                    Metadata is a subset of a Kubernetes object's metadata that is added to
                                    the pod's metadata.
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Annotations is a map of arbitrary non-identifying metadata. Each of these
                                        key/value pairs are added to the object's annotations provided the key does not
                                        already exist in the object's annotations.
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Labels is a map of string keys and values that may match replicaset and
                                        service selectors. Each of these key/value pairs are added to the
                                        object's labels provided the key does not already exist in the object's labels.
                                      type: object
                                  type: object
                                spec:
                                  description:
                                    Spec is the calico-kube-controllers Deployment's
                                    PodSpec.
                                  properties:
                                    affinity:
                                      description: |-
                                        Affinity is a group of affinity scheduling rules for the calico-kube-controllers pods.
                                        If specified, this overrides any affinity that may be set on the calico-kube-controllers Deployment.
                                        If omitted, the calico-kube-controllers Deployment will use its default value for affinity.
                                        WARNING: Please note that this field will override the default calico-kube-controllers Deployment affinity.
                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                            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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - nodeSelectorTerms
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          type: object
                                      type: object
                                    containers:
                                      description: |-
                                        Containers is a list of calico-kube-controllers containers.
                                        If specified, this overrides the specified calico-kube-controllers Deployment containers.
                                        If omitted, the calico-kube-controllers Deployment will use its default values for its containers.
                                      items:
                                        description:
                                          CalicoKubeControllersDeploymentContainer
                                          is a calico-kube-controllers Deployment container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the calico-kube-controllers Deployment container by name.
                                              Supported values are: calico-kube-controllers, es-calico-kube-controllers
                                            enum:
                                              - calico-kube-controllers
                                              - es-calico-kube-controllers
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named calico-kube-controllers Deployment container's resources.
                                              If omitted, the calico-kube-controllers Deployment will use its default value for this container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    nodeSelector:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        NodeSelector is the calico-kube-controllers pod's scheduling constraints.
                                        If specified, each of the key/value pairs are added to the calico-kube-controllers Deployment nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If used in conjunction with ControlPlaneNodeSelector, that nodeSelector is set on the calico-kube-controllers Deployment
                                        and each of this field's key/value pairs are added to the calico-kube-controllers Deployment nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If omitted, the calico-kube-controllers Deployment will use its default value for nodeSelector.
                                        WARNING: Please note that this field will modify the default calico-kube-controllers Deployment nodeSelector.
                                      type: object
                                    tolerations:
                                      description: |-
                                        Tolerations is the calico-kube-controllers pod's tolerations.
                                        If specified, this overrides any tolerations that may be set on the calico-kube-controllers Deployment.
                                        If omitted, the calico-kube-controllers Deployment will use its default value for tolerations.
                                        WARNING: Please note that this field will override the default calico-kube-controllers Deployment tolerations.
                                      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
                              type: object
                          type: object
                      type: object
                    calicoNetwork:
                      description:
                        CalicoNetwork specifies networking configuration
                        options for Calico.
                      properties:
                        bgp:
                          description:
                            BGP configures whether or not to enable Calico's
                            BGP capabilities.
                          enum:
                            - Enabled
                            - Disabled
                          type: string
                        bpfNetworkBootstrap:
                          description: |-
                            BPFNetworkBootstrap manages the initial networking setup required to configure the BPF dataplane.
                            When enabled, the operator tries to bootstraps access to the Kubernetes API Server
                            by using the Kubernetes service and its associated endpoints.
                            This field should be enabled only if linuxDataplane is set to "BPF".
                            If another dataplane is selected, this field must be omitted or explicitly set to Disabled.
                            When disabled and linuxDataplane is BPF, you must manually provide the Kubernetes API Server
                            information via the "kubernetes-service-endpoint" ConfigMap. It is invalid to use both the ConfigMap
                            and have this field set to true at the same time.
                            Default: Disabled
                          enum:
                            - Disabled
                            - Enabled
                          type: string
                        containerIPForwarding:
                          description: |-
                            ContainerIPForwarding configures whether ip forwarding will be enabled for containers in the CNI configuration.
                            Default: Disabled
                          enum:
                            - Enabled
                            - Disabled
                          type: string
                        hostPorts:
                          description: |-
                            HostPorts configures whether or not Calico will support Kubernetes HostPorts. Valid only when using the Calico CNI plugin.
                            Default: Enabled
                          enum:
                            - Enabled
                            - Disabled
                          type: string
                        ipPools:
                          description: |-
                            IPPools contains a list of IP pools to manage. If nil, a single IPv4 IP pool
                            will be created by the operator. If an empty list is provided, the operator will not create any IP pools and will instead
                            wait for IP pools to be created out-of-band.
                            IP pools in this list will be reconciled by the operator and should not be modified out-of-band.
                          items:
                            properties:
                              allowedUses:
                                description: |-
                                  AllowedUse controls what the IP pool will be used for.  If not specified or empty, defaults to
                                  ["Tunnel", "Workload"] for back-compatibility
                                items:
                                  type: string
                                type: array
                              assignmentMode:
                                description:
                                  AssignmentMode determines if IP addresses
                                  from this pool should be  assigned automatically or
                                  on request only
                                type: string
                              blockSize:
                                description: |-
                                  BlockSize specifies the CIDR prefex length to use when allocating per-node IP blocks from
                                  the main IP pool CIDR.
                                  Default: 26 (IPv4), 122 (IPv6)
                                format: int32
                                type: integer
                              cidr:
                                description:
                                  CIDR contains the address range for the
                                  IP Pool in classless inter-domain routing format.
                                type: string
                              disableBGPExport:
                                default: false
                                description: |-
                                  DisableBGPExport specifies whether routes from this IP pool's CIDR are exported over BGP.
                                  Default: false
                                type: boolean
                              disableNewAllocations:
                                description: |-
                                  DisableNewAllocations specifies whether or not new IP allocations are allowed from this pool.
                                  This is useful when you want to prevent new pods from receiving IP addresses from this pool, without
                                  impacting any existing pods that have already been assigned addresses from this pool.
                                type: boolean
                              encapsulation:
                                description: |-
                                  Encapsulation specifies the encapsulation type that will be used with
                                  the IP Pool.
                                  Default: IPIP
                                enum:
                                  - IPIPCrossSubnet
                                  - IPIP
                                  - VXLAN
                                  - VXLANCrossSubnet
                                  - None
                                type: string
                              name:
                                description:
                                  Name is the name of the IP pool. If omitted,
                                  this will be generated.
                                type: string
                              natOutgoing:
                                description: |-
                                  NATOutgoing specifies if NAT will be enabled or disabled for outgoing traffic.
                                  Default: Enabled
                                enum:
                                  - Enabled
                                  - Disabled
                                type: string
                              nodeSelector:
                                description: |-
                                  NodeSelector specifies the node selector that will be set for the IP Pool.
                                  Default: 'all()'
                                type: string
                            required:
                              - cidr
                            type: object
                          maxItems: 25
                          type: array
                        kubeProxyManagement:
                          description: |-
                            KubeProxyManagement controls whether the operator manages the kube-proxy DaemonSet.
                            When enabled, the operator will manage the DaemonSet by patching it:
                            it disables kube-proxy if the dataplane is BPF, or enables it otherwise.
                            Default: Disabled
                          enum:
                            - Disabled
                            - Enabled
                          type: string
                        linuxDataplane:
                          description: |-
                            LinuxDataplane is used to select the dataplane used for Linux nodes. In particular, it
                            causes the operator to add required mounts and environment variables for the particular dataplane.
                            If not specified, iptables mode is used.
                            Default: Iptables
                          enum:
                            - Iptables
                            - BPF
                            - VPP
                            - Nftables
                          type: string
                        linuxPolicySetupTimeoutSeconds:
                          description: |-
                            LinuxPolicySetupTimeoutSeconds delays new pods from running containers
                            until their policy has been programmed in the dataplane.
                            The specified delay defines the maximum amount of time
                            that the Calico CNI plugin will wait for policy to be programmed.
                            Only applies to pods created on Linux nodes.
                            * A value of 0 disables pod startup delays.
                            Default: 0
                          format: int32
                          type: integer
                        mtu:
                          description: |-
                            MTU specifies the maximum transmission unit to use on the pod network.
                            If not specified, Calico will perform MTU auto-detection based on the cluster network.
                          format: int32
                          type: integer
                        multiInterfaceMode:
                          description: |-
                            MultiInterfaceMode configures what will configure multiple interface per pod. Only valid for Calico Enterprise installations
                            using the Calico CNI plugin.
                            Default: None
                          enum:
                            - None
                            - Multus
                          type: string
                        nodeAddressAutodetectionV4:
                          description: |-
                            NodeAddressAutodetectionV4 specifies an approach to automatically detect node IPv4 addresses. If not specified,
                            will use default auto-detection settings to acquire an IPv4 address for each node.
                          properties:
                            canReach:
                              description: |-
                                CanReach enables IP auto-detection based on which source address on the node is used to reach the
                                specified IP or domain.
                              type: string
                            cidrs:
                              description: |-
                                CIDRS enables IP auto-detection based on which addresses on the nodes are within
                                one of the provided CIDRs.
                              items:
                                type: string
                              type: array
                            firstFound:
                              description: |-
                                FirstFound uses default interface matching parameters to select an interface, performing best-effort
                                filtering based on well-known interface names.
                              type: boolean
                            interface:
                              description:
                                Interface enables IP auto-detection based
                                on interfaces that match the given regex.
                              type: string
                            kubernetes:
                              description:
                                Kubernetes configures Calico to detect node
                                addresses based on the Kubernetes API.
                              enum:
                                - NodeInternalIP
                              type: string
                            skipInterface:
                              description: |-
                                SkipInterface enables IP auto-detection based on interfaces that do not match
                                the given regex.
                              type: string
                          type: object
                        nodeAddressAutodetectionV6:
                          description: |-
                            NodeAddressAutodetectionV6 specifies an approach to automatically detect node IPv6 addresses. If not specified,
                            IPv6 addresses will not be auto-detected.
                          properties:
                            canReach:
                              description: |-
                                CanReach enables IP auto-detection based on which source address on the node is used to reach the
                                specified IP or domain.
                              type: string
                            cidrs:
                              description: |-
                                CIDRS enables IP auto-detection based on which addresses on the nodes are within
                                one of the provided CIDRs.
                              items:
                                type: string
                              type: array
                            firstFound:
                              description: |-
                                FirstFound uses default interface matching parameters to select an interface, performing best-effort
                                filtering based on well-known interface names.
                              type: boolean
                            interface:
                              description:
                                Interface enables IP auto-detection based
                                on interfaces that match the given regex.
                              type: string
                            kubernetes:
                              description:
                                Kubernetes configures Calico to detect node
                                addresses based on the Kubernetes API.
                              enum:
                                - NodeInternalIP
                              type: string
                            skipInterface:
                              description: |-
                                SkipInterface enables IP auto-detection based on interfaces that do not match
                                the given regex.
                              type: string
                          type: object
                        sysctl:
                          description:
                            Sysctl configures sysctl parameters for tuning
                            plugin
                          items:
                            properties:
                              key:
                                enum:
                                  - net.ipv4.tcp_keepalive_intvl
                                  - net.ipv4.tcp_keepalive_probes
                                  - net.ipv4.tcp_keepalive_time
                                type: string
                              value:
                                type: string
                            required:
                              - key
                              - value
                            type: object
                          type: array
                        windowsDataplane:
                          description: |-
                            WindowsDataplane is used to select the dataplane used for Windows nodes. In particular, it
                            causes the operator to add required mounts and environment variables for the particular dataplane.
                            If not specified, it is disabled and the operator will not render the Calico Windows nodes daemonset.
                            Default: Disabled
                          enum:
                            - HNS
                            - Disabled
                          type: string
                      type: object
                    calicoNodeDaemonSet:
                      description: |-
                        CalicoNodeDaemonSet configures the calico-node DaemonSet. If used in
                        conjunction with the deprecated ComponentResources, then these overrides take precedence.
                      properties:
                        metadata:
                          description:
                            Metadata is a subset of a Kubernetes object's
                            metadata that is added to the DaemonSet.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: |-
                                Annotations is a map of arbitrary non-identifying metadata. Each of these
                                key/value pairs are added to the object's annotations provided the key does not
                                already exist in the object's annotations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: |-
                                Labels is a map of string keys and values that may match replicaset and
                                service selectors. Each of these key/value pairs are added to the
                                object's labels provided the key does not already exist in the object's labels.
                              type: object
                          type: object
                        spec:
                          description:
                            Spec is the specification of the calico-node
                            DaemonSet.
                          properties:
                            minReadySeconds:
                              description: |-
                                MinReadySeconds is the minimum number of seconds for which a newly created DaemonSet pod should
                                be ready without any of its container crashing, for it to be considered available.
                                If specified, this overrides any minReadySeconds value that may be set on the calico-node DaemonSet.
                                If omitted, the calico-node DaemonSet will use its default value for minReadySeconds.
                              format: int32
                              maximum: 2147483647
                              minimum: 0
                              type: integer
                            template:
                              description:
                                Template describes the calico-node DaemonSet
                                pod that will be created.
                              properties:
                                metadata:
                                  description: |-
                                    Metadata is a subset of a Kubernetes object's metadata that is added to
                                    the pod's metadata.
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Annotations is a map of arbitrary non-identifying metadata. Each of these
                                        key/value pairs are added to the object's annotations provided the key does not
                                        already exist in the object's annotations.
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Labels is a map of string keys and values that may match replicaset and
                                        service selectors. Each of these key/value pairs are added to the
                                        object's labels provided the key does not already exist in the object's labels.
                                      type: object
                                  type: object
                                spec:
                                  description: Spec is the calico-node DaemonSet's PodSpec.
                                  properties:
                                    affinity:
                                      description: |-
                                        Affinity is a group of affinity scheduling rules for the calico-node pods.
                                        If specified, this overrides any affinity that may be set on the calico-node DaemonSet.
                                        If omitted, the calico-node DaemonSet will use its default value for affinity.
                                        WARNING: Please note that this field will override the default calico-node DaemonSet affinity.
                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                            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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - nodeSelectorTerms
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          type: object
                                      type: object
                                    containers:
                                      description: |-
                                        Containers is a list of calico-node containers.
                                        If specified, this overrides the specified calico-node DaemonSet containers.
                                        If omitted, the calico-node DaemonSet will use its default values for its containers.
                                      items:
                                        description:
                                          CalicoNodeDaemonSetContainer is
                                          a calico-node DaemonSet container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the calico-node DaemonSet container by name.
                                              Supported values are: calico-node
                                            enum:
                                              - calico-node
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named calico-node DaemonSet container's resources.
                                              If omitted, the calico-node DaemonSet will use its default value for this container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    dnsConfig:
                                      description:
                                        DNSConfig allows customization of
                                        the DNS configuration for the calico-node pods.
                                      properties:
                                        nameservers:
                                          description: |-
                                            A list of DNS name server IP addresses.
                                            This will be appended to the base nameservers generated from DNSPolicy.
                                            Duplicated nameservers will be removed.
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        options:
                                          description: |-
                                            A list of DNS resolver options.
                                            This will be merged with the base options generated from DNSPolicy.
                                            Duplicated entries will be removed. Resolution options given in Options
                                            will override those that appear in the base DNSPolicy.
                                          items:
                                            description:
                                              PodDNSConfigOption defines
                                              DNS resolver options of a pod.
                                            properties:
                                              name:
                                                description: |-
                                                  Name is this DNS resolver option's name.
                                                  Required.
                                                type: string
                                              value:
                                                description:
                                                  Value is this DNS resolver
                                                  option's value.
                                                type: string
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        searches:
                                          description: |-
                                            A list of DNS search domains for host-name lookup.
                                            This will be appended to the base search paths generated from DNSPolicy.
                                            Duplicated search paths will be removed.
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    dnsPolicy:
                                      description:
                                        DNSPolicy is the DNS policy for the
                                        calico-node pods.
                                      enum:
                                        - ""
                                        - Default
                                        - ClusterFirst
                                        - ClusterFirstWithHostNet
                                        - None
                                      type: string
                                    initContainers:
                                      description: |-
                                        InitContainers is a list of calico-node init containers.
                                        If specified, this overrides the specified calico-node DaemonSet init containers.
                                        If omitted, the calico-node DaemonSet will use its default values for its init containers.
                                      items:
                                        description:
                                          CalicoNodeDaemonSetInitContainer
                                          is a calico-node DaemonSet init container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the calico-node DaemonSet init container by name.
                                              Supported values are: install-cni, hostpath-init, flexvol-driver, ebpf-bootstrap, node-certs-key-cert-provisioner, calico-node-prometheus-server-tls-key-cert-provisioner, mount-bpffs (deprecated, replaced by ebpf-bootstrap)
                                            enum:
                                              - install-cni
                                              - hostpath-init
                                              - flexvol-driver
                                              - ebpf-bootstrap
                                              - node-certs-key-cert-provisioner
                                              - calico-node-prometheus-server-tls-key-cert-provisioner
                                              - mount-bpffs
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named calico-node DaemonSet init container's resources.
                                              If omitted, the calico-node DaemonSet will use its default value for this container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    nodeSelector:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        NodeSelector is the calico-node pod's scheduling constraints.
                                        If specified, each of the key/value pairs are added to the calico-node DaemonSet nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If omitted, the calico-node DaemonSet will use its default value for nodeSelector.
                                        WARNING: Please note that this field will modify the default calico-node DaemonSet nodeSelector.
                                      type: object
                                    tolerations:
                                      description: |-
                                        Tolerations is the calico-node pod's tolerations.
                                        If specified, this overrides any tolerations that may be set on the calico-node DaemonSet.
                                        If omitted, the calico-node DaemonSet will use its default value for tolerations.
                                        WARNING: Please note that this field will override the default calico-node DaemonSet tolerations.
                                      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
                              type: object
                          type: object
                      type: object
                    calicoNodeWindowsDaemonSet:
                      description:
                        CalicoNodeWindowsDaemonSet configures the calico-node-windows
                        DaemonSet.
                      properties:
                        metadata:
                          description:
                            Metadata is a subset of a Kubernetes object's
                            metadata that is added to the DaemonSet.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: |-
                                Annotations is a map of arbitrary non-identifying metadata. Each of these
                                key/value pairs are added to the object's annotations provided the key does not
                                already exist in the object's annotations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: |-
                                Labels is a map of string keys and values that may match replicaset and
                                service selectors. Each of these key/value pairs are added to the
                                object's labels provided the key does not already exist in the object's labels.
                              type: object
                          type: object
                        spec:
                          description:
                            Spec is the specification of the calico-node-windows
                            DaemonSet.
                          properties:
                            minReadySeconds:
                              description: |-
                                MinReadySeconds is the minimum number of seconds for which a newly created DaemonSet pod should
                                be ready without any of its container crashing, for it to be considered available.
                                If specified, this overrides any minReadySeconds value that may be set on the calico-node-windows DaemonSet.
                                If omitted, the calico-node-windows DaemonSet will use its default value for minReadySeconds.
                              format: int32
                              maximum: 2147483647
                              minimum: 0
                              type: integer
                            template:
                              description:
                                Template describes the calico-node-windows
                                DaemonSet pod that will be created.
                              properties:
                                metadata:
                                  description: |-
                                    Metadata is a subset of a Kubernetes object's metadata that is added to
                                    the pod's metadata.
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Annotations is a map of arbitrary non-identifying metadata. Each of these
                                        key/value pairs are added to the object's annotations provided the key does not
                                        already exist in the object's annotations.
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Labels is a map of string keys and values that may match replicaset and
                                        service selectors. Each of these key/value pairs are added to the
                                        object's labels provided the key does not already exist in the object's labels.
                                      type: object
                                  type: object
                                spec:
                                  description:
                                    Spec is the calico-node-windows DaemonSet's
                                    PodSpec.
                                  properties:
                                    affinity:
                                      description: |-
                                        Affinity is a group of affinity scheduling rules for the calico-node-windows pods.
                                        If specified, this overrides any affinity that may be set on the calico-node-windows DaemonSet.
                                        If omitted, the calico-node-windows DaemonSet will use its default value for affinity.
                                        WARNING: Please note that this field will override the default calico-node-windows DaemonSet affinity.
                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                            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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - nodeSelectorTerms
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          type: object
                                      type: object
                                    containers:
                                      description: |-
                                        Containers is a list of calico-node-windows containers.
                                        If specified, this overrides the specified calico-node-windows DaemonSet containers.
                                        If omitted, the calico-node-windows DaemonSet will use its default values for its containers.
                                      items:
                                        description:
                                          CalicoNodeWindowsDaemonSetContainer
                                          is a calico-node-windows DaemonSet container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the calico-node-windows DaemonSet container by name.
                                              Supported values are: calico-node-windows
                                            enum:
                                              - calico-node-windows
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named calico-node-windows DaemonSet container's resources.
                                              If omitted, the calico-node-windows DaemonSet will use its default value for this container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    initContainers:
                                      description: |-
                                        InitContainers is a list of calico-node-windows init containers.
                                        If specified, this overrides the specified calico-node-windows DaemonSet init containers.
                                        If omitted, the calico-node-windows DaemonSet will use its default values for its init containers.
                                      items:
                                        description:
                                          CalicoNodeWindowsDaemonSetInitContainer
                                          is a calico-node-windows DaemonSet init container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the calico-node-windows DaemonSet init container by name.
                                              Supported values are: install-cni;hostpath-init, flexvol-driver, node-certs-key-cert-provisioner, calico-node-windows-prometheus-server-tls-key-cert-provisioner
                                            enum:
                                              - install-cni
                                              - hostpath-init
                                              - flexvol-driver
                                              - node-certs-key-cert-provisioner
                                              - calico-node-windows-prometheus-server-tls-key-cert-provisioner
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named calico-node-windows DaemonSet init container's resources.
                                              If omitted, the calico-node-windows DaemonSet will use its default value for this container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    nodeSelector:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        NodeSelector is the calico-node-windows pod's scheduling constraints.
                                        If specified, each of the key/value pairs are added to the calico-node-windows DaemonSet nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If omitted, the calico-node-windows DaemonSet will use its default value for nodeSelector.
                                        WARNING: Please note that this field will modify the default calico-node-windows DaemonSet nodeSelector.
                                      type: object
                                    tolerations:
                                      description: |-
                                        Tolerations is the calico-node-windows pod's tolerations.
                                        If specified, this overrides any tolerations that may be set on the calico-node-windows DaemonSet.
                                        If omitted, the calico-node-windows DaemonSet will use its default value for tolerations.
                                        WARNING: Please note that this field will override the default calico-node-windows DaemonSet tolerations.
                                      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
                              type: object
                          type: object
                      type: object
                    calicoWindowsUpgradeDaemonSet:
                      description: |-
                        Deprecated. The CalicoWindowsUpgradeDaemonSet is deprecated and will be removed from the API in the future.
                        CalicoWindowsUpgradeDaemonSet configures the calico-windows-upgrade DaemonSet.
                      properties:
                        metadata:
                          description:
                            Metadata is a subset of a Kubernetes object's
                            metadata that is added to the Deployment.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: |-
                                Annotations is a map of arbitrary non-identifying metadata. Each of these
                                key/value pairs are added to the object's annotations provided the key does not
                                already exist in the object's annotations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: |-
                                Labels is a map of string keys and values that may match replicaset and
                                service selectors. Each of these key/value pairs are added to the
                                object's labels provided the key does not already exist in the object's labels.
                              type: object
                          type: object
                        spec:
                          description:
                            Spec is the specification of the calico-windows-upgrade
                            DaemonSet.
                          properties:
                            minReadySeconds:
                              description: |-
                                MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                                be ready without any of its container crashing, for it to be considered available.
                                If specified, this overrides any minReadySeconds value that may be set on the calico-windows-upgrade DaemonSet.
                                If omitted, the calico-windows-upgrade DaemonSet will use its default value for minReadySeconds.
                              format: int32
                              maximum: 2147483647
                              minimum: 0
                              type: integer
                            template:
                              description:
                                Template describes the calico-windows-upgrade
                                DaemonSet pod that will be created.
                              properties:
                                metadata:
                                  description: |-
                                    Metadata is a subset of a Kubernetes object's metadata that is added to
                                    the pod's metadata.
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Annotations is a map of arbitrary non-identifying metadata. Each of these
                                        key/value pairs are added to the object's annotations provided the key does not
                                        already exist in the object's annotations.
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Labels is a map of string keys and values that may match replicaset and
                                        service selectors. Each of these key/value pairs are added to the
                                        object's labels provided the key does not already exist in the object's labels.
                                      type: object
                                  type: object
                                spec:
                                  description:
                                    Spec is the calico-windows-upgrade DaemonSet's
                                    PodSpec.
                                  properties:
                                    affinity:
                                      description: |-
                                        Affinity is a group of affinity scheduling rules for the calico-windows-upgrade pods.
                                        If specified, this overrides any affinity that may be set on the calico-windows-upgrade DaemonSet.
                                        If omitted, the calico-windows-upgrade DaemonSet will use its default value for affinity.
                                        WARNING: Please note that this field will override the default calico-windows-upgrade DaemonSet affinity.
                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                            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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - nodeSelectorTerms
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          type: object
                                      type: object
                                    containers:
                                      description: |-
                                        Containers is a list of calico-windows-upgrade containers.
                                        If specified, this overrides the specified calico-windows-upgrade DaemonSet containers.
                                        If omitted, the calico-windows-upgrade DaemonSet will use its default values for its containers.
                                      items:
                                        description:
                                          CalicoWindowsUpgradeDaemonSetContainer
                                          is a calico-windows-upgrade DaemonSet container.
                                        properties:
                                          name:
                                            description:
                                              Name is an enum which identifies
                                              the calico-windows-upgrade DaemonSet container
                                              by name.
                                            enum:
                                              - calico-windows-upgrade
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named calico-windows-upgrade DaemonSet container's resources.
                                              If omitted, the calico-windows-upgrade DaemonSet will use its default value for this container's resources.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    nodeSelector:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        NodeSelector is the calico-windows-upgrade pod's scheduling constraints.
                                        If specified, each of the key/value pairs are added to the calico-windows-upgrade DaemonSet nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If omitted, the calico-windows-upgrade DaemonSet will use its default value for nodeSelector.
                                        WARNING: Please note that this field will modify the default calico-windows-upgrade DaemonSet nodeSelector.
                                      type: object
                                    tolerations:
                                      description: |-
                                        Tolerations is the calico-windows-upgrade pod's tolerations.
                                        If specified, this overrides any tolerations that may be set on the calico-windows-upgrade DaemonSet.
                                        If omitted, the calico-windows-upgrade DaemonSet will use its default value for tolerations.
                                        WARNING: Please note that this field will override the default calico-windows-upgrade DaemonSet tolerations.
                                      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
                              type: object
                          type: object
                      type: object
                    certificateManagement:
                      description: |-
                        CertificateManagement configures pods to submit a CertificateSigningRequest to the certificates.k8s.io/v1 API in order
                        to obtain TLS certificates. This feature requires that you bring your own CSR signing and approval process, otherwise
                        pods will be stuck during initialization.
                      properties:
                        caCert:
                          description:
                            Certificate of the authority that signs the CertificateSigningRequests
                            in PEM format.
                          format: byte
                          type: string
                        keyAlgorithm:
                          description: |-
                            Specify the algorithm used by pods to generate a key pair that is associated with the X.509 certificate request.
                            Default: RSAWithSize2048
                          enum:
                            - ""
                            - RSAWithSize2048
                            - RSAWithSize4096
                            - RSAWithSize8192
                            - ECDSAWithCurve256
                            - ECDSAWithCurve384
                            - ECDSAWithCurve521
                          type: string
                        signatureAlgorithm:
                          description: |-
                            Specify the algorithm used for the signature of the X.509 certificate request.
                            Default: SHA256WithRSA
                          enum:
                            - ""
                            - SHA256WithRSA
                            - SHA384WithRSA
                            - SHA512WithRSA
                            - ECDSAWithSHA256
                            - ECDSAWithSHA384
                            - ECDSAWithSHA512
                          type: string
                        signerName:
                          description: |-
                            When a CSR is issued to the certificates.k8s.io API, the signerName is added to the request in order to accommodate for clusters
                            with multiple signers.
                            Must be formatted as: `<my-domain>/<my-signername>`.
                          type: string
                      required:
                        - caCert
                        - signerName
                      type: object
                    cni:
                      description: CNI specifies the CNI that will be used by this installation.
                      properties:
                        binDir:
                          description: |-
                            BinDir is the path to the CNI binaries directory.
                            If you have changed the installation directory for CNI binaries in the container runtime configuration,
                            please ensure that this field points to the same directory as specified in the container runtime settings.
                            Default directory depends on the KubernetesProvider.
                            * For KubernetesProvider GKE, this field defaults to "/home/kubernetes/bin".
                            * For KubernetesProvider OpenShift, this field defaults to "/var/lib/cni/bin".
                            * Otherwise, this field defaults to "/opt/cni/bin".
                          type: string
                        confDir:
                          description: |-
                            ConfDir is the path to the CNI config directory.
                            If you have changed the installation directory for CNI configuration in the container runtime configuration,
                            please ensure that this field points to the same directory as specified in the container runtime settings.
                            Default directory depends on the KubernetesProvider.
                            * For KubernetesProvider GKE, this field defaults to "/etc/cni/net.d".
                            * For KubernetesProvider OpenShift, this field defaults to "/var/run/multus/cni/net.d".
                            * Otherwise, this field defaults to "/etc/cni/net.d".
                          type: string
                        ipam:
                          description: |-
                            IPAM specifies the pod IP address management that will be used in the Calico or
                            Calico Enterprise installation.
                          properties:
                            type:
                              description: |-
                                Specifies the IPAM plugin that will be used in the Calico or Calico Enterprise installation.
                                * For CNI Plugin Calico, this field defaults to Calico.
                                * For CNI Plugin GKE, this field defaults to HostLocal.
                                * For CNI Plugin AzureVNET, this field defaults to AzureVNET.
                                * For CNI Plugin AmazonVPC, this field defaults to AmazonVPC.
                                The IPAM plugin is installed and configured only if the CNI plugin is set to Calico,
                                for all other values of the CNI plugin the plugin binaries and CNI config is a dependency
                                that is expected to be installed separately.
                                Default: Calico
                              enum:
                                - Calico
                                - HostLocal
                                - AmazonVPC
                                - AzureVNET
                              type: string
                          required:
                            - type
                          type: object
                        type:
                          description: |-
                            Specifies the CNI plugin that will be used in the Calico or Calico Enterprise installation.
                            * For KubernetesProvider GKE, this field defaults to GKE.
                            * For KubernetesProvider AKS, this field defaults to AzureVNET.
                            * For KubernetesProvider EKS, this field defaults to AmazonVPC.
                            * If aws-node daemonset exists in kube-system when the Installation resource is created, this field defaults to AmazonVPC.
                            * For all other cases this field defaults to Calico.
                            For the value Calico, the CNI plugin binaries and CNI config will be installed as part of deployment,
                            for all other values the CNI plugin binaries and CNI config is a dependency that is expected
                            to be installed separately.
                            Default: Calico
                          enum:
                            - Calico
                            - GKE
                            - AmazonVPC
                            - AzureVNET
                          type: string
                      required:
                        - type
                      type: object
                    componentResources:
                      description: |-
                        Deprecated. Please use CalicoNodeDaemonSet, TyphaDeployment, and KubeControllersDeployment.
                        ComponentResources can be used to customize the resource requirements for each component.
                        Node, Typha, and KubeControllers are supported for installations.
                      items:
                        description: |-
                          Deprecated. Please use component resource config fields in Installation.Spec instead.
                          The ComponentResource struct associates a ResourceRequirements with a component by name
                        properties:
                          componentName:
                            description:
                              ComponentName is an enum which identifies the
                              component
                            enum:
                              - Node
                              - Typha
                              - KubeControllers
                            type: string
                          resourceRequirements:
                            description:
                              ResourceRequirements allows customization of
                              limits and requests for compute resources such as cpu
                              and memory.
                            properties:
                              claims:
                                description: |-
                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                  that are used by this container.
                                  This is an alpha field and requires enabling the
                                  DynamicResourceAllocation feature gate.
                                  This field is immutable. It can only be set for containers.
                                items:
                                  description:
                                    ResourceClaim references one entry in
                                    PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: |-
                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                        the Pod where this field is used. It makes that resource available
                                        inside a container.
                                      type: string
                                    request:
                                      description: |-
                                        Request is the name chosen for a request in the referenced claim.
                                        If empty, everything from the claim is made available, otherwise
                                        only the result of this request.
                                      type: string
                                  required:
                                    - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                  - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: |-
                                  Limits describes the maximum amount of compute resources allowed.
                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: |-
                                  Requests describes the minimum amount of compute resources required.
                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                type: object
                            type: object
                        required:
                          - componentName
                          - resourceRequirements
                        type: object
                      type: array
                    controlPlaneNodeSelector:
                      additionalProperties:
                        type: string
                      description: |-
                        ControlPlaneNodeSelector is used to select control plane nodes on which to run Calico
                        components. This is globally applied to all resources created by the operator excluding daemonsets.
                      type: object
                    controlPlaneReplicas:
                      description: |-
                        ControlPlaneReplicas defines how many replicas of the control plane core components will be deployed.
                        This field applies to all control plane components that support High Availability. Defaults to 2.
                      format: int32
                      type: integer
                    controlPlaneTolerations:
                      description: |-
                        ControlPlaneTolerations specify tolerations which are then globally applied to all resources
                        created by the operator.
                      items:
                        description: |-
                          The pod this Toleration is attached to tolerates any taint that matches
                          the triple <key,value,effect> using the matching operator <operator>.
                        properties:
                          effect:
                            description: |-
                              Effect indicates the taint effect to match. Empty means match all taint effects.
                              When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                            type: string
                          key:
                            description: |-
                              Key is the taint key that the toleration applies to. Empty means match all taint keys.
                              If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                            type: string
                          operator:
                            description: |-
                              Operator represents a key's relationship to the value.
                              Valid operators are Exists and Equal. Defaults to Equal.
                              Exists is equivalent to wildcard for value, so that a pod can
                              tolerate all taints of a particular category.
                            type: string
                          tolerationSeconds:
                            description: |-
                              TolerationSeconds represents the period of time the toleration (which must be
                              of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
                              it is not set, which means tolerate the taint forever (do not evict). Zero and
                              negative values will be treated as 0 (evict immediately) by the system.
                            format: int64
                            type: integer
                          value:
                            description: |-
                              Value is the taint value the toleration matches to.
                              If the operator is Exists, the value should be empty, otherwise just a regular string.
                            type: string
                        type: object
                      type: array
                    csiNodeDriverDaemonSet:
                      description:
                        CSINodeDriverDaemonSet configures the csi-node-driver
                        DaemonSet.
                      properties:
                        metadata:
                          description:
                            Metadata is a subset of a Kubernetes object's
                            metadata that is added to the DaemonSet.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: |-
                                Annotations is a map of arbitrary non-identifying metadata. Each of these
                                key/value pairs are added to the object's annotations provided the key does not
                                already exist in the object's annotations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: |-
                                Labels is a map of string keys and values that may match replicaset and
                                service selectors. Each of these key/value pairs are added to the
                                object's labels provided the key does not already exist in the object's labels.
                              type: object
                          type: object
                        spec:
                          description:
                            Spec is the specification of the csi-node-driver
                            DaemonSet.
                          properties:
                            minReadySeconds:
                              description: |-
                                MinReadySeconds is the minimum number of seconds for which a newly created DaemonSet pod should
                                be ready without any of its container crashing, for it to be considered available.
                                If specified, this overrides any minReadySeconds value that may be set on the csi-node-driver DaemonSet.
                                If omitted, the csi-node-driver DaemonSet will use its default value for minReadySeconds.
                              format: int32
                              maximum: 2147483647
                              minimum: 0
                              type: integer
                            template:
                              description:
                                Template describes the csi-node-driver DaemonSet
                                pod that will be created.
                              properties:
                                metadata:
                                  description: |-
                                    Metadata is a subset of a Kubernetes object's metadata that is added to
                                    the pod's metadata.
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Annotations is a map of arbitrary non-identifying metadata. Each of these
                                        key/value pairs are added to the object's annotations provided the key does not
                                        already exist in the object's annotations.
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Labels is a map of string keys and values that may match replicaset and
                                        service selectors. Each of these key/value pairs are added to the
                                        object's labels provided the key does not already exist in the object's labels.
                                      type: object
                                  type: object
                                spec:
                                  description:
                                    Spec is the csi-node-driver DaemonSet's
                                    PodSpec.
                                  properties:
                                    affinity:
                                      description: |-
                                        Affinity is a group of affinity scheduling rules for the csi-node-driver pods.
                                        If specified, this overrides any affinity that may be set on the csi-node-driver DaemonSet.
                                        If omitted, the csi-node-driver DaemonSet will use its default value for affinity.
                                        WARNING: Please note that this field will override the default csi-node-driver DaemonSet affinity.
                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                            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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - nodeSelectorTerms
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          type: object
                                      type: object
                                    containers:
                                      description: |-
                                        Containers is a list of csi-node-driver containers.
                                        If specified, this overrides the specified csi-node-driver DaemonSet containers.
                                        If omitted, the csi-node-driver DaemonSet will use its default values for its containers.
                                      items:
                                        description:
                                          CSINodeDriverDaemonSetContainer
                                          is a csi-node-driver DaemonSet container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the csi-node-driver DaemonSet container by name.
                                              Supported values are: calico-csi, csi-node-driver-registrar.
                                            enum:
                                              - calico-csi
                                              - csi-node-driver-registrar
                                              - csi-node-driver
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named csi-node-driver DaemonSet container's resources.
                                              If omitted, the csi-node-driver DaemonSet will use its default value for this container's resources.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    nodeSelector:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        NodeSelector is the csi-node-driver pod's scheduling constraints.
                                        If specified, each of the key/value pairs are added to the csi-node-driver DaemonSet nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If omitted, the csi-node-driver DaemonSet will use its default value for nodeSelector.
                                        WARNING: Please note that this field will modify the default csi-node-driver DaemonSet nodeSelector.
                                      type: object
                                    tolerations:
                                      description: |-
                                        Tolerations is the csi-node-driver pod's tolerations.
                                        If specified, this overrides any tolerations that may be set on the csi-node-driver DaemonSet.
                                        If omitted, the csi-node-driver DaemonSet will use its default value for tolerations.
                                        WARNING: Please note that this field will override the default csi-node-driver DaemonSet tolerations.
                                      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
                              type: object
                          type: object
                      type: object
                    fipsMode:
                      description: |-
                        FIPSMode uses images and features only that are using FIPS 140-2 validated cryptographic modules and standards.
                        Only supported for Variant=Calico.
                        Default: Disabled
                      enum:
                        - Enabled
                        - Disabled
                      type: string
                    flexVolumePath:
                      description: |-
                        FlexVolumePath optionally specifies a custom path for FlexVolume. If not specified, FlexVolume will be
                        enabled by default. If set to 'None', FlexVolume will be disabled. The default is based on the
                        kubernetesProvider.
                      type: string
                    imagePath:
                      description: |-
                        ImagePath allows for the path part of an image to be specified. If specified
                        then the specified value will be used as the image path for each image. If not specified
                        or empty, the default for each image will be used.
                        A special case value, UseDefault, is supported to explicitly specify the default
                        image path will be used for each image.
                        Image format:
                           `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
                        This option allows configuring the `<imagePath>` portion of the above format.
                      type: string
                    imagePrefix:
                      description: |-
                        ImagePrefix allows for the prefix part of an image to be specified. If specified
                        then the given value will be used as a prefix on each image. If not specified
                        or empty, no prefix will be used.
                        A special case value, UseDefault, is supported to explicitly specify the default
                        image prefix will be used for each image.
                        Image format:
                           `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
                        This option allows configuring the `<imagePrefix>` portion of the above format.
                      type: string
                    imagePullSecrets:
                      description: |-
                        ImagePullSecrets is an array of references to container registry pull secrets to use. These are
                        applied to all images to be pulled.
                      items:
                        description: |-
                          LocalObjectReference contains enough information to let you locate the
                          referenced object inside the same namespace.
                        properties:
                          name:
                            default: ""
                            description: |-
                              Name of the referent.
                              This field is effectively required, but due to backwards compatibility is
                              allowed to be empty. Instances of this type with an empty value here are
                              almost certainly wrong.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                      type: array
                    kubeletVolumePluginPath:
                      description: |-
                        KubeletVolumePluginPath optionally specifies enablement of Calico CSI plugin. If not specified,
                        CSI will be enabled by default. If set to 'None', CSI will be disabled.
                        Default: /var/lib/kubelet
                      type: string
                    kubernetesProvider:
                      description: |-
                        KubernetesProvider specifies a particular provider of the Kubernetes platform and enables provider-specific configuration.
                        If the specified value is empty, the Operator will attempt to automatically determine the current provider.
                        If the specified value is not empty, the Operator will still attempt auto-detection, but
                        will additionally compare the auto-detected value to the specified value to confirm they match.
                      enum:
                        - ""
                        - EKS
                        - GKE
                        - AKS
                        - OpenShift
                        - DockerEnterprise
                        - RKE2
                        - TKG
                        - Kind
                      type: string
                    logging:
                      description: Logging Configuration for Components
                      properties:
                        cni:
                          description:
                            Customized logging specification for calico-cni
                            plugin
                          properties:
                            logFileMaxAgeDays:
                              description: "Default: 30 (days)"
                              format: int32
                              type: integer
                            logFileMaxCount:
                              description: "Default: 10"
                              format: int32
                              type: integer
                            logFileMaxSize:
                              anyOf:
                                - type: integer
                                - type: string
                              description: "Default: 100Mi"
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            logSeverity:
                              description: "Default: Info"
                              enum:
                                - Error
                                - Warning
                                - Info
                                - Debug
                              type: string
                          type: object
                      type: object
                    nodeMetricsPort:
                      description: |-
                        NodeMetricsPort specifies which port calico/node serves prometheus metrics on. By default, metrics are not enabled.
                        If specified, this overrides any FelixConfiguration resources which may exist. If omitted, then
                        prometheus metrics may still be configured through FelixConfiguration.
                      format: int32
                      type: integer
                    nodeUpdateStrategy:
                      description: |-
                        NodeUpdateStrategy can be used to customize the desired update strategy, such as the MaxUnavailable
                        field.
                      properties:
                        rollingUpdate:
                          description:
                            Rolling update config params. Present only if
                            type = "RollingUpdate".
                          properties:
                            maxSurge:
                              anyOf:
                                - type: integer
                                - type: string
                              description: |-
                                The maximum number of nodes with an existing available DaemonSet pod that
                                can have an updated DaemonSet pod during during an update.
                                Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                This can not be 0 if MaxUnavailable is 0.
                                Absolute number is calculated from percentage by rounding up to a minimum of 1.
                                Default value is 0.
                                Example: when this is set to 30%, at most 30% of the total number of nodes
                                that should be running the daemon pod (i.e. status.desiredNumberScheduled)
                                can have their a new pod created before the old pod is marked as deleted.
                                The update starts by launching new pods on 30% of nodes. Once an updated
                                pod is available (Ready for at least minReadySeconds) the old DaemonSet pod
                                on that node is marked deleted. If the old pod becomes unavailable for any
                                reason (Ready transitions to false, is evicted, or is drained) an updated
                                pod is immediatedly created on that node without considering surge limits.
                                Allowing surge implies the possibility that the resources consumed by the
                                daemonset on any given node can double if the readiness check fails, and
                                so resource intensive daemonsets should take into account that they may
                                cause evictions during disruption.
                              x-kubernetes-int-or-string: true
                            maxUnavailable:
                              anyOf:
                                - type: integer
                                - type: string
                              description: |-
                                The maximum number of DaemonSet pods that can be unavailable during the
                                update. Value can be an absolute number (ex: 5) or a percentage of total
                                number of DaemonSet pods at the start of the update (ex: 10%). Absolute
                                number is calculated from percentage by rounding up.
                                This cannot be 0 if MaxSurge is 0
                                Default value is 1.
                                Example: when this is set to 30%, at most 30% of the total number of nodes
                                that should be running the daemon pod (i.e. status.desiredNumberScheduled)
                                can have their pods stopped for an update at any given time. The update
                                starts by stopping at most 30% of those DaemonSet pods and then brings
                                up new DaemonSet pods in their place. Once the new pods are available,
                                it then proceeds onto other DaemonSet pods, thus ensuring that at least
                                70% of original number of DaemonSet pods are available at all times during
                                the update.
                              x-kubernetes-int-or-string: true
                          type: object
                        type:
                          description:
                            Type of daemon set update. Can be "RollingUpdate"
                            or "OnDelete". Default is RollingUpdate.
                          type: string
                      type: object
                    nonPrivileged:
                      description:
                        NonPrivileged configures Calico to be run in non-privileged
                        containers as non-root users where possible.
                      type: string
                    proxy:
                      description: |-
                        Proxy is used to configure the HTTP(S) proxy settings that will be applied to Tigera containers that connect
                        to destinations outside the cluster. It is expected that NO_PROXY is configured such that destinations within
                        the cluster (including the API server) are exempt from proxying.
                      properties:
                        httpProxy:
                          description: |-
                            HTTPProxy defines the value of the HTTP_PROXY environment variable that will be set on Tigera containers that connect to
                            destinations outside the cluster.
                          type: string
                        httpsProxy:
                          description: |-
                            HTTPSProxy defines the value of the HTTPS_PROXY environment variable that will be set on Tigera containers that connect to
                            destinations outside the cluster.
                          type: string
                        noProxy:
                          description: |-
                            NoProxy defines the value of the NO_PROXY environment variable that will be set on Tigera containers that connect to
                            destinations outside the cluster. This value must be set such that destinations within the scope of the cluster, including
                            the Kubernetes API server, are exempt from being proxied.
                          type: string
                      type: object
                    registry:
                      description: |-
                        Registry is the default Docker registry used for component Docker images.
                        If specified then the given value must end with a slash character (`/`) and all images will be pulled from this registry.
                        If not specified then the default registries will be used. A special case value, UseDefault, is
                        supported to explicitly specify the default registries will be used.
                        Image format:
                           `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
                        This option allows configuring the `<registry>` portion of the above format.
                      type: string
                    serviceCIDRs:
                      description:
                        Kubernetes Service CIDRs. Specifying this is required
                        when using Calico for Windows.
                      items:
                        type: string
                      type: array
                    tlsCipherSuites:
                      description:
                        TLSCipherSuites defines the cipher suite list that
                        the TLS protocol should use during secure communication.
                      items:
                        properties:
                          name:
                            description: This should be a valid TLS cipher suite name.
                            enum:
                              - TLS_AES_256_GCM_SHA384
                              - TLS_CHACHA20_POLY1305_SHA256
                              - TLS_AES_128_GCM_SHA256
                              - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
                              - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
                              - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
                              - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
                              - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
                              - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
                              - TLS_RSA_WITH_AES_256_GCM_SHA384
                              - TLS_RSA_WITH_AES_128_GCM_SHA256
                              - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
                              - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
                              - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
                            type: string
                        type: object
                      type: array
                    typhaAffinity:
                      description: |-
                        Deprecated. Please use Installation.Spec.TyphaDeployment instead.
                        TyphaAffinity allows configuration of node affinity characteristics for Typha pods.
                      properties:
                        nodeAffinity:
                          description:
                            NodeAffinity describes node affinity scheduling
                            rules for typha.
                          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.
                              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
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      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
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: |-
                                WARNING: Please note that if the affinity requirements specified by this field are not met at
                                scheduling time, the pod will NOT be scheduled onto the node.
                                There is no fallback to another affinity rules with this setting.
                                This may cause networking disruption or even catastrophic failure!
                                PreferredDuringSchedulingIgnoredDuringExecution should be used for affinity
                                unless there is a specific well understood reason to use RequiredDuringSchedulingIgnoredDuringExecution and
                                you can guarantee that the RequiredDuringSchedulingIgnoredDuringExecution will always have sufficient nodes to satisfy the requirement.
                                NOTE: RequiredDuringSchedulingIgnoredDuringExecution is set by default for AKS nodes,
                                to avoid scheduling Typhas on virtual-nodes.
                                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
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      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
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - key
                                            - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                                - nodeSelectorTerms
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                      type: object
                    typhaDeployment:
                      description: |-
                        TyphaDeployment configures the typha Deployment. If used in conjunction with the deprecated
                        ComponentResources or TyphaAffinity, then these overrides take precedence.
                      properties:
                        metadata:
                          description:
                            Metadata is a subset of a Kubernetes object's
                            metadata that is added to the Deployment.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: |-
                                Annotations is a map of arbitrary non-identifying metadata. Each of these
                                key/value pairs are added to the object's annotations provided the key does not
                                already exist in the object's annotations.
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: |-
                                Labels is a map of string keys and values that may match replicaset and
                                service selectors. Each of these key/value pairs are added to the
                                object's labels provided the key does not already exist in the object's labels.
                              type: object
                          type: object
                        spec:
                          description: Spec is the specification of the typha Deployment.
                          properties:
                            minReadySeconds:
                              description: |-
                                MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                                be ready without any of its container crashing, for it to be considered available.
                                If specified, this overrides any minReadySeconds value that may be set on the typha Deployment.
                                If omitted, the typha Deployment will use its default value for minReadySeconds.
                              format: int32
                              maximum: 2147483647
                              minimum: 0
                              type: integer
                            strategy:
                              description:
                                The deployment strategy to use to replace
                                existing pods with new ones.
                              properties:
                                rollingUpdate:
                                  description: |-
                                    Rolling update config params. Present only if DeploymentStrategyType =
                                    RollingUpdate.
                                    to be.
                                  properties:
                                    maxSurge:
                                      anyOf:
                                        - type: integer
                                        - type: string
                                      description: |-
                                        The maximum number of pods that can be scheduled above the desired number of
                                        pods.
                                        Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                        This can not be 0 if MaxUnavailable is 0.
                                        Absolute number is calculated from percentage by rounding up.
                                        Defaults to 25%.
                                        Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
                                        the rolling update starts, such that the total number of old and new pods do not exceed
                                        130% of desired pods. Once old pods have been killed,
                                        new ReplicaSet can be scaled up further, ensuring that total number of pods running
                                        at any time during the update is at most 130% of desired pods.
                                      x-kubernetes-int-or-string: true
                                    maxUnavailable:
                                      anyOf:
                                        - type: integer
                                        - type: string
                                      description: |-
                                        The maximum number of pods that can be unavailable during the update.
                                        Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                        Absolute number is calculated from percentage by rounding down.
                                        This can not be 0 if MaxSurge is 0.
                                        Defaults to 25%.
                                        Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
                                        immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
                                        can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
                                        that the total number of pods available at all times during the update is at
                                        least 70% of desired pods.
                                      x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            template:
                              description:
                                Template describes the typha Deployment pod
                                that will be created.
                              properties:
                                metadata:
                                  description: |-
                                    Metadata is a subset of a Kubernetes object's metadata that is added to
                                    the pod's metadata.
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Annotations is a map of arbitrary non-identifying metadata. Each of these
                                        key/value pairs are added to the object's annotations provided the key does not
                                        already exist in the object's annotations.
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        Labels is a map of string keys and values that may match replicaset and
                                        service selectors. Each of these key/value pairs are added to the
                                        object's labels provided the key does not already exist in the object's labels.
                                      type: object
                                  type: object
                                spec:
                                  description: Spec is the typha Deployment's PodSpec.
                                  properties:
                                    affinity:
                                      description: |-
                                        Affinity is a group of affinity scheduling rules for the typha pods.
                                        If specified, this overrides any affinity that may be set on the typha Deployment.
                                        If omitted, the typha Deployment will use its default value for affinity.
                                        If used in conjunction with the deprecated TyphaAffinity, then this value takes precedence.
                                        WARNING: Please note that this field will override the default calico-typha Deployment affinity.
                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                            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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - nodeSelectorTerms
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          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.
                                                          If it's null, this PodAffinityTerm matches with no 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
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      matchLabelKeys:
                                                        description: |-
                                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      mismatchLabelKeys:
                                                        description: |-
                                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                                          be taken into consideration. The keys are used to lookup values from the
                                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                          to select the group of existing pods which pods will be taken into consideration
                                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                          pod labels will be ignored. The default value is empty.
                                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      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.
                                                        properties:
                                                          matchExpressions:
                                                            description:
                                                              matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: |-
                                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                                relates the key and values.
                                                              properties:
                                                                key:
                                                                  description:
                                                                    key is
                                                                    the label key that
                                                                    the selector applies
                                                                    to.
                                                                  type: string
                                                                operator:
                                                                  description:
                                                                    |-
                                                                    operator represents a key's relationship to a set of values.
                                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description:
                                                                    |-
                                                                    values is an array of string values. If the operator is In or NotIn,
                                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                    the values array must be empty. This array is replaced during a strategic
                                                                    merge patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                                  x-kubernetes-list-type: atomic
                                                              required:
                                                                - key
                                                                - operator
                                                              type: object
                                                            type: array
                                                            x-kubernetes-list-type: atomic
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: |-
                                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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
                                                        x-kubernetes-list-type: atomic
                                                      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
                                              x-kubernetes-list-type: atomic
                                            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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                              x-kubernetes-list-type: atomic
                                          type: object
                                      type: object
                                    containers:
                                      description: |-
                                        Containers is a list of typha containers.
                                        If specified, this overrides the specified typha Deployment containers.
                                        If omitted, the typha Deployment will use its default values for its containers.
                                      items:
                                        description:
                                          TyphaDeploymentContainer is a typha
                                          Deployment container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the typha Deployment container by name.
                                              Supported values are: calico-typha
                                            enum:
                                              - calico-typha
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named typha Deployment container's resources.
                                              If omitted, the typha Deployment will use its default value for this container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    initContainers:
                                      description: |-
                                        InitContainers is a list of typha init containers.
                                        If specified, this overrides the specified typha Deployment init containers.
                                        If omitted, the typha Deployment will use its default values for its init containers.
                                      items:
                                        description:
                                          TyphaDeploymentInitContainer is
                                          a typha Deployment init container.
                                        properties:
                                          name:
                                            description: |-
                                              Name is an enum which identifies the typha Deployment init container by name.
                                              Supported values are: typha-certs-key-cert-provisioner
                                            enum:
                                              - typha-certs-key-cert-provisioner
                                            type: string
                                          resources:
                                            description: |-
                                              Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                              If specified, this overrides the named typha Deployment init container's resources.
                                              If omitted, the typha Deployment will use its default value for this init container's resources.
                                              If used in conjunction with the deprecated ComponentResources, then this value takes precedence.
                                            properties:
                                              claims:
                                                description: |-
                                                  Claims lists the names of resources, defined in spec.resourceClaims,
                                                  that are used by this container.
                                                  This is an alpha field and requires enabling the
                                                  DynamicResourceAllocation feature gate.
                                                  This field is immutable. It can only be set for containers.
                                                items:
                                                  description:
                                                    ResourceClaim references
                                                    one entry in PodSpec.ResourceClaims.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        Name must match the name of one entry in pod.spec.resourceClaims of
                                                        the Pod where this field is used. It makes that resource available
                                                        inside a container.
                                                      type: string
                                                    request:
                                                      description: |-
                                                        Request is the name chosen for a request in the referenced claim.
                                                        If empty, everything from the claim is made available, otherwise
                                                        only the result of this request.
                                                      type: string
                                                  required:
                                                    - name
                                                  type: object
                                                type: array
                                                x-kubernetes-list-map-keys:
                                                  - name
                                                x-kubernetes-list-type: map
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Limits describes the maximum amount of compute resources allowed.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                    - type: integer
                                                    - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: |-
                                                  Requests describes the minimum amount of compute resources required.
                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                                type: object
                                            type: object
                                        required:
                                          - name
                                        type: object
                                      type: array
                                    nodeSelector:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        NodeSelector is the calico-typha pod's scheduling constraints.
                                        If specified, each of the key/value pairs are added to the calico-typha Deployment nodeSelector provided
                                        the key does not already exist in the object's nodeSelector.
                                        If omitted, the calico-typha Deployment will use its default value for nodeSelector.
                                        WARNING: Please note that this field will modify the default calico-typha Deployment nodeSelector.
                                      type: object
                                    terminationGracePeriodSeconds:
                                      description: |-
                                        Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
                                        Value must be non-negative integer. The value zero indicates stop immediately via
                                        the kill signal (no opportunity to shut down).
                                        If this value is nil, the default grace period will be used instead.
                                        The grace period is the duration in seconds after the processes running in the pod are sent
                                        a termination signal and the time when the processes are forcibly halted with a kill signal.
                                        Set this value longer than the expected cleanup time for your process.
                                        Defaults to 30 seconds.
                                      format: int64
                                      type: integer
                                    tolerations:
                                      description: |-
                                        Tolerations is the typha pod's tolerations.
                                        If specified, this overrides any tolerations that may be set on the typha Deployment.
                                        If omitted, the typha Deployment will use its default value for tolerations.
                                        WARNING: Please note that this field will override the default calico-typha Deployment tolerations.
                                      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
                                    topologySpreadConstraints:
                                      description: |-
                                        TopologySpreadConstraints describes how a group of pods ought to spread across topology
                                        domains. Scheduler will schedule pods in a way which abides by the constraints.
                                        All topologySpreadConstraints are ANDed.
                                      items:
                                        description:
                                          TopologySpreadConstraint specifies
                                          how to spread matching pods among the given
                                          topology.
                                        properties:
                                          labelSelector:
                                            description: |-
                                              LabelSelector is used to find matching pods.
                                              Pods that match this label selector are counted to determine the number of pods
                                              in their corresponding topology domain.
                                            properties:
                                              matchExpressions:
                                                description:
                                                  matchExpressions is a list
                                                  of label selector requirements. The
                                                  requirements are ANDed.
                                                items:
                                                  description: |-
                                                    A label selector requirement is a selector that contains values, a key, and an operator that
                                                    relates the key and values.
                                                  properties:
                                                    key:
                                                      description:
                                                        key is the label
                                                        key that the selector applies
                                                        to.
                                                      type: string
                                                    operator:
                                                      description: |-
                                                        operator represents a key's relationship to a set of values.
                                                        Valid operators are In, NotIn, Exists and DoesNotExist.
                                                      type: string
                                                    values:
                                                      description: |-
                                                        values is an array of string values. If the operator is In or NotIn,
                                                        the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                        the values array must be empty. This array is replaced during a strategic
                                                        merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                    - key
                                                    - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: |-
                                                  matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                  map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                  operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          matchLabelKeys:
                                            description: |-
                                              MatchLabelKeys is a set of pod label keys to select the pods over which
                                              spreading will be calculated. The keys are used to lookup values from the
                                              incoming pod labels, those key-value labels are ANDed with labelSelector
                                              to select the group of existing pods over which spreading will be calculated
                                              for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                              MatchLabelKeys cannot be set when LabelSelector isn't set.
                                              Keys that don't exist in the incoming pod labels will
                                              be ignored. A null or empty list means only match against labelSelector.
                                              This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          maxSkew:
                                            description: |-
                                              MaxSkew describes the degree to which pods may be unevenly distributed.
                                              When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                              between the number of matching pods in the target topology and the global minimum.
                                              The global minimum is the minimum number of matching pods in an eligible domain
                                              or zero if the number of eligible domains is less than MinDomains.
                                              For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                              labelSelector spread as 2/2/1:
                                              In this case, the global minimum is 1.
                                              | zone1 | zone2 | zone3 |
                                              |  P P  |  P P  |   P   |
                                              - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                              scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                              violate MaxSkew(1).
                                              - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                              When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                              to topologies that satisfy it.
                                              It's a required field. Default value is 1 and 0 is not allowed.
                                            format: int32
                                            type: integer
                                          minDomains:
                                            description: |-
                                              MinDomains indicates a minimum number of eligible domains.
                                              When the number of eligible domains with matching topology keys is less than minDomains,
                                              Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                              And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                              this value has no effect on scheduling.
                                              As a result, when the number of eligible domains is less than minDomains,
                                              scheduler won't schedule more than maxSkew Pods to those domains.
                                              If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                              Valid values are integers greater than 0.
                                              When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                              For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                              labelSelector spread as 2/2/2:
                                              | zone1 | zone2 | zone3 |
                                              |  P P  |  P P  |  P P  |
                                              The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                              In this situation, new pod with the same labelSelector cannot be scheduled,
                                              because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                              it will violate MaxSkew.
                                            format: int32
                                            type: integer
                                          nodeAffinityPolicy:
                                            description: |-
                                              NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                              when calculating pod topology spread skew. Options are:
                                              - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                              - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                              If this value is nil, the behavior is equivalent to the Honor policy.
                                              This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                            type: string
                                          nodeTaintsPolicy:
                                            description: |-
                                              NodeTaintsPolicy indicates how we will treat node taints when calculating
                                              pod topology spread skew. Options are:
                                              - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                              has a toleration, are included.
                                              - Ignore: node taints are ignored. All nodes are included.
                                              If this value is nil, the behavior is equivalent to the Ignore policy.
                                              This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                            type: string
                                          topologyKey:
                                            description: |-
                                              TopologyKey is the key of node labels. Nodes that have a label with this key
                                              and identical values are considered to be in the same topology.
                                              We consider each <key, value> as a "bucket", and try to put balanced number
                                              of pods into each bucket.
                                              We define a domain as a particular instance of a topology.
                                              Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                              nodeAffinityPolicy and nodeTaintsPolicy.
                                              e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                              And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                              It's a required field.
                                            type: string
                                          whenUnsatisfiable:
                                            description: |-
                                              WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                              the spread constraint.
                                              - DoNotSchedule (default) tells the scheduler not to schedule it.
                                              - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                                but giving higher precedence to topologies that would help reduce the
                                                skew.
                                              A constraint is considered "Unsatisfiable" for an incoming pod
                                              if and only if every possible node assignment for that pod would violate
                                              "MaxSkew" on some topology.
                                              For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                              labelSelector spread as 3/1/1:
                                              | zone1 | zone2 | zone3 |
                                              | P P P |   P   |   P   |
                                              If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                              to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                              MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                              won't make it *more* imbalanced.
                                              It's a required field.
                                            type: string
                                        required:
                                          - maxSkew
                                          - topologyKey
                                          - whenUnsatisfiable
                                        type: object
                                      type: array
                                  type: object
                              type: object
                          type: object
                      type: object
                    typhaMetricsPort:
                      description:
                        TyphaMetricsPort specifies which port calico/typha
                        serves prometheus metrics on. By default, metrics are not enabled.
                      format: int32
                      type: integer
                    variant:
                      description: |-
                        Variant is the product to install - one of Calico or TigeraSecureEnterprise
                        Default: Calico
                      enum:
                        - Calico
                        - TigeraSecureEnterprise
                      type: string
                    windowsNodes:
                      description: Windows Configuration
                      properties:
                        cniBinDir:
                          description: |-
                            CNIBinDir is the path to the CNI binaries directory on Windows, it must match what is used as 'bin_dir' under
                            [plugins]
                              [plugins."io.containerd.grpc.v1.cri"]
                                [plugins."io.containerd.grpc.v1.cri".cni]
                            on the containerd 'config.toml' file on the Windows nodes.
                          type: string
                        cniConfigDir:
                          description: |-
                            CNIConfigDir is the path to the CNI configuration directory on Windows, it must match what is used as 'conf_dir' under
                            [plugins]
                              [plugins."io.containerd.grpc.v1.cri"]
                                [plugins."io.containerd.grpc.v1.cri".cni]
                            on the containerd 'config.toml' file on the Windows nodes.
                          type: string
                        cniLogDir:
                          description:
                            CNILogDir is the path to the Calico CNI logs
                            directory on Windows.
                          type: string
                        vxlanAdapter:
                          description:
                            VXLANAdapter is the Network Adapter used for
                            VXLAN, leave blank for primary NIC
                          type: string
                        vxlanMACPrefix:
                          description:
                            VXLANMACPrefix is the prefix used when generating
                            MAC addresses for virtual NICs
                          pattern: ^[0-9A-Fa-f]{2}-[0-9A-Fa-f]{2}$
                          type: string
                      type: object
                  type: object
                conditions:
                  description: |-
                    Conditions represents the latest observed set of conditions for the component. A component may be one or more of
                    Ready, Progressing, Degraded or other customer types.
                  items:
                    description:
                      Condition contains details for one aspect of the current
                      state of this API Resource.
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                imageSet:
                  description: |-
                    ImageSet is the name of the ImageSet being used, if there is an ImageSet
                    that is being used. If an ImageSet is not being used then this will not be set.
                  type: string
                mtu:
                  description: |-
                    MTU is the most recently observed value for pod network MTU. This may be an explicitly
                    configured value, or based on Calico's native auto-detetion.
                  format: int32
                  type: integer
                variant:
                  description:
                    Variant is the most recently observed installed variant
                    - one of Calico or TigeraSecureEnterprise
                  enum:
                    - Calico
                    - TigeraSecureEnterprise
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/operator.tigera.io_managementclusterconnections.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: managementclusterconnections.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: ManagementClusterConnection
    listKind: ManagementClusterConnectionList
    plural: managementclusterconnections
    singular: managementclusterconnection
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: |-
            ManagementClusterConnection represents a link between a managed cluster and a management cluster. At most one
            instance of this resource is supported. It must be named "tigera-secure".
          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:
                ManagementClusterConnectionSpec defines the desired state
                of ManagementClusterConnection
              properties:
                guardianDeployment:
                  description: GuardianDeployment configures the guardian Deployment.
                  properties:
                    spec:
                      description: Spec is the specification of the guardian Deployment.
                      properties:
                        template:
                          description:
                            Template describes the guardian Deployment pod
                            that will be created.
                          properties:
                            spec:
                              description: Spec is the guardian Deployment's PodSpec.
                              properties:
                                containers:
                                  description: |-
                                    Containers is a list of guardian containers.
                                    If specified, this overrides the specified guardian Deployment containers.
                                    If omitted, the guardian Deployment will use its default values for its containers.
                                  items:
                                    description:
                                      GuardianDeploymentContainer is a guardian
                                      Deployment container.
                                    properties:
                                      name:
                                        description: |-
                                          Name is an enum which identifies the guardian Deployment container by name.
                                          Supported values are: tigera-guardian
                                        enum:
                                          - tigera-guardian
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named guardian Deployment container's resources.
                                          If omitted, the guardian Deployment will use its default value for this container's resources.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                initContainers:
                                  description: |-
                                    InitContainers is a list of guardian init containers.
                                    If specified, this overrides the specified guardian Deployment init containers.
                                    If omitted, the guardian Deployment will use its default values for its init containers.
                                  items:
                                    description:
                                      GuardianDeploymentInitContainer is
                                      a guardian Deployment init container.
                                    properties:
                                      name:
                                        description:
                                          Name is an enum which identifies
                                          the guardian Deployment init container by
                                          name.
                                        type: string
                                      resources:
                                        description: |-
                                          Resources allows customization of limits and requests for compute resources such as cpu and memory.
                                          If specified, this overrides the named guardian Deployment init container's resources.
                                          If omitted, the guardian Deployment will use its default value for this init container's resources.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                              type: object
                          type: object
                      type: object
                  type: object
                impersonation:
                  description: |-
                    Impersonation configures the RBAC impersonation permissions for the guardian deployment. This field is not
                    applicable to installation variant Calico as no impersonation is ever used. Otherwise, if this field is left nil,
                    a default set of permissions will be applied.
                    WARNING: If this field is specified, it completely replaces the default permissions.
                    For example, providing an empty `impersonation: {}` block will result in guardian
                    having NO impersonation permissions. Similarly, if you specify `users` but omit `groups`,
                    guardian will lose its default permissions to impersonate groups.
                  properties:
                    groups:
                      description: |-
                        Groups is a list of group names that can be impersonated. An empty list infers all groups can be impersonated,
                        a null values means none.
                      items:
                        type: string
                      type: array
                    serviceAccounts:
                      description: |-
                        ServiceAccounts is a list of service account names that can be impersonated. An empty list infers all service accounts can
                        be impersonated, a null values means none.
                      items:
                        type: string
                      type: array
                    users:
                      description: |-
                        Users is a list of users that can be impersonated. An empty list infers all users can be impersonated, a null
                        value means none.
                      items:
                        type: string
                      type: array
                  type: object
                managementClusterAddr:
                  description: |-
                    Specify where the managed cluster can reach the management cluster. Ex.: "10.128.0.10:30449". A managed cluster
                    should be able to access this address. This field is used by managed clusters only.
                  type: string
                tls:
                  description:
                    TLS provides options for configuring how Managed Clusters
                    can establish an mTLS connection with the Management Cluster.
                  properties:
                    ca:
                      description: |-
                        CA indicates which verification method the tunnel client should use to verify the tunnel server's identity.
                        When left blank or set to 'Tigera', the tunnel client will expect a self-signed cert to be included in the certificate bundle
                        and will expect the cert to have a Common Name (CN) of 'voltron'.
                        When set to 'Public', the tunnel client will use its installed system certs and will use the managementClusterAddr to verify the tunnel server's identity.
                        Default: Tigera
                      enum:
                        - Tigera
                        - Public
                      type: string
                  type: object
              type: object
            status:
              description:
                ManagementClusterConnectionStatus defines the observed state
                of ManagementClusterConnection
              properties:
                conditions:
                  description: |-
                    Conditions represents the latest observed set of conditions for the component. A component may be one or more of
                    Ready, Progressing, Degraded or other customer types.
                  items:
                    description:
                      Condition contains details for one aspect of the current
                      state of this API Resource.
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/operator.tigera.io_tigerastatuses.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: tigerastatuses.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: TigeraStatus
    listKind: TigeraStatusList
    plural: tigerastatuses
    singular: tigerastatus
  scope: Cluster
  versions:
    - additionalPrinterColumns:
        - description: Whether the component running and stable.
          jsonPath: .status.conditions[?(@.type=='Available')].status
          name: Available
          type: string
        - description: Whether the component is processing changes.
          jsonPath: .status.conditions[?(@.type=='Progressing')].status
          name: Progressing
          type: string
        - description: Whether the component is degraded.
          jsonPath: .status.conditions[?(@.type=='Degraded')].status
          name: Degraded
          type: string
        - description: The time the component's Available status last changed.
          jsonPath: .status.conditions[?(@.type=='Available')].lastTransitionTime
          name: Since
          type: date
      name: v1
      schema:
        openAPIV3Schema:
          description:
            TigeraStatus represents the most recently observed status for
            Calico or a Calico Enterprise functional area.
          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: TigeraStatusSpec defines the desired state of TigeraStatus
              type: object
            status:
              description: TigeraStatusStatus defines the observed state of TigeraStatus
              properties:
                conditions:
                  description: |-
                    Conditions represents the latest observed set of conditions for this component. A component may be one or more of
                    Available, Progressing, or Degraded.
                  items:
                    description:
                      TigeraStatusCondition represents a condition attached
                      to a particular component.
                    properties:
                      lastTransitionTime:
                        description:
                          The timestamp representing the start time for the
                          current status.
                        format: date-time
                        type: string
                      message:
                        description:
                          Optionally, a detailed message providing additional
                          context.
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the generation that the condition was set based upon.
                          For instance, if generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        type: integer
                      reason:
                        description: A brief reason explaining the condition.
                        type: string
                      status:
                        description:
                          The status of the condition. May be True, False,
                          or Unknown.
                        type: string
                      type:
                        description:
                          The type of condition. May be Available, Progressing,
                          or Degraded.
                        type: string
                    required:
                      - lastTransitionTime
                      - status
                      - type
                    type: object
                  type: array
              required:
                - conditions
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/operator.tigera.io_whiskers.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: whiskers.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: Whisker
    listKind: WhiskerList
    plural: whiskers
    singular: whisker
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              description: |-
                APIVersion defines the versioned schema of this representation of an object.
                Servers should convert recognized schemas to the latest internal value, and
                may reject unrecognized values.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
              type: string
            kind:
              description: |-
                Kind is a string value representing the REST resource this object represents.
                Servers may infer this from the endpoint the client submits requests to.
                Cannot be updated.
                In CamelCase.
                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
              type: string
            metadata:
              type: object
            spec:
              properties:
                notifications:
                  description: |-
                    Default: Enabled
                    This setting enables calls to an external API to retrieve notification banner text in the Whisker UI.
                    Allowed values are Enabled or Disabled. Defaults to Enabled.
                  type: string
                whiskerDeployment:
                  description:
                    WhiskerDeployment is the configuration for the whisker
                    Deployment.
                  properties:
                    metadata:
                      description:
                        Metadata is a subset of a Kubernetes object's metadata
                        that is added to the Deployment.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: |-
                            Annotations is a map of arbitrary non-identifying metadata. Each of these
                            key/value pairs are added to the object's annotations provided the key does not
                            already exist in the object's annotations.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: |-
                            Labels is a map of string keys and values that may match replicaset and
                            service selectors. Each of these key/value pairs are added to the
                            object's labels provided the key does not already exist in the object's labels.
                          type: object
                      type: object
                    spec:
                      description: Spec is the specification of the whisker Deployment.
                      properties:
                        minReadySeconds:
                          description: |-
                            MinReadySeconds is the minimum number of seconds for which a newly created Deployment pod should
                            be ready without any of its container crashing, for it to be considered available.
                            If specified, this overrides any minReadySeconds value that may be set on the whisker Deployment.
                            If omitted, the whisker Deployment will use its default value for minReadySeconds.
                          format: int32
                          maximum: 2147483647
                          minimum: 0
                          type: integer
                        strategy:
                          description:
                            The deployment strategy to use to replace existing
                            pods with new ones.
                          properties:
                            rollingUpdate:
                              description: |-
                                Rolling update config params. Present only if DeploymentStrategyType =
                                RollingUpdate.
                                to be.
                              properties:
                                maxSurge:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: |-
                                    The maximum number of pods that can be scheduled above the desired number of
                                    pods.
                                    Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                    This can not be 0 if MaxUnavailable is 0.
                                    Absolute number is calculated from percentage by rounding up.
                                    Defaults to 25%.
                                    Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
                                    the rolling update starts, such that the total number of old and new pods do not exceed
                                    130% of desired pods. Once old pods have been killed,
                                    new ReplicaSet can be scaled up further, ensuring that total number of pods running
                                    at any time during the update is at most 130% of desired pods.
                                  x-kubernetes-int-or-string: true
                                maxUnavailable:
                                  anyOf:
                                    - type: integer
                                    - type: string
                                  description: |-
                                    The maximum number of pods that can be unavailable during the update.
                                    Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
                                    Absolute number is calculated from percentage by rounding down.
                                    This can not be 0 if MaxSurge is 0.
                                    Defaults to 25%.
                                    Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
                                    immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
                                    can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
                                    that the total number of pods available at all times during the update is at
                                    least 70% of desired pods.
                                  x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        template:
                          description:
                            Template describes the whisker Deployment pod
                            that will be created.
                          properties:
                            metadata:
                              description:
                                Metadata is a subset of a Kubernetes object's
                                metadata that is added to the pod's metadata.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Annotations is a map of arbitrary non-identifying metadata. Each of these
                                    key/value pairs are added to the object's annotations provided the key does not
                                    already exist in the object's annotations.
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    Labels is a map of string keys and values that may match replicaset and
                                    service selectors. Each of these key/value pairs are added to the
                                    object's labels provided the key does not already exist in the object's labels.
                                  type: object
                              type: object
                            spec:
                              description: Spec is the whisker Deployment's PodSpec.
                              properties:
                                affinity:
                                  description:
                                    Affinity is a group of affinity scheduling
                                    rules for the whisker 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                        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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                            - nodeSelectorTerms
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      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.
                                                      If it's null, this PodAffinityTerm matches with no 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
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  matchLabelKeys:
                                                    description: |-
                                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  mismatchLabelKeys:
                                                    description: |-
                                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                                      be taken into consideration. The keys are used to lookup values from the
                                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                      to select the group of existing pods which pods will be taken into consideration
                                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                      pod labels will be ignored. The default value is empty.
                                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  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.
                                                    properties:
                                                      matchExpressions:
                                                        description:
                                                          matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: |-
                                                            A label selector requirement is a selector that contains values, a key, and an operator that
                                                            relates the key and values.
                                                          properties:
                                                            key:
                                                              description:
                                                                key is the
                                                                label key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: |-
                                                                operator represents a key's relationship to a set of values.
                                                                Valid operators are In, NotIn, Exists and DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: |-
                                                                values is an array of string values. If the operator is In or NotIn,
                                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                                the values array must be empty. This array is replaced during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                              x-kubernetes-list-type: atomic
                                                          required:
                                                            - key
                                                            - operator
                                                          type: object
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: |-
                                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                        type: object
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  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
                                                    x-kubernetes-list-type: atomic
                                                  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
                                          x-kubernetes-list-type: atomic
                                        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.
                                                  If it's null, this PodAffinityTerm matches with no 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
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              matchLabelKeys:
                                                description: |-
                                                  MatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                                  Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              mismatchLabelKeys:
                                                description: |-
                                                  MismatchLabelKeys is a set of pod label keys to select which pods will
                                                  be taken into consideration. The keys are used to lookup values from the
                                                  incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                                  to select the group of existing pods which pods will be taken into consideration
                                                  for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                                  pod labels will be ignored. The default value is empty.
                                                  The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                                  Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                                  This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              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.
                                                properties:
                                                  matchExpressions:
                                                    description:
                                                      matchExpressions is
                                                      a list of label selector requirements.
                                                      The requirements are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description:
                                                            key is the label
                                                            key that the selector applies
                                                            to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                        - key
                                                        - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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
                                                x-kubernetes-list-type: atomic
                                              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
                                          x-kubernetes-list-type: atomic
                                      type: object
                                  type: object
                                containers:
                                  description: |-
                                    Containers is a list of whisker containers.
                                    If specified, this overrides the specified EGW Deployment containers.
                                    If omitted, the whisker Deployment will use its default values for its containers.
                                  items:
                                    properties:
                                      name:
                                        enum:
                                          - whisker
                                          - whisker-backend
                                        type: string
                                      resources:
                                        description:
                                          ResourceRequirements describes
                                          the compute resource requirements.
                                        properties:
                                          claims:
                                            description: |-
                                              Claims lists the names of resources, defined in spec.resourceClaims,
                                              that are used by this container.
                                              This is an alpha field and requires enabling the
                                              DynamicResourceAllocation feature gate.
                                              This field is immutable. It can only be set for containers.
                                            items:
                                              description:
                                                ResourceClaim references
                                                one entry in PodSpec.ResourceClaims.
                                              properties:
                                                name:
                                                  description: |-
                                                    Name must match the name of one entry in pod.spec.resourceClaims of
                                                    the Pod where this field is used. It makes that resource available
                                                    inside a container.
                                                  type: string
                                                request:
                                                  description: |-
                                                    Request is the name chosen for a request in the referenced claim.
                                                    If empty, everything from the claim is made available, otherwise
                                                    only the result of this request.
                                                  type: string
                                              required:
                                                - name
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                              - name
                                            x-kubernetes-list-type: map
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Limits describes the maximum amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                                - type: integer
                                                - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: |-
                                              Requests describes the minimum amount of compute resources required.
                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                                            type: object
                                        type: object
                                    required:
                                      - name
                                    type: object
                                  type: array
                                nodeSelector:
                                  additionalProperties:
                                    type: string
                                  description:
                                    NodeSelector gives more control over
                                    the nodes where the whisker pods will run on.
                                  type: object
                                priorityClassName:
                                  description:
                                    PriorityClassName allows to specify a
                                    PriorityClass resource to be used.
                                  type: string
                                terminationGracePeriodSeconds:
                                  description:
                                    TerminationGracePeriodSeconds defines
                                    the termination grace period of the whisker pods
                                    in seconds.
                                  format: int64
                                  minimum: 0
                                  type: integer
                                tolerations:
                                  description: |-
                                    Tolerations is the whisker pod's tolerations.
                                    If specified, this overrides any tolerations that may be set on the whisker Deployment.
                                    If omitted, the whisker Deployment will use its default value for tolerations.
                                  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
                                topologySpreadConstraints:
                                  description: |-
                                    TopologySpreadConstraints describes how a group of pods ought to spread across topology
                                    domains. Scheduler will schedule pods in a way which abides by the constraints.
                                    All topologySpreadConstraints are ANDed.
                                  items:
                                    description:
                                      TopologySpreadConstraint specifies
                                      how to spread matching pods among the given topology.
                                    properties:
                                      labelSelector:
                                        description: |-
                                          LabelSelector is used to find matching pods.
                                          Pods that match this label selector are counted to determine the number of pods
                                          in their corresponding topology domain.
                                        properties:
                                          matchExpressions:
                                            description:
                                              matchExpressions is a list
                                              of label selector requirements. The requirements
                                              are ANDed.
                                            items:
                                              description: |-
                                                A label selector requirement is a selector that contains values, a key, and an operator that
                                                relates the key and values.
                                              properties:
                                                key:
                                                  description:
                                                    key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    operator represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: |-
                                                    values is an array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. This array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                                - key
                                                - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: |-
                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: |-
                                          MatchLabelKeys is a set of pod label keys to select the pods over which
                                          spreading will be calculated. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are ANDed with labelSelector
                                          to select the group of existing pods over which spreading will be calculated
                                          for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
                                          MatchLabelKeys cannot be set when LabelSelector isn't set.
                                          Keys that don't exist in the incoming pod labels will
                                          be ignored. A null or empty list means only match against labelSelector.
                                          This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      maxSkew:
                                        description: |-
                                          MaxSkew describes the degree to which pods may be unevenly distributed.
                                          When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
                                          between the number of matching pods in the target topology and the global minimum.
                                          The global minimum is the minimum number of matching pods in an eligible domain
                                          or zero if the number of eligible domains is less than MinDomains.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 2/2/1:
                                          In this case, the global minimum is 1.
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |   P   |
                                          - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
                                          scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
                                          violate MaxSkew(1).
                                          - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                                          When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
                                          to topologies that satisfy it.
                                          It's a required field. Default value is 1 and 0 is not allowed.
                                        format: int32
                                        type: integer
                                      minDomains:
                                        description: |-
                                          MinDomains indicates a minimum number of eligible domains.
                                          When the number of eligible domains with matching topology keys is less than minDomains,
                                          Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
                                          And when the number of eligible domains with matching topology keys equals or greater than minDomains,
                                          this value has no effect on scheduling.
                                          As a result, when the number of eligible domains is less than minDomains,
                                          scheduler won't schedule more than maxSkew Pods to those domains.
                                          If value is nil, the constraint behaves as if MinDomains is equal to 1.
                                          Valid values are integers greater than 0.
                                          When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
                                          For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
                                          labelSelector spread as 2/2/2:
                                          | zone1 | zone2 | zone3 |
                                          |  P P  |  P P  |  P P  |
                                          The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
                                          In this situation, new pod with the same labelSelector cannot be scheduled,
                                          because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
                                          it will violate MaxSkew.
                                        format: int32
                                        type: integer
                                      nodeAffinityPolicy:
                                        description: |-
                                          NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
                                          when calculating pod topology spread skew. Options are:
                                          - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
                                          - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
                                          If this value is nil, the behavior is equivalent to the Honor policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      nodeTaintsPolicy:
                                        description: |-
                                          NodeTaintsPolicy indicates how we will treat node taints when calculating
                                          pod topology spread skew. Options are:
                                          - Honor: nodes without taints, along with tainted nodes for which the incoming pod
                                          has a toleration, are included.
                                          - Ignore: node taints are ignored. All nodes are included.
                                          If this value is nil, the behavior is equivalent to the Ignore policy.
                                          This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.
                                        type: string
                                      topologyKey:
                                        description: |-
                                          TopologyKey is the key of node labels. Nodes that have a label with this key
                                          and identical values are considered to be in the same topology.
                                          We consider each <key, value> as a "bucket", and try to put balanced number
                                          of pods into each bucket.
                                          We define a domain as a particular instance of a topology.
                                          Also, we define an eligible domain as a domain whose nodes meet the requirements of
                                          nodeAffinityPolicy and nodeTaintsPolicy.
                                          e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
                                          And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
                                          It's a required field.
                                        type: string
                                      whenUnsatisfiable:
                                        description: |-
                                          WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
                                          the spread constraint.
                                          - DoNotSchedule (default) tells the scheduler not to schedule it.
                                          - ScheduleAnyway tells the scheduler to schedule the pod in any location,
                                            but giving higher precedence to topologies that would help reduce the
                                            skew.
                                          A constraint is considered "Unsatisfiable" for an incoming pod
                                          if and only if every possible node assignment for that pod would violate
                                          "MaxSkew" on some topology.
                                          For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
                                          labelSelector spread as 3/1/1:
                                          | zone1 | zone2 | zone3 |
                                          | P P P |   P   |   P   |
                                          If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
                                          to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
                                          MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
                                          won't make it *more* imbalanced.
                                          It's a required field.
                                        type: string
                                    required:
                                      - maxSkew
                                      - topologyKey
                                      - whenUnsatisfiable
                                    type: object
                                  type: array
                              type: object
                          type: object
                      type: object
                  type: object
              type: object
            status:
              description: WhiskerStatus defines the observed state of Whisker
              properties:
                conditions:
                  description: |-
                    Conditions represents the latest observed set of conditions for the component. A component may be one or more of
                    Ready, Progressing, Degraded or other customer types.
                  items:
                    description:
                      Condition contains details for one aspect of the current
                      state of this API Resource.
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
---
# Source: crds/crd.projectcalico.org_bgpconfigurations.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: bgpconfigurations.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: BGPConfiguration
    listKind: BGPConfigurationList
    plural: bgpconfigurations
    singular: bgpconfiguration
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                asNumber:
                  format: int32
                  type: integer
                bindMode:
                  type: string
                communities:
                  items:
                    properties:
                      name:
                        type: string
                      value:
                        pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$
                        type: string
                    type: object
                  type: array
                ignoredInterfaces:
                  items:
                    type: string
                  type: array
                listenPort:
                  maximum: 65535
                  minimum: 1
                  type: integer
                localWorkloadPeeringIPV4:
                  type: string
                localWorkloadPeeringIPV6:
                  type: string
                logSeverityScreen:
                  type: string
                nodeMeshMaxRestartTime:
                  type: string
                nodeMeshPassword:
                  properties:
                    secretKeyRef:
                      properties:
                        key:
                          type: string
                        name:
                          default: ""
                          type: string
                        optional:
                          type: boolean
                      required:
                        - key
                      type: object
                      x-kubernetes-map-type: atomic
                  type: object
                nodeToNodeMeshEnabled:
                  type: boolean
                prefixAdvertisements:
                  items:
                    properties:
                      cidr:
                        type: string
                      communities:
                        items:
                          type: string
                        type: array
                    type: object
                  type: array
                serviceClusterIPs:
                  items:
                    properties:
                      cidr:
                        type: string
                    type: object
                  type: array
                serviceExternalIPs:
                  items:
                    properties:
                      cidr:
                        type: string
                    type: object
                  type: array
                serviceLoadBalancerAggregation:
                  default: Enabled
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                serviceLoadBalancerIPs:
                  items:
                    properties:
                      cidr:
                        type: string
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_bgpfilters.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: bgpfilters.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: BGPFilter
    listKind: BGPFilterList
    plural: bgpfilters
    singular: bgpfilter
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                exportV4:
                  items:
                    properties:
                      action:
                        type: string
                      cidr:
                        type: string
                      interface:
                        type: string
                      matchOperator:
                        type: string
                      prefixLength:
                        properties:
                          max:
                            format: int32
                            maximum: 32
                            minimum: 0
                            type: integer
                          min:
                            format: int32
                            maximum: 32
                            minimum: 0
                            type: integer
                        type: object
                      source:
                        type: string
                    required:
                      - action
                    type: object
                  type: array
                exportV6:
                  items:
                    properties:
                      action:
                        type: string
                      cidr:
                        type: string
                      interface:
                        type: string
                      matchOperator:
                        type: string
                      prefixLength:
                        properties:
                          max:
                            format: int32
                            maximum: 128
                            minimum: 0
                            type: integer
                          min:
                            format: int32
                            maximum: 128
                            minimum: 0
                            type: integer
                        type: object
                      source:
                        type: string
                    required:
                      - action
                    type: object
                  type: array
                importV4:
                  items:
                    properties:
                      action:
                        type: string
                      cidr:
                        type: string
                      interface:
                        type: string
                      matchOperator:
                        type: string
                      prefixLength:
                        properties:
                          max:
                            format: int32
                            maximum: 32
                            minimum: 0
                            type: integer
                          min:
                            format: int32
                            maximum: 32
                            minimum: 0
                            type: integer
                        type: object
                      source:
                        type: string
                    required:
                      - action
                    type: object
                  type: array
                importV6:
                  items:
                    properties:
                      action:
                        type: string
                      cidr:
                        type: string
                      interface:
                        type: string
                      matchOperator:
                        type: string
                      prefixLength:
                        properties:
                          max:
                            format: int32
                            maximum: 128
                            minimum: 0
                            type: integer
                          min:
                            format: int32
                            maximum: 128
                            minimum: 0
                            type: integer
                        type: object
                      source:
                        type: string
                    required:
                      - action
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_bgppeers.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: bgppeers.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: BGPPeer
    listKind: BGPPeerList
    plural: bgppeers
    singular: bgppeer
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                asNumber:
                  format: int32
                  type: integer
                filters:
                  items:
                    type: string
                  type: array
                keepOriginalNextHop:
                  type: boolean
                keepaliveTime:
                  type: string
                localASNumber:
                  format: int32
                  type: integer
                localWorkloadSelector:
                  type: string
                maxRestartTime:
                  type: string
                nextHopMode:
                  allOf:
                    - enum:
                        - Auto
                        - Self
                        - Keep
                    - enum:
                        - Auto
                        - Self
                        - Keep
                  type: string
                node:
                  type: string
                nodeSelector:
                  type: string
                numAllowedLocalASNumbers:
                  format: int32
                  type: integer
                password:
                  properties:
                    secretKeyRef:
                      properties:
                        key:
                          type: string
                        name:
                          default: ""
                          type: string
                        optional:
                          type: boolean
                      required:
                        - key
                      type: object
                      x-kubernetes-map-type: atomic
                  type: object
                peerIP:
                  type: string
                peerSelector:
                  type: string
                reachableBy:
                  type: string
                reversePeering:
                  enum:
                    - Auto
                    - Manual
                  type: string
                sourceAddress:
                  type: string
                ttlSecurity:
                  type: integer
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_blockaffinities.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: blockaffinities.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: BlockAffinity
    listKind: BlockAffinityList
    plural: blockaffinities
    singular: blockaffinity
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                cidr:
                  type: string
                deleted:
                  type: string
                node:
                  type: string
                state:
                  type: string
                type:
                  type: string
              required:
                - cidr
                - deleted
                - node
                - state
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_caliconodestatuses.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: caliconodestatuses.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: CalicoNodeStatus
    listKind: CalicoNodeStatusList
    plural: caliconodestatuses
    singular: caliconodestatus
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                classes:
                  items:
                    type: string
                  type: array
                node:
                  type: string
                updatePeriodSeconds:
                  format: int32
                  type: integer
              type: object
            status:
              properties:
                agent:
                  properties:
                    birdV4:
                      properties:
                        lastBootTime:
                          type: string
                        lastReconfigurationTime:
                          type: string
                        routerID:
                          type: string
                        state:
                          type: string
                        version:
                          type: string
                      type: object
                    birdV6:
                      properties:
                        lastBootTime:
                          type: string
                        lastReconfigurationTime:
                          type: string
                        routerID:
                          type: string
                        state:
                          type: string
                        version:
                          type: string
                      type: object
                  type: object
                bgp:
                  properties:
                    numberEstablishedV4:
                      type: integer
                    numberEstablishedV6:
                      type: integer
                    numberNotEstablishedV4:
                      type: integer
                    numberNotEstablishedV6:
                      type: integer
                    peersV4:
                      items:
                        properties:
                          peerIP:
                            type: string
                          since:
                            type: string
                          state:
                            type: string
                          type:
                            type: string
                        type: object
                      type: array
                    peersV6:
                      items:
                        properties:
                          peerIP:
                            type: string
                          since:
                            type: string
                          state:
                            type: string
                          type:
                            type: string
                        type: object
                      type: array
                  required:
                    - numberEstablishedV4
                    - numberEstablishedV6
                    - numberNotEstablishedV4
                    - numberNotEstablishedV6
                  type: object
                lastUpdated:
                  format: date-time
                  nullable: true
                  type: string
                routes:
                  properties:
                    routesV4:
                      items:
                        properties:
                          destination:
                            type: string
                          gateway:
                            type: string
                          interface:
                            type: string
                          learnedFrom:
                            properties:
                              peerIP:
                                type: string
                              sourceType:
                                type: string
                            type: object
                          type:
                            type: string
                        type: object
                      type: array
                    routesV6:
                      items:
                        properties:
                          destination:
                            type: string
                          gateway:
                            type: string
                          interface:
                            type: string
                          learnedFrom:
                            properties:
                              peerIP:
                                type: string
                              sourceType:
                                type: string
                            type: object
                          type:
                            type: string
                        type: object
                      type: array
                  type: object
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_clusterinformations.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: clusterinformations.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: ClusterInformation
    listKind: ClusterInformationList
    plural: clusterinformations
    singular: clusterinformation
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                calicoVersion:
                  type: string
                clusterGUID:
                  type: string
                clusterType:
                  type: string
                datastoreReady:
                  type: boolean
                variant:
                  type: string
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_felixconfigurations.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: felixconfigurations.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: FelixConfiguration
    listKind: FelixConfigurationList
    plural: felixconfigurations
    singular: felixconfiguration
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: Felix Configuration contains the configuration for Felix.
          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: FelixConfigurationSpec contains the values of the Felix configuration.
              properties:
                allowIPIPPacketsFromWorkloads:
                  description: |-
                    AllowIPIPPacketsFromWorkloads controls whether Felix will add a rule to drop IPIP encapsulated traffic
                    from workloads. [Default: false]
                  type: boolean
                allowVXLANPacketsFromWorkloads:
                  description: |-
                    AllowVXLANPacketsFromWorkloads controls whether Felix will add a rule to drop VXLAN encapsulated traffic
                    from workloads. [Default: false]
                  type: boolean
                awsSrcDstCheck:
                  description: |-
                    AWSSrcDstCheck controls whether Felix will try to change the "source/dest check" setting on the EC2 instance
                    on which it is running. A value of "Disable" will try to disable the source/dest check. Disabling the check
                    allows for sending workload traffic without encapsulation within the same AWS subnet.
                    [Default: DoNothing]
                  enum:
                    - DoNothing
                    - Enable
                    - Disable
                  type: string
                bpfAttachType:
                  description: |-
                    BPFAttachType controls how are the BPF programs at the network interfaces attached.
                    By default `TCX` is used where available to enable easier coexistence with 3rd party programs.
                    `TC` can force the legacy method of attaching via a qdisc. `TCX` falls back to `TC` if `TCX` is not available.
                    [Default: TCX]
                  enum:
                    - TC
                    - TCX
                  type: string
                bpfCTLBLogFilter:
                  description: |-
                    BPFCTLBLogFilter specifies, what is logged by connect time load balancer when BPFLogLevel is
                    debug. Currently has to be specified as 'all' when BPFLogFilters is set
                    to see CTLB logs.
                    [Default: unset - means logs are emitted when BPFLogLevel id debug and BPFLogFilters not set.]
                  type: string
                bpfConnectTimeLoadBalancing:
                  description: |-
                    BPFConnectTimeLoadBalancing when in BPF mode, controls whether Felix installs the connect-time load
                    balancer. The connect-time load balancer is required for the host to be able to reach Kubernetes services
                    and it improves the performance of pod-to-service connections.When set to TCP, connect time load balancing
                    is available only for services with TCP ports. [Default: TCP]
                  enum:
                    - TCP
                    - Enabled
                    - Disabled
                  type: string
                bpfConnectTimeLoadBalancingEnabled:
                  description: |-
                    BPFConnectTimeLoadBalancingEnabled when in BPF mode, controls whether Felix installs the connection-time load
                    balancer.  The connect-time load balancer is required for the host to be able to reach Kubernetes services
                    and it improves the performance of pod-to-service connections.  The only reason to disable it is for debugging
                    purposes.

                    Deprecated: Use BPFConnectTimeLoadBalancing [Default: true]
                  type: boolean
                bpfConntrackLogLevel:
                  description: |-
                    BPFConntrackLogLevel controls the log level of the BPF conntrack cleanup program, which runs periodically
                    to clean up expired BPF conntrack entries.
                    [Default: Off].
                  enum:
                    - "Off"
                    - Debug
                  type: string
                bpfConntrackMode:
                  description: |-
                    BPFConntrackCleanupMode controls how BPF conntrack entries are cleaned up.  `Auto` will use a BPF program if supported,
                    falling back to userspace if not.  `Userspace` will always use the userspace cleanup code.  `BPFProgram` will
                    always use the BPF program (failing if not supported).

                    /To be deprecated in future versions as conntrack map type changed to
                    lru_hash and userspace cleanup is the only mode that is supported.
                    [Default: Userspace]
                  enum:
                    - Auto
                    - Userspace
                    - BPFProgram
                  type: string
                bpfConntrackTimeouts:
                  description: |-
                    BPFConntrackTimers overrides the default values for the specified conntrack timer if
                    set. Each value can be either a duration or `Auto` to pick the value from
                    a Linux conntrack timeout.

                    Configurable timers are: CreationGracePeriod, TCPSynSent,
                    TCPEstablished, TCPFinsSeen, TCPResetSeen, UDPTimeout, GenericTimeout,
                    ICMPTimeout.

                    Unset values are replaced by the default values with a warning log for
                    incorrect values.
                  properties:
                    creationGracePeriod:
                      description: |-
                        CreationGracePeriod gives a generic grace period to new connections
                        before they are considered for cleanup [Default: 10s].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    genericTimeout:
                      description: |-
                        GenericTimeout controls how long it takes before considering this
                        entry for cleanup after the connection became idle. If set to 'Auto', the
                        value from nf_conntrack_generic_timeout is used. If nil, Calico uses its
                        own default value. [Default: 10m].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    icmpTimeout:
                      description: |-
                        ICMPTimeout controls how long it takes before considering this
                        entry for cleanup after the connection became idle. If set to 'Auto', the
                        value from nf_conntrack_icmp_timeout is used. If nil, Calico uses its
                        own default value. [Default: 5s].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    tcpEstablished:
                      description: |-
                        TCPEstablished controls how long it takes before considering this entry for
                        cleanup after the connection became idle. If set to 'Auto', the
                        value from nf_conntrack_tcp_timeout_established is used. If nil, Calico uses
                        its own default value. [Default: 1h].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    tcpFinsSeen:
                      description: |-
                        TCPFinsSeen controls how long it takes before considering this entry for
                        cleanup after the connection was closed gracefully. If set to 'Auto', the
                        value from nf_conntrack_tcp_timeout_time_wait is used. If nil, Calico uses
                        its own default value. [Default: Auto].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    tcpResetSeen:
                      description: |-
                        TCPResetSeen controls how long it takes before considering this entry for
                        cleanup after the connection was aborted. If nil, Calico uses its own
                        default value. [Default: 40s].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    tcpSynSent:
                      description: |-
                        TCPSynSent controls how long it takes before considering this entry for
                        cleanup after the last SYN without a response. If set to 'Auto', the
                        value from nf_conntrack_tcp_timeout_syn_sent is used. If nil, Calico uses
                        its own default value. [Default: 20s].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                    udpTimeout:
                      description: |-
                        UDPTimeout controls how long it takes before considering this entry for
                        cleanup after the connection became idle. If nil, Calico uses its own
                        default value. [Default: 60s].
                      pattern: ^(([0-9]*(\.[0-9]*)?(ms|s|h|m|us)+)+|Auto)$
                      type: string
                  type: object
                bpfDSROptoutCIDRs:
                  description: |-
                    BPFDSROptoutCIDRs is a list of CIDRs which are excluded from DSR. That is, clients
                    in those CIDRs will access service node ports as if BPFExternalServiceMode was set to
                    Tunnel.
                  items:
                    type: string
                  type: array
                bpfDataIfacePattern:
                  description: |-
                    BPFDataIfacePattern is a regular expression that controls which interfaces Felix should attach BPF programs to
                    in order to catch traffic to/from the network.  This needs to match the interfaces that Calico workload traffic
                    flows over as well as any interfaces that handle incoming traffic to nodeports and services from outside the
                    cluster.  It should not match the workload interfaces (usually named cali...) or any other special device managed
                    by Calico itself (e.g., tunnels).
                  type: string
                bpfDisableGROForIfaces:
                  description: |-
                    BPFDisableGROForIfaces is a regular expression that controls which interfaces Felix should disable the
                    Generic Receive Offload [GRO] option.  It should not match the workload interfaces (usually named cali...).
                  type: string
                bpfDisableUnprivileged:
                  description: |-
                    BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled sysctl to disable
                    unprivileged use of BPF.  This ensures that unprivileged users cannot access Calico's BPF maps and
                    cannot insert their own BPF programs to interfere with Calico's. [Default: true]
                  type: boolean
                bpfEnabled:
                  description:
                    "BPFEnabled, if enabled Felix will use the BPF dataplane.
                    [Default: false]"
                  type: boolean
                bpfEnforceRPF:
                  description: |-
                    BPFEnforceRPF enforce strict RPF on all host interfaces with BPF programs regardless of
                    what is the per-interfaces or global setting. Possible values are Disabled, Strict
                    or Loose. [Default: Loose]
                  pattern: ^(?i)(Disabled|Strict|Loose)?$
                  type: string
                bpfExcludeCIDRsFromNAT:
                  description: |-
                    BPFExcludeCIDRsFromNAT is a list of CIDRs that are to be excluded from NAT
                    resolution so that host can handle them. A typical usecase is node local
                    DNS cache.
                  items:
                    type: string
                  type: array
                bpfExportBufferSizeMB:
                  description: |-
                    BPFExportBufferSizeMB in BPF mode, controls the buffer size used for sending BPF events to felix.
                    [Default: 1]
                  type: integer
                bpfExtToServiceConnmark:
                  description: |-
                    BPFExtToServiceConnmark in BPF mode, controls a 32bit mark that is set on connections from an
                    external client to a local service. This mark allows us to control how packets of that
                    connection are routed within the host and how is routing interpreted by RPF check. [Default: 0]
                  type: integer
                bpfExternalServiceMode:
                  description: |-
                    BPFExternalServiceMode in BPF mode, controls how connections from outside the cluster to services (node ports
                    and cluster IPs) are forwarded to remote workloads.  If set to "Tunnel" then both request and response traffic
                    is tunneled to the remote node.  If set to "DSR", the request traffic is tunneled but the response traffic
                    is sent directly from the remote node.  In "DSR" mode, the remote node appears to use the IP of the ingress
                    node; this requires a permissive L2 network.  [Default: Tunnel]
                  pattern: ^(?i)(Tunnel|DSR)?$
                  type: string
                bpfForceTrackPacketsFromIfaces:
                  description: |-
                    BPFForceTrackPacketsFromIfaces in BPF mode, forces traffic from these interfaces
                    to skip Calico's iptables NOTRACK rule, allowing traffic from those interfaces to be
                    tracked by Linux conntrack.  Should only be used for interfaces that are not used for
                    the Calico fabric.  For example, a docker bridge device for non-Calico-networked
                    containers. [Default: docker+]
                  items:
                    type: string
                  type: array
                bpfHostConntrackBypass:
                  description: |-
                    BPFHostConntrackBypass Controls whether to bypass Linux conntrack in BPF mode for
                    workloads and services. [Default: true - bypass Linux conntrack]
                  type: boolean
                bpfHostNetworkedNATWithoutCTLB:
                  description: |-
                    BPFHostNetworkedNATWithoutCTLB when in BPF mode, controls whether Felix does a NAT without CTLB. This along with BPFConnectTimeLoadBalancing
                    determines the CTLB behavior. [Default: Enabled]
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                bpfJITHardening:
                  allOf:
                    - enum:
                        - Auto
                        - Strict
                    - enum:
                        - Auto
                        - Strict
                  description: |-
                    BPFJITHardening controls BPF JIT hardening. When set to "Auto", Felix will set JIT hardening to 1
                    if it detects the current value is 2 (strict mode that hurts performance). When set to "Strict",
                    Felix will not modify the JIT hardening setting. [Default: Auto]
                  type: string
                bpfKubeProxyEndpointSlicesEnabled:
                  description: |-
                    BPFKubeProxyEndpointSlicesEnabled is deprecated and has no effect. BPF
                    kube-proxy always accepts endpoint slices. This option will be removed in
                    the next release.
                  type: boolean
                bpfKubeProxyHealthzPort:
                  description: |-
                    BPFKubeProxyHealthzPort, in BPF mode, controls the port that Felix's embedded kube-proxy health check server binds to.
                    The health check server is used by external load balancers to determine if this node should receive traffic.  [Default: 10256]
                  type: integer
                bpfKubeProxyIptablesCleanupEnabled:
                  description: |-
                    BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF mode, Felix will proactively clean up the upstream
                    Kubernetes kube-proxy's iptables chains.  Should only be enabled if kube-proxy is not running.  [Default: true]
                  type: boolean
                bpfKubeProxyMinSyncPeriod:
                  description: |-
                    BPFKubeProxyMinSyncPeriod, in BPF mode, controls the minimum time between updates to the dataplane for Felix's
                    embedded kube-proxy.  Lower values give reduced set-up latency.  Higher values reduce Felix CPU usage by
                    batching up more work.  [Default: 1s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                bpfL3IfacePattern:
                  description: |-
                    BPFL3IfacePattern is a regular expression that allows to list tunnel devices like wireguard or vxlan (i.e., L3 devices)
                    in addition to BPFDataIfacePattern. That is, tunnel interfaces not created by Calico, that Calico workload traffic flows
                    over as well as any interfaces that handle incoming traffic to nodeports and services from outside the cluster.
                  type: string
                bpfLogFilters:
                  additionalProperties:
                    type: string
                  description: |-
                    BPFLogFilters is a map of key=values where the value is
                    a pcap filter expression and the key is an interface name with 'all'
                    denoting all interfaces, 'weps' all workload endpoints and 'heps' all host
                    endpoints.

                    When specified as an env var, it accepts a comma-separated list of
                    key=values.
                    [Default: unset - means all debug logs are emitted]
                  type: object
                bpfLogLevel:
                  description: |-
                    BPFLogLevel controls the log level of the BPF programs when in BPF dataplane mode.  One of "Off", "Info", or
                    "Debug".  The logs are emitted to the BPF trace pipe, accessible with the command `tc exec bpf debug`.
                    [Default: Off].
                  pattern: ^(?i)(Off|Info|Debug)?$
                  type: string
                bpfMapSizeConntrack:
                  description: |-
                    BPFMapSizeConntrack sets the size for the conntrack map.  This map must be large enough to hold
                    an entry for each active connection.  Warning: changing the size of the conntrack map can cause disruption.
                  type: integer
                bpfMapSizeConntrackCleanupQueue:
                  description: |-
                    BPFMapSizeConntrackCleanupQueue sets the size for the map used to hold NAT conntrack entries that are queued
                    for cleanup.  This should be big enough to hold all the NAT entries that expire within one cleanup interval.
                  minimum: 1
                  type: integer
                bpfMapSizeConntrackScaling:
                  description: |-
                    BPFMapSizeConntrackScaling controls whether and how we scale the conntrack map size depending
                    on its usage. 'Disabled' make the size stay at the default or whatever is set by
                    BPFMapSizeConntrack*. 'DoubleIfFull' doubles the size when the map is pretty much full even
                    after cleanups. [Default: DoubleIfFull]
                  pattern: ^(?i)(Disabled|DoubleIfFull)?$
                  type: string
                bpfMapSizeIPSets:
                  description: |-
                    BPFMapSizeIPSets sets the size for ipsets map.  The IP sets map must be large enough to hold an entry
                    for each endpoint matched by every selector in the source/destination matches in network policy.  Selectors
                    such as "all()" can result in large numbers of entries (one entry per endpoint in that case).
                  type: integer
                bpfMapSizeIfState:
                  description: |-
                    BPFMapSizeIfState sets the size for ifstate map.  The ifstate map must be large enough to hold an entry
                    for each device (host + workloads) on a host.
                  type: integer
                bpfMapSizeNATAffinity:
                  description: |-
                    BPFMapSizeNATAffinity sets the size of the BPF map that stores the affinity of a connection (for services that
                    enable that feature.
                  type: integer
                bpfMapSizeNATBackend:
                  description: |-
                    BPFMapSizeNATBackend sets the size for NAT back end map.
                    This is the total number of endpoints. This is mostly
                    more than the size of the number of services.
                  type: integer
                bpfMapSizeNATFrontend:
                  description: |-
                    BPFMapSizeNATFrontend sets the size for NAT front end map.
                    FrontendMap should be large enough to hold an entry for each nodeport,
                    external IP and each port in each service.
                  type: integer
                bpfMapSizePerCpuConntrack:
                  description: |-
                    BPFMapSizePerCPUConntrack determines the size of conntrack map based on the number of CPUs. If set to a
                    non-zero value, overrides BPFMapSizeConntrack with `BPFMapSizePerCPUConntrack * (Number of CPUs)`.
                    This map must be large enough to hold an entry for each active connection.  Warning: changing the size of the
                    conntrack map can cause disruption.
                  type: integer
                bpfMapSizeRoute:
                  description: |-
                    BPFMapSizeRoute sets the size for the routes map.  The routes map should be large enough
                    to hold one entry per workload and a handful of entries per host (enough to cover its own IPs and
                    tunnel IPs).
                  type: integer
                bpfPSNATPorts:
                  anyOf:
                    - type: integer
                    - type: string
                  description: |-
                    BPFPSNATPorts sets the range from which we randomly pick a port if there is a source port
                    collision. This should be within the ephemeral range as defined by RFC 6056 (1024–65535) and
                    preferably outside the  ephemeral ranges used by common operating systems. Linux uses
                    32768–60999, while others mostly use the IANA defined range 49152–65535. It is not necessarily
                    a problem if this range overlaps with the operating systems. Both ends of the range are
                    inclusive. [Default: 20000:29999]
                  pattern: ^.*
                  x-kubernetes-int-or-string: true
                bpfPolicyDebugEnabled:
                  description: |-
                    BPFPolicyDebugEnabled when true, Felix records detailed information
                    about the BPF policy programs, which can be examined with the calico-bpf command-line tool.
                  type: boolean
                bpfProfiling:
                  description: |-
                    BPFProfiling controls profiling of BPF programs. At the monent, it can be
                    Disabled or Enabled. [Default: Disabled]
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                bpfRedirectToPeer:
                  description: |-
                    BPFRedirectToPeer controls which whether it is allowed to forward straight to the
                    peer side of the workload devices. It is allowed for any host L2 devices by default
                    (L2Only), but it breaks TCP dump on the host side of workload device as it bypasses
                    it on ingress. Value of Enabled also allows redirection from L3 host devices like
                    IPIP tunnel or Wireguard directly to the peer side of the workload's device. This
                    makes redirection faster, however, it breaks tools like tcpdump on the peer side.
                    Use Enabled with caution. [Default: L2Only]
                  enum:
                    - Enabled
                    - Disabled
                    - L2Only
                  type: string
                cgroupV2Path:
                  description:
                    CgroupV2Path overrides the default location where to
                    find the cgroup hierarchy.
                  type: string
                chainInsertMode:
                  description: |-
                    ChainInsertMode controls whether Felix hooks the kernel's top-level iptables chains by inserting a rule
                    at the top of the chain or by appending a rule at the bottom. insert is the safe default since it prevents
                    Calico's rules from being bypassed. If you switch to append mode, be sure that the other rules in the chains
                    signal acceptance by falling through to the Calico rules, otherwise the Calico policy will be bypassed.
                    [Default: insert]
                  pattern: ^(?i)(Insert|Append)?$
                  type: string
                dataplaneDriver:
                  description: |-
                    DataplaneDriver filename of the external dataplane driver to use.  Only used if UseInternalDataplaneDriver
                    is set to false.
                  type: string
                dataplaneWatchdogTimeout:
                  description: |-
                    DataplaneWatchdogTimeout is the readiness/liveness timeout used for Felix's (internal) dataplane driver.
                    Deprecated: replaced by the generic HealthTimeoutOverrides.
                  type: string
                debugDisableLogDropping:
                  description: |-
                    DebugDisableLogDropping disables the dropping of log messages when the log buffer is full.  This can
                    significantly impact performance if log write-out is a bottleneck. [Default: false]
                  type: boolean
                debugHost:
                  description: |-
                    DebugHost is the host IP or hostname to bind the debug port to.  Only used
                    if DebugPort is set. [Default:localhost]
                  type: string
                debugMemoryProfilePath:
                  description:
                    DebugMemoryProfilePath is the path to write the memory
                    profile to when triggered by signal.
                  type: string
                debugPort:
                  description: |-
                    DebugPort if set, enables Felix's debug HTTP port, which allows memory and CPU profiles
                    to be retrieved.  The debug port is not secure, it should not be exposed to the internet.
                  type: integer
                debugSimulateCalcGraphHangAfter:
                  description: |-
                    DebugSimulateCalcGraphHangAfter is used to simulate a hang in the calculation graph after the specified duration.
                    This is useful in tests of the watchdog system only!
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                debugSimulateDataplaneApplyDelay:
                  description: |-
                    DebugSimulateDataplaneApplyDelay adds an artificial delay to every dataplane operation.  This is useful for
                    simulating a heavily loaded system for test purposes only.
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                debugSimulateDataplaneHangAfter:
                  description: |-
                    DebugSimulateDataplaneHangAfter is used to simulate a hang in the dataplane after the specified duration.
                    This is useful in tests of the watchdog system only!
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                defaultEndpointToHostAction:
                  description: |-
                    DefaultEndpointToHostAction controls what happens to traffic that goes from a workload endpoint to the host
                    itself (after the endpoint's egress policy is applied). By default, Calico blocks traffic from workload
                    endpoints to the host itself with an iptables "DROP" action. If you want to allow some or all traffic from
                    endpoint to host, set this parameter to RETURN or ACCEPT. Use RETURN if you have your own rules in the iptables
                    "INPUT" chain; Calico will insert its rules at the top of that chain, then "RETURN" packets to the "INPUT" chain
                    once it has completed processing workload endpoint egress policy. Use ACCEPT to unconditionally accept packets
                    from workloads after processing workload endpoint egress policy. [Default: Drop]
                  pattern: ^(?i)(Drop|Accept|Return)?$
                  type: string
                deviceRouteProtocol:
                  description: |-
                    DeviceRouteProtocol controls the protocol to set on routes programmed by Felix. The protocol is an 8-bit label
                    used to identify the owner of the route.
                  type: integer
                deviceRouteSourceAddress:
                  description: |-
                    DeviceRouteSourceAddress IPv4 address to set as the source hint for routes programmed by Felix. When not set
                    the source address for local traffic from host to workload will be determined by the kernel.
                  type: string
                deviceRouteSourceAddressIPv6:
                  description: |-
                    DeviceRouteSourceAddressIPv6 IPv6 address to set as the source hint for routes programmed by Felix. When not set
                    the source address for local traffic from host to workload will be determined by the kernel.
                  type: string
                disableConntrackInvalidCheck:
                  description: |-
                    DisableConntrackInvalidCheck disables the check for invalid connections in conntrack. While the conntrack
                    invalid check helps to detect malicious traffic, it can also cause issues with certain multi-NIC scenarios.
                  type: boolean
                endpointReportingDelay:
                  description: |-
                    EndpointReportingDelay is the delay before Felix reports endpoint status to the datastore. This is only used
                    by the OpenStack integration. [Default: 1s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                endpointReportingEnabled:
                  description: |-
                    EndpointReportingEnabled controls whether Felix reports endpoint status to the datastore. This is only used
                    by the OpenStack integration. [Default: false]
                  type: boolean
                endpointStatusPathPrefix:
                  description: |-
                    EndpointStatusPathPrefix is the path to the directory where endpoint status will be written. Endpoint status
                    file reporting is disabled if field is left empty.

                    Chosen directory should match the directory used by the CNI plugin for PodStartupDelay.
                    [Default: /var/run/calico]
                  type: string
                externalNodesList:
                  description: |-
                    ExternalNodesCIDRList is a list of CIDR's of external, non-Calico nodes from which VXLAN/IPIP overlay traffic
                    will be allowed.  By default, external tunneled traffic is blocked to reduce attack surface.
                  items:
                    type: string
                  type: array
                failsafeInboundHostPorts:
                  description: |-
                    FailsafeInboundHostPorts is a list of ProtoPort struct objects including UDP/TCP/SCTP ports and CIDRs that Felix will
                    allow incoming traffic to host endpoints on irrespective of the security policy. This is useful to avoid accidentally
                    cutting off a host with incorrect configuration. For backwards compatibility, if the protocol is not specified,
                    it defaults to "tcp". If a CIDR is not specified, it will allow traffic from all addresses. To disable all inbound host ports,
                    use the value "[]". The default value allows ssh access, DHCP, BGP, etcd and the Kubernetes API.
                    [Default: tcp:22, udp:68, tcp:179, tcp:2379, tcp:2380, tcp:5473, tcp:6443, tcp:6666, tcp:6667 ]
                  items:
                    description:
                      ProtoPort is combination of protocol, port, and CIDR.
                      Protocol and port must be specified.
                    properties:
                      net:
                        type: string
                      port:
                        type: integer
                      protocol:
                        type: string
                    required:
                      - port
                    type: object
                  type: array
                failsafeOutboundHostPorts:
                  description: |-
                    FailsafeOutboundHostPorts is a list of PortProto struct objects including UDP/TCP/SCTP ports and CIDRs that Felix
                    will allow outgoing traffic from host endpoints to irrespective of the security policy. This is useful to avoid accidentally
                    cutting off a host with incorrect configuration. For backwards compatibility, if the protocol is not specified, it defaults
                    to "tcp". If a CIDR is not specified, it will allow traffic from all addresses. To disable all outbound host ports,
                    use the value "[]". The default value opens etcd's standard ports to ensure that Felix does not get cut off from etcd
                    as well as allowing DHCP, DNS, BGP and the Kubernetes API.
                    [Default: udp:53, udp:67, tcp:179, tcp:2379, tcp:2380, tcp:5473, tcp:6443, tcp:6666, tcp:6667 ]
                  items:
                    description:
                      ProtoPort is combination of protocol, port, and CIDR.
                      Protocol and port must be specified.
                    properties:
                      net:
                        type: string
                      port:
                        type: integer
                      protocol:
                        type: string
                    required:
                      - port
                    type: object
                  type: array
                featureDetectOverride:
                  description: |-
                    FeatureDetectOverride is used to override feature detection based on auto-detected platform
                    capabilities.  Values are specified in a comma separated list with no spaces, example;
                    "SNATFullyRandom=true,MASQFullyRandom=false,RestoreSupportsLock=". A value of "true" or "false" will
                    force enable/disable feature, empty or omitted values fall back to auto-detection.
                  pattern: ^([a-zA-Z0-9-_]+=(true|false|),)*([a-zA-Z0-9-_]+=(true|false|))?$
                  type: string
                featureGates:
                  description: |-
                    FeatureGates is used to enable or disable tech-preview Calico features.
                    Values are specified in a comma separated list with no spaces, example;
                    "BPFConnectTimeLoadBalancingWorkaround=enabled,XyZ=false". This is
                    used to enable features that are not fully production ready.
                  pattern: ^([a-zA-Z0-9-_]+=([^=]+),)*([a-zA-Z0-9-_]+=([^=]+))?$
                  type: string
                floatingIPs:
                  description: |-
                    FloatingIPs configures whether or not Felix will program non-OpenStack floating IP addresses.  (OpenStack-derived
                    floating IPs are always programmed, regardless of this setting.)
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                flowLogsCollectorDebugTrace:
                  description: |-
                    When FlowLogsCollectorDebugTrace is set to true, enables the logs in the collector to be
                    printed in their entirety.
                  type: boolean
                flowLogsFlushInterval:
                  description:
                    FlowLogsFlushInterval configures the interval at which
                    Felix exports flow logs.
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                flowLogsGoldmaneServer:
                  description:
                    FlowLogGoldmaneServer is the flow server endpoint to
                    which flow data should be published.
                  type: string
                flowLogsLocalReporter:
                  description:
                    "FlowLogsLocalReporter configures local unix socket for
                    reporting flow data from each node. [Default: Disabled]"
                  enum:
                    - Disabled
                    - Enabled
                  type: string
                flowLogsPolicyEvaluationMode:
                  description: |-
                    Continuous - Felix evaluates active flows on a regular basis to determine the rule
                    traces in the flow logs. Any policy updates that impact a flow will be reflected in the
                    pending_policies field, offering a near-real-time view of policy changes across flows.
                    None - Felix stops evaluating pending traces.
                    [Default: Continuous]
                  enum:
                    - None
                    - Continuous
                  type: string
                genericXDPEnabled:
                  description: |-
                    GenericXDPEnabled enables Generic XDP so network cards that don't support XDP offload or driver
                    modes can use XDP. This is not recommended since it doesn't provide better performance than
                    iptables. [Default: false]
                  type: boolean
                goGCThreshold:
                  description: |-
                    GoGCThreshold Sets the Go runtime's garbage collection threshold.  I.e. the percentage that the heap is
                    allowed to grow before garbage collection is triggered.  In general, doubling the value halves the CPU time
                    spent doing GC, but it also doubles peak GC memory overhead.  A special value of -1 can be used
                    to disable GC entirely; this should only be used in conjunction with the GoMemoryLimitMB setting.

                    This setting is overridden by the GOGC environment variable.

                    [Default: 40]
                  type: integer
                goMaxProcs:
                  description: |-
                    GoMaxProcs sets the maximum number of CPUs that the Go runtime will use concurrently.  A value of -1 means
                    "use the system default"; typically the number of real CPUs on the system.

                    this setting is overridden by the GOMAXPROCS environment variable.

                    [Default: -1]
                  type: integer
                goMemoryLimitMB:
                  description: |-
                    GoMemoryLimitMB sets a (soft) memory limit for the Go runtime in MB.  The Go runtime will try to keep its memory
                    usage under the limit by triggering GC as needed.  To avoid thrashing, it will exceed the limit if GC starts to
                    take more than 50% of the process's CPU time.  A value of -1 disables the memory limit.

                    Note that the memory limit, if used, must be considerably less than any hard resource limit set at the container
                    or pod level.  This is because felix is not the only process that must run in the container or pod.

                    This setting is overridden by the GOMEMLIMIT environment variable.

                    [Default: -1]
                  type: integer
                healthEnabled:
                  description: |-
                    HealthEnabled if set to true, enables Felix's health port, which provides readiness and liveness endpoints.
                    [Default: false]
                  type: boolean
                healthHost:
                  description:
                    "HealthHost is the host that the health server should
                    bind to. [Default: localhost]"
                  type: string
                healthPort:
                  description:
                    "HealthPort is the TCP port that the health server should
                    bind to. [Default: 9099]"
                  type: integer
                healthTimeoutOverrides:
                  description: |-
                    HealthTimeoutOverrides allows the internal watchdog timeouts of individual subcomponents to be
                    overridden.  This is useful for working around "false positive" liveness timeouts that can occur
                    in particularly stressful workloads or if CPU is constrained.  For a list of active
                    subcomponents, see Felix's logs.
                  items:
                    properties:
                      name:
                        type: string
                      timeout:
                        type: string
                    required:
                      - name
                      - timeout
                    type: object
                  type: array
                interfaceExclude:
                  description: |-
                    InterfaceExclude A comma-separated list of interface names that should be excluded when Felix is resolving
                    host endpoints. The default value ensures that Felix ignores Kubernetes' internal `kube-ipvs0` device. If you
                    want to exclude multiple interface names using a single value, the list supports regular expressions. For
                    regular expressions you must wrap the value with `/`. For example having values `/^kube/,veth1` will exclude
                    all interfaces that begin with `kube` and also the interface `veth1`. [Default: kube-ipvs0]
                  type: string
                interfacePrefix:
                  description: |-
                    InterfacePrefix is the interface name prefix that identifies workload endpoints and so distinguishes
                    them from host endpoint interfaces. Note: in environments other than bare metal, the orchestrators
                    configure this appropriately. For example our Kubernetes and Docker integrations set the 'cali' value,
                    and our OpenStack integration sets the 'tap' value. [Default: cali]
                  type: string
                interfaceRefreshInterval:
                  description: |-
                    InterfaceRefreshInterval is the period at which Felix rescans local interfaces to verify their state.
                    The rescan can be disabled by setting the interval to 0.
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                ipForwarding:
                  description: |-
                    IPForwarding controls whether Felix sets the host sysctls to enable IP forwarding.  IP forwarding is required
                    when using Calico for workload networking.  This should be disabled only on hosts where Calico is used solely for
                    host protection. In BPF mode, due to a kernel interaction, either IPForwarding must be enabled or BPFEnforceRPF
                    must be disabled. [Default: Enabled]
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                ipipEnabled:
                  description: |-
                    IPIPEnabled overrides whether Felix should configure an IPIP interface on the host. Optional as Felix
                    determines this based on the existing IP pools. [Default: nil (unset)]
                  type: boolean
                ipipMTU:
                  description: |-
                    IPIPMTU controls the MTU to set on the IPIP tunnel device.  Optional as Felix auto-detects the MTU based on the
                    MTU of the host's interfaces. [Default: 0 (auto-detect)]
                  type: integer
                ipsetsRefreshInterval:
                  description: |-
                    IpsetsRefreshInterval controls the period at which Felix re-checks all IP sets to look for discrepancies.
                    Set to 0 to disable the periodic refresh. [Default: 90s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                iptablesBackend:
                  description: |-
                    IptablesBackend controls which backend of iptables will be used. The default is `Auto`.

                    Warning: changing this on a running system can leave "orphaned" rules in the "other" backend. These
                    should be cleaned up to avoid confusing interactions.
                  pattern: ^(?i)(Auto|Legacy|NFT)?$
                  type: string
                iptablesFilterAllowAction:
                  description: |-
                    IptablesFilterAllowAction controls what happens to traffic that is accepted by a Felix policy chain in the
                    iptables filter table (which is used for "normal" policy). The default will immediately `Accept` the traffic. Use
                    `Return` to send the traffic back up to the system chains for further processing.
                  pattern: ^(?i)(Accept|Return)?$
                  type: string
                iptablesFilterDenyAction:
                  description: |-
                    IptablesFilterDenyAction controls what happens to traffic that is denied by network policy. By default Calico blocks traffic
                    with an iptables "DROP" action. If you want to use "REJECT" action instead you can configure it in here.
                  pattern: ^(?i)(Drop|Reject)?$
                  type: string
                iptablesLockFilePath:
                  description: |-
                    IptablesLockFilePath is the location of the iptables lock file. You may need to change this
                    if the lock file is not in its standard location (for example if you have mapped it into Felix's
                    container at a different path). [Default: /run/xtables.lock]
                  type: string
                iptablesLockProbeInterval:
                  description: |-
                    IptablesLockProbeInterval when IptablesLockTimeout is enabled: the time that Felix will wait between
                    attempts to acquire the iptables lock if it is not available. Lower values make Felix more
                    responsive when the lock is contended, but use more CPU. [Default: 50ms]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                iptablesLockTimeout:
                  description: |-
                    IptablesLockTimeout is the time that Felix itself will wait for the iptables lock (rather than delegating the
                    lock handling to the `iptables` command).

                    Deprecated: `iptables-restore` v1.8+ always takes the lock, so enabling this feature results in deadlock.
                    [Default: 0s disabled]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                iptablesMangleAllowAction:
                  description: |-
                    IptablesMangleAllowAction controls what happens to traffic that is accepted by a Felix policy chain in the
                    iptables mangle table (which is used for "pre-DNAT" policy). The default will immediately `Accept` the traffic.
                    Use `Return` to send the traffic back up to the system chains for further processing.
                  pattern: ^(?i)(Accept|Return)?$
                  type: string
                iptablesMarkMask:
                  description: |-
                    IptablesMarkMask is the mask that Felix selects its IPTables Mark bits from. Should be a 32 bit hexadecimal
                    number with at least 8 bits set, none of which clash with any other mark bits in use on the system.
                    [Default: 0xffff0000]
                  format: int32
                  type: integer
                iptablesNATOutgoingInterfaceFilter:
                  description: |-
                    This parameter can be used to limit the host interfaces on which Calico will apply SNAT to traffic leaving a
                    Calico IPAM pool with "NAT outgoing" enabled. This can be useful if you have a main data interface, where
                    traffic should be SNATted and a secondary device (such as the docker bridge) which is local to the host and
                    doesn't require SNAT. This parameter uses the iptables interface matching syntax, which allows + as a
                    wildcard. Most users will not need to set this. Example: if your data interfaces are eth0 and eth1 and you
                    want to exclude the docker bridge, you could set this to eth+
                  type: string
                iptablesPostWriteCheckInterval:
                  description: |-
                    IptablesPostWriteCheckInterval is the period after Felix has done a write
                    to the dataplane that it schedules an extra read back in order to check the write was not
                    clobbered by another process. This should only occur if another application on the system
                    doesn't respect the iptables lock. [Default: 1s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                iptablesRefreshInterval:
                  description: |-
                    IptablesRefreshInterval is the period at which Felix re-checks the IP sets
                    in the dataplane to ensure that no other process has accidentally broken Calico's rules.
                    Set to 0 to disable IP sets refresh. Note: the default for this value is lower than the
                    other refresh intervals as a workaround for a Linux kernel bug that was fixed in kernel
                    version 4.11. If you are using v4.11 or greater you may want to set this to, a higher value
                    to reduce Felix CPU usage. [Default: 10s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                ipv6Support:
                  description:
                    IPv6Support controls whether Felix enables support for
                    IPv6 (if supported by the in-use dataplane).
                  type: boolean
                kubeNodePortRanges:
                  description: |-
                    KubeNodePortRanges holds list of port ranges used for service node ports. Only used if felix detects kube-proxy running in ipvs mode.
                    Felix uses these ranges to separate host and workload traffic. [Default: 30000:32767].
                  items:
                    anyOf:
                      - type: integer
                      - type: string
                    pattern: ^.*
                    x-kubernetes-int-or-string: true
                  type: array
                logDebugFilenameRegex:
                  description: |-
                    LogDebugFilenameRegex controls which source code files have their Debug log output included in the logs.
                    Only logs from files with names that match the given regular expression are included.  The filter only applies
                    to Debug level logs.
                  type: string
                logFilePath:
                  description:
                    "LogFilePath is the full path to the Felix log. Set to
                    none to disable file logging. [Default: /var/log/calico/felix.log]"
                  type: string
                logPrefix:
                  description:
                    "LogPrefix is the log prefix that Felix uses when rendering
                    LOG rules. [Default: calico-packet]"
                  type: string
                logSeverityFile:
                  description:
                    "LogSeverityFile is the log severity above which logs
                    are sent to the log file. [Default: Info]"
                  pattern: ^(?i)(Trace|Debug|Info|Warning|Error|Fatal)?$
                  type: string
                logSeverityScreen:
                  description:
                    "LogSeverityScreen is the log severity above which logs
                    are sent to the stdout. [Default: Info]"
                  pattern: ^(?i)(Trace|Debug|Info|Warning|Error|Fatal)?$
                  type: string
                logSeveritySys:
                  description: |-
                    LogSeveritySys is the log severity above which logs are sent to the syslog. Set to None for no logging to syslog.
                    [Default: Info]
                  pattern: ^(?i)(Trace|Debug|Info|Warning|Error|Fatal)?$
                  type: string
                maxIpsetSize:
                  description: |-
                    MaxIpsetSize is the maximum number of IP addresses that can be stored in an IP set. Not applicable
                    if using the nftables backend.
                  type: integer
                metadataAddr:
                  description: |-
                    MetadataAddr is the IP address or domain name of the server that can answer VM queries for
                    cloud-init metadata. In OpenStack, this corresponds to the machine running nova-api (or in
                    Ubuntu, nova-api-metadata). A value of none (case-insensitive) means that Felix should not
                    set up any NAT rule for the metadata path. [Default: 127.0.0.1]
                  type: string
                metadataPort:
                  description: |-
                    MetadataPort is the port of the metadata server. This, combined with global.MetadataAddr (if
                    not 'None'), is used to set up a NAT rule, from 169.254.169.254:80 to MetadataAddr:MetadataPort.
                    In most cases this should not need to be changed [Default: 8775].
                  type: integer
                mtuIfacePattern:
                  description: |-
                    MTUIfacePattern is a regular expression that controls which interfaces Felix should scan in order
                    to calculate the host's MTU.
                    This should not match workload interfaces (usually named cali...).
                  type: string
                natOutgoingAddress:
                  description: |-
                    NATOutgoingAddress specifies an address to use when performing source NAT for traffic in a natOutgoing pool that
                    is leaving the network. By default the address used is an address on the interface the traffic is leaving on
                    (i.e. it uses the iptables MASQUERADE target).
                  type: string
                natOutgoingExclusions:
                  description: |-
                    When a IP pool setting `natOutgoing` is true, packets sent from Calico networked containers in this IP pool to destinations will be masqueraded.
                    Configure which type of destinations is excluded from being masqueraded.
                    - IPPoolsOnly: destinations outside of this IP pool will be masqueraded.
                    - IPPoolsAndHostIPs: destinations outside of this IP pool and all hosts will be masqueraded.
                    [Default: IPPoolsOnly]
                  enum:
                    - IPPoolsOnly
                    - IPPoolsAndHostIPs
                  type: string
                natPortRange:
                  anyOf:
                    - type: integer
                    - type: string
                  description: |-
                    NATPortRange specifies the range of ports that is used for port mapping when doing outgoing NAT. When unset the default behavior of the
                    network stack is used.
                  pattern: ^.*
                  x-kubernetes-int-or-string: true
                netlinkTimeout:
                  description: |-
                    NetlinkTimeout is the timeout when talking to the kernel over the netlink protocol, used for programming
                    routes, rules, and other kernel objects. [Default: 10s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                nftablesFilterAllowAction:
                  description: |-
                    NftablesFilterAllowAction controls the nftables action that Felix uses to represent the "allow" policy verdict
                    in the filter table. The default is to `ACCEPT` the traffic, which is a terminal action.  Alternatively,
                    `RETURN` can be used to return the traffic back to the top-level chain for further processing by your rules.
                  pattern: ^(?i)(Accept|Return)?$
                  type: string
                nftablesFilterDenyAction:
                  description: |-
                    NftablesFilterDenyAction controls what happens to traffic that is denied by network policy. By default, Calico
                    blocks traffic with a "drop" action. If you want to use a "reject" action instead you can configure it here.
                  pattern: ^(?i)(Drop|Reject)?$
                  type: string
                nftablesMangleAllowAction:
                  description: |-
                    NftablesMangleAllowAction controls the nftables action that Felix uses to represent the "allow" policy verdict
                    in the mangle table. The default is to `ACCEPT` the traffic, which is a terminal action.  Alternatively,
                    `RETURN` can be used to return the traffic back to the top-level chain for further processing by your rules.
                  pattern: ^(?i)(Accept|Return)?$
                  type: string
                nftablesMarkMask:
                  description: |-
                    NftablesMarkMask is the mask that Felix selects its nftables Mark bits from. Should be a 32 bit hexadecimal
                    number with at least 8 bits set, none of which clash with any other mark bits in use on the system.
                    [Default: 0xffff0000]
                  format: int32
                  type: integer
                nftablesMode:
                  description:
                    "NFTablesMode configures nftables support in Felix. [Default:
                    Disabled]"
                  enum:
                    - Disabled
                    - Enabled
                    - Auto
                  type: string
                nftablesRefreshInterval:
                  description:
                    "NftablesRefreshInterval controls the interval at which
                    Felix periodically refreshes the nftables rules. [Default: 90s]"
                  type: string
                openstackRegion:
                  description: |-
                    OpenstackRegion is the name of the region that a particular Felix belongs to. In a multi-region
                    Calico/OpenStack deployment, this must be configured somehow for each Felix (here in the datamodel,
                    or in felix.cfg or the environment on each compute node), and must match the [calico]
                    openstack_region value configured in neutron.conf on each node. [Default: Empty]
                  type: string
                policySyncPathPrefix:
                  description: |-
                    PolicySyncPathPrefix is used to by Felix to communicate policy changes to external services,
                    like Application layer policy. [Default: Empty]
                  type: string
                programClusterRoutes:
                  description: |-
                    ProgramClusterRoutes specifies whether Felix should program IPIP routes instead of BIRD.
                    Felix always programs VXLAN routes. [Default: Disabled]
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                prometheusGoMetricsEnabled:
                  description: |-
                    PrometheusGoMetricsEnabled disables Go runtime metrics collection, which the Prometheus client does by default, when
                    set to false. This reduces the number of metrics reported, reducing Prometheus load. [Default: true]
                  type: boolean
                prometheusMetricsCAFile:
                  description: |-
                    PrometheusMetricsCAFile defines the absolute path to the TLS CA certificate file used for securing the /metrics endpoint.
                    This certificate must be valid and accessible by the calico-node process.
                  type: string
                prometheusMetricsCertFile:
                  description: |-
                    PrometheusMetricsCertFile defines the absolute path to the TLS certificate file used for securing the /metrics endpoint.
                    This certificate must be valid and accessible by the calico-node process.
                  type: string
                prometheusMetricsClientAuth:
                  description: |-
                    PrometheusMetricsClientAuth specifies the client authentication type for the /metrics endpoint.
                    This determines how the server validates client certificates. Default is "RequireAndVerifyClientCert".
                  type: string
                prometheusMetricsEnabled:
                  description:
                    "PrometheusMetricsEnabled enables the Prometheus metrics
                    server in Felix if set to true. [Default: false]"
                  type: boolean
                prometheusMetricsHost:
                  description:
                    "PrometheusMetricsHost is the host that the Prometheus
                    metrics server should bind to. [Default: empty]"
                  type: string
                prometheusMetricsKeyFile:
                  description: |-
                    PrometheusMetricsKeyFile defines the absolute path to the private key file corresponding to the TLS certificate
                    used for securing the /metrics endpoint. The private key must be valid and accessible by the calico-node process.
                  type: string
                prometheusMetricsPort:
                  description:
                    "PrometheusMetricsPort is the TCP port that the Prometheus
                    metrics server should bind to. [Default: 9091]"
                  type: integer
                prometheusProcessMetricsEnabled:
                  description: |-
                    PrometheusProcessMetricsEnabled disables process metrics collection, which the Prometheus client does by default, when
                    set to false. This reduces the number of metrics reported, reducing Prometheus load. [Default: true]
                  type: boolean
                prometheusWireGuardMetricsEnabled:
                  description: |-
                    PrometheusWireGuardMetricsEnabled disables wireguard metrics collection, which the Prometheus client does by default, when
                    set to false. This reduces the number of metrics reported, reducing Prometheus load. [Default: true]
                  type: boolean
                removeExternalRoutes:
                  description: |-
                    RemoveExternalRoutes Controls whether Felix will remove unexpected routes to workload interfaces. Felix will
                    always clean up expected routes that use the configured DeviceRouteProtocol.  To add your own routes, you must
                    use a distinct protocol (in addition to setting this field to false).
                  type: boolean
                reportingInterval:
                  description: |-
                    ReportingInterval is the interval at which Felix reports its status into the datastore or 0 to disable.
                    Must be non-zero in OpenStack deployments. [Default: 30s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                reportingTTL:
                  description:
                    "ReportingTTL is the time-to-live setting for process-wide
                    status reports. [Default: 90s]"
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                requireMTUFile:
                  description: |-
                    RequireMTUFile specifies whether mtu file is required to start the felix.
                    Optional as to keep the same as previous behavior. [Default: false]
                  type: boolean
                routeRefreshInterval:
                  description: |-
                    RouteRefreshInterval is the period at which Felix re-checks the routes
                    in the dataplane to ensure that no other process has accidentally broken Calico's rules.
                    Set to 0 to disable route refresh. [Default: 90s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                routeSource:
                  description: |-
                    RouteSource configures where Felix gets its routing information.
                    - WorkloadIPs: use workload endpoints to construct routes.
                    - CalicoIPAM: the default - use IPAM data to construct routes.
                  pattern: ^(?i)(WorkloadIPs|CalicoIPAM)?$
                  type: string
                routeSyncDisabled:
                  description: |-
                    RouteSyncDisabled will disable all operations performed on the route table. Set to true to
                    run in network-policy mode only.
                  type: boolean
                routeTableRange:
                  description: |-
                    Deprecated in favor of RouteTableRanges.
                    Calico programs additional Linux route tables for various purposes.
                    RouteTableRange specifies the indices of the route tables that Calico should use.
                  properties:
                    max:
                      type: integer
                    min:
                      type: integer
                  required:
                    - max
                    - min
                  type: object
                routeTableRanges:
                  description: |-
                    Calico programs additional Linux route tables for various purposes.
                    RouteTableRanges specifies a set of table index ranges that Calico should use.
                    Deprecates`RouteTableRange`, overrides `RouteTableRange`.
                  items:
                    properties:
                      max:
                        type: integer
                      min:
                        type: integer
                    required:
                      - max
                      - min
                    type: object
                  type: array
                serviceLoopPrevention:
                  description: |-
                    When service IP advertisement is enabled, prevent routing loops to service IPs that are
                    not in use, by dropping or rejecting packets that do not get DNAT'd by kube-proxy.
                    Unless set to "Disabled", in which case such routing loops continue to be allowed.
                    [Default: Drop]
                  pattern: ^(?i)(Drop|Reject|Disabled)?$
                  type: string
                sidecarAccelerationEnabled:
                  description:
                    "SidecarAccelerationEnabled enables experimental sidecar
                    acceleration [Default: false]"
                  type: boolean
                usageReportingEnabled:
                  description: |-
                    UsageReportingEnabled reports anonymous Calico version number and cluster size to projectcalico.org. Logs warnings returned by the usage
                    server. For example, if a significant security vulnerability has been discovered in the version of Calico being used. [Default: true]
                  type: boolean
                usageReportingInitialDelay:
                  description:
                    "UsageReportingInitialDelay controls the minimum delay
                    before Felix makes a report. [Default: 300s]"
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                usageReportingInterval:
                  description:
                    "UsageReportingInterval controls the interval at which
                    Felix makes reports. [Default: 86400s]"
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                useInternalDataplaneDriver:
                  description: |-
                    UseInternalDataplaneDriver, if true, Felix will use its internal dataplane programming logic.  If false, it
                    will launch an external dataplane driver and communicate with it over protobuf.
                  type: boolean
                vxlanEnabled:
                  description: |-
                    VXLANEnabled overrides whether Felix should create the VXLAN tunnel device for IPv4 VXLAN networking.
                    Optional as Felix determines this based on the existing IP pools. [Default: nil (unset)]
                  type: boolean
                vxlanMTU:
                  description: |-
                    VXLANMTU is the MTU to set on the IPv4 VXLAN tunnel device.  Optional as Felix auto-detects the MTU based on the
                    MTU of the host's interfaces. [Default: 0 (auto-detect)]
                  type: integer
                vxlanMTUV6:
                  description: |-
                    VXLANMTUV6 is the MTU to set on the IPv6 VXLAN tunnel device. Optional as Felix auto-detects the MTU based on the
                    MTU of the host's interfaces. [Default: 0 (auto-detect)]
                  type: integer
                vxlanPort:
                  description:
                    "VXLANPort is the UDP port number to use for VXLAN traffic.
                    [Default: 4789]"
                  type: integer
                vxlanVNI:
                  description: |-
                    VXLANVNI is the VXLAN VNI to use for VXLAN traffic.  You may need to change this if the default value is
                    in use on your system. [Default: 4096]
                  type: integer
                windowsManageFirewallRules:
                  description:
                    "WindowsManageFirewallRules configures whether or not
                    Felix will program Windows Firewall rules (to allow inbound access
                    to its own metrics ports). [Default: Disabled]"
                  enum:
                    - Enabled
                    - Disabled
                  type: string
                wireguardEnabled:
                  description:
                    "WireguardEnabled controls whether Wireguard is enabled
                    for IPv4 (encapsulating IPv4 traffic over an IPv4 underlay network).
                    [Default: false]"
                  type: boolean
                wireguardEnabledV6:
                  description:
                    "WireguardEnabledV6 controls whether Wireguard is enabled
                    for IPv6 (encapsulating IPv6 traffic over an IPv6 underlay network).
                    [Default: false]"
                  type: boolean
                wireguardHostEncryptionEnabled:
                  description:
                    "WireguardHostEncryptionEnabled controls whether Wireguard
                    host-to-host encryption is enabled. [Default: false]"
                  type: boolean
                wireguardInterfaceName:
                  description:
                    "WireguardInterfaceName specifies the name to use for
                    the IPv4 Wireguard interface. [Default: wireguard.cali]"
                  type: string
                wireguardInterfaceNameV6:
                  description:
                    "WireguardInterfaceNameV6 specifies the name to use for
                    the IPv6 Wireguard interface. [Default: wg-v6.cali]"
                  type: string
                wireguardKeepAlive:
                  description:
                    "WireguardPersistentKeepAlive controls Wireguard PersistentKeepalive
                    option. Set 0 to disable. [Default: 0]"
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
                wireguardListeningPort:
                  description:
                    "WireguardListeningPort controls the listening port used
                    by IPv4 Wireguard. [Default: 51820]"
                  type: integer
                wireguardListeningPortV6:
                  description:
                    "WireguardListeningPortV6 controls the listening port
                    used by IPv6 Wireguard. [Default: 51821]"
                  type: integer
                wireguardMTU:
                  description:
                    "WireguardMTU controls the MTU on the IPv4 Wireguard
                    interface. See Configuring MTU [Default: 1440]"
                  type: integer
                wireguardMTUV6:
                  description:
                    "WireguardMTUV6 controls the MTU on the IPv6 Wireguard
                    interface. See Configuring MTU [Default: 1420]"
                  type: integer
                wireguardRoutingRulePriority:
                  description:
                    "WireguardRoutingRulePriority controls the priority value
                    to use for the Wireguard routing rule. [Default: 99]"
                  type: integer
                wireguardThreadingEnabled:
                  description: |-
                    WireguardThreadingEnabled controls whether Wireguard has Threaded NAPI enabled. [Default: false]
                    This increases the maximum number of packets a Wireguard interface can process.
                    Consider threaded NAPI only if you have high packets per second workloads that are causing dropping packets due to a saturated `softirq` CPU core.
                    There is a [known issue](https://lore.kernel.org/netdev/CALrw=nEoT2emQ0OAYCjM1d_6Xe_kNLSZ6dhjb5FxrLFYh4kozA@mail.gmail.com/T/) with this setting
                    that may cause NAPI to get stuck holding the global `rtnl_mutex` when a peer is removed.
                    Workaround: Make sure your Linux kernel [includes this patch](https://github.com/torvalds/linux/commit/56364c910691f6d10ba88c964c9041b9ab777bd6) to unwedge NAPI.
                  type: boolean
                workloadSourceSpoofing:
                  description: |-
                    WorkloadSourceSpoofing controls whether pods can use the allowedSourcePrefixes annotation to send traffic with a source IP
                    address that is not theirs. This is disabled by default. When set to "Any", pods can request any prefix.
                  pattern: ^(?i)(Disabled|Any)?$
                  type: string
                xdpEnabled:
                  description:
                    "XDPEnabled enables XDP acceleration for suitable untracked
                    incoming deny rules. [Default: true]"
                  type: boolean
                xdpRefreshInterval:
                  description: |-
                    XDPRefreshInterval is the period at which Felix re-checks all XDP state to ensure that no
                    other process has accidentally broken Calico's BPF maps or attached programs. Set to 0 to
                    disable XDP refresh. [Default: 90s]
                  pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
                  type: string
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_globalnetworkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: globalnetworkpolicies.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: GlobalNetworkPolicy
    listKind: GlobalNetworkPolicyList
    plural: globalnetworkpolicies
    singular: globalnetworkpolicy
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                applyOnForward:
                  type: boolean
                doNotTrack:
                  type: boolean
                egress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                ingress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                namespaceSelector:
                  type: string
                order:
                  type: number
                performanceHints:
                  items:
                    type: string
                  type: array
                preDNAT:
                  type: boolean
                selector:
                  type: string
                serviceAccountSelector:
                  type: string
                tier:
                  type: string
                types:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_globalnetworksets.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: globalnetworksets.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: GlobalNetworkSet
    listKind: GlobalNetworkSetList
    plural: globalnetworksets
    singular: globalnetworkset
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                nets:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_hostendpoints.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: hostendpoints.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: HostEndpoint
    listKind: HostEndpointList
    plural: hostendpoints
    singular: hostendpoint
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                expectedIPs:
                  items:
                    type: string
                  type: array
                interfaceName:
                  type: string
                node:
                  type: string
                ports:
                  items:
                    properties:
                      name:
                        type: string
                      port:
                        type: integer
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                    required:
                      - name
                      - port
                      - protocol
                    type: object
                  type: array
                profiles:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_ipamblocks.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: ipamblocks.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: IPAMBlock
    listKind: IPAMBlockList
    plural: ipamblocks
    singular: ipamblock
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                affinity:
                  type: string
                allocations:
                  items:
                    type: integer
                    # TODO: This nullable is manually added in. We should update controller-gen
                    # to handle []*int properly itself.
                    nullable: true
                  type: array
                attributes:
                  items:
                    properties:
                      handle_id:
                        type: string
                      secondary:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  type: array
                cidr:
                  type: string
                deleted:
                  type: boolean
                sequenceNumber:
                  default: 0
                  format: int64
                  type: integer
                sequenceNumberForAllocation:
                  additionalProperties:
                    format: int64
                    type: integer
                  type: object
                strictAffinity:
                  type: boolean
                unallocated:
                  items:
                    type: integer
                  type: array
              required:
                - allocations
                - attributes
                - cidr
                - strictAffinity
                - unallocated
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_ipamconfigs.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: ipamconfigs.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: IPAMConfig
    listKind: IPAMConfigList
    plural: ipamconfigs
    singular: ipamconfig
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                autoAllocateBlocks:
                  type: boolean
                maxBlocksPerHost:
                  maximum: 2147483647
                  minimum: 0
                  type: integer
                strictAffinity:
                  type: boolean
              required:
                - autoAllocateBlocks
                - strictAffinity
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_ipamhandles.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: ipamhandles.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: IPAMHandle
    listKind: IPAMHandleList
    plural: ipamhandles
    singular: ipamhandle
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                block:
                  additionalProperties:
                    type: integer
                  type: object
                deleted:
                  type: boolean
                handleID:
                  type: string
              required:
                - block
                - handleID
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_ippools.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: ippools.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: IPPool
    listKind: IPPoolList
    plural: ippools
    singular: ippool
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                allowedUses:
                  items:
                    type: string
                  type: array
                assignmentMode:
                  default: Automatic
                  enum:
                    - Automatic
                    - Manual
                  type: string
                blockSize:
                  type: integer
                cidr:
                  type: string
                disableBGPExport:
                  type: boolean
                disabled:
                  type: boolean
                ipip:
                  properties:
                    enabled:
                      type: boolean
                    mode:
                      type: string
                  type: object
                ipipMode:
                  type: string
                namespaceSelector:
                  type: string
                nat-outgoing:
                  type: boolean
                natOutgoing:
                  type: boolean
                nodeSelector:
                  type: string
                vxlanMode:
                  type: string
              required:
                - cidr
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_ipreservations.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: ipreservations.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: IPReservation
    listKind: IPReservationList
    plural: ipreservations
    singular: ipreservation
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                reservedCIDRs:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_kubecontrollersconfigurations.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: kubecontrollersconfigurations.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: KubeControllersConfiguration
    listKind: KubeControllersConfigurationList
    plural: kubecontrollersconfigurations
    singular: kubecontrollersconfiguration
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                controllers:
                  properties:
                    loadBalancer:
                      properties:
                        assignIPs:
                          type: string
                      type: object
                    namespace:
                      properties:
                        reconcilerPeriod:
                          type: string
                      type: object
                    node:
                      properties:
                        hostEndpoint:
                          properties:
                            autoCreate:
                              type: string
                            createDefaultHostEndpoint:
                              type: string
                            templates:
                              items:
                                properties:
                                  generateName:
                                    maxLength: 253
                                    type: string
                                  interfaceCIDRs:
                                    items:
                                      type: string
                                    type: array
                                  interfacePattern:
                                    type: string
                                  labels:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  nodeSelector:
                                    type: string
                                type: object
                              type: array
                          type: object
                        leakGracePeriod:
                          type: string
                        reconcilerPeriod:
                          type: string
                        syncLabels:
                          type: string
                      type: object
                    policy:
                      properties:
                        reconcilerPeriod:
                          type: string
                      type: object
                    serviceAccount:
                      properties:
                        reconcilerPeriod:
                          type: string
                      type: object
                    workloadEndpoint:
                      properties:
                        reconcilerPeriod:
                          type: string
                      type: object
                  type: object
                debugProfilePort:
                  format: int32
                  type: integer
                etcdV3CompactionPeriod:
                  type: string
                healthChecks:
                  type: string
                logSeverityScreen:
                  type: string
                prometheusMetricsPort:
                  type: integer
              required:
                - controllers
              type: object
            status:
              properties:
                environmentVars:
                  additionalProperties:
                    type: string
                  type: object
                runningConfig:
                  properties:
                    controllers:
                      properties:
                        loadBalancer:
                          properties:
                            assignIPs:
                              type: string
                          type: object
                        namespace:
                          properties:
                            reconcilerPeriod:
                              type: string
                          type: object
                        node:
                          properties:
                            hostEndpoint:
                              properties:
                                autoCreate:
                                  type: string
                                createDefaultHostEndpoint:
                                  type: string
                                templates:
                                  items:
                                    properties:
                                      generateName:
                                        maxLength: 253
                                        type: string
                                      interfaceCIDRs:
                                        items:
                                          type: string
                                        type: array
                                      interfacePattern:
                                        type: string
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      nodeSelector:
                                        type: string
                                    type: object
                                  type: array
                              type: object
                            leakGracePeriod:
                              type: string
                            reconcilerPeriod:
                              type: string
                            syncLabels:
                              type: string
                          type: object
                        policy:
                          properties:
                            reconcilerPeriod:
                              type: string
                          type: object
                        serviceAccount:
                          properties:
                            reconcilerPeriod:
                              type: string
                          type: object
                        workloadEndpoint:
                          properties:
                            reconcilerPeriod:
                              type: string
                          type: object
                      type: object
                    debugProfilePort:
                      format: int32
                      type: integer
                    etcdV3CompactionPeriod:
                      type: string
                    healthChecks:
                      type: string
                    logSeverityScreen:
                      type: string
                    prometheusMetricsPort:
                      type: integer
                  required:
                    - controllers
                  type: object
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_networkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: networkpolicies.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: NetworkPolicy
    listKind: NetworkPolicyList
    plural: networkpolicies
    singular: networkpolicy
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                egress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                ingress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                order:
                  type: number
                performanceHints:
                  items:
                    type: string
                  type: array
                selector:
                  type: string
                serviceAccountSelector:
                  type: string
                tier:
                  type: string
                types:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_networksets.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: networksets.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: NetworkSet
    listKind: NetworkSetList
    plural: networksets
    singular: networkset
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                nets:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_stagedglobalnetworkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: stagedglobalnetworkpolicies.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: StagedGlobalNetworkPolicy
    listKind: StagedGlobalNetworkPolicyList
    plural: stagedglobalnetworkpolicies
    singular: stagedglobalnetworkpolicy
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                applyOnForward:
                  type: boolean
                doNotTrack:
                  type: boolean
                egress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                ingress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                namespaceSelector:
                  type: string
                order:
                  type: number
                performanceHints:
                  items:
                    type: string
                  type: array
                preDNAT:
                  type: boolean
                selector:
                  type: string
                serviceAccountSelector:
                  type: string
                stagedAction:
                  type: string
                tier:
                  type: string
                types:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_stagedkubernetesnetworkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: stagedkubernetesnetworkpolicies.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: StagedKubernetesNetworkPolicy
    listKind: StagedKubernetesNetworkPolicyList
    plural: stagedkubernetesnetworkpolicies
    singular: stagedkubernetesnetworkpolicy
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                egress:
                  items:
                    properties:
                      ports:
                        items:
                          properties:
                            endPort:
                              format: int32
                              type: integer
                            port:
                              anyOf:
                                - type: integer
                                - type: string
                              x-kubernetes-int-or-string: true
                            protocol:
                              type: string
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      to:
                        items:
                          properties:
                            ipBlock:
                              properties:
                                cidr:
                                  type: string
                                except:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                                - cidr
                              type: object
                            namespaceSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                      - key
                                      - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            podSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                      - key
                                      - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  type: array
                ingress:
                  items:
                    properties:
                      from:
                        items:
                          properties:
                            ipBlock:
                              properties:
                                cidr:
                                  type: string
                                except:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                                - cidr
                              type: object
                            namespaceSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                      - key
                                      - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            podSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                      - key
                                      - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      ports:
                        items:
                          properties:
                            endPort:
                              format: int32
                              type: integer
                            port:
                              anyOf:
                                - type: integer
                                - type: string
                              x-kubernetes-int-or-string: true
                            protocol:
                              type: string
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  type: array
                podSelector:
                  properties:
                    matchExpressions:
                      items:
                        properties:
                          key:
                            type: string
                          operator:
                            type: string
                          values:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                          - key
                          - operator
                        type: object
                      type: array
                      x-kubernetes-list-type: atomic
                    matchLabels:
                      additionalProperties:
                        type: string
                      type: object
                  type: object
                  x-kubernetes-map-type: atomic
                policyTypes:
                  items:
                    type: string
                  type: array
                stagedAction:
                  type: string
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_stagednetworkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: stagednetworkpolicies.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: StagedNetworkPolicy
    listKind: StagedNetworkPolicyList
    plural: stagednetworkpolicies
    singular: stagednetworkpolicy
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                egress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                ingress:
                  items:
                    properties:
                      action:
                        type: string
                      destination:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                      http:
                        properties:
                          methods:
                            items:
                              type: string
                            type: array
                          paths:
                            items:
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                              type: object
                            type: array
                        type: object
                      icmp:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      ipVersion:
                        type: integer
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      notICMP:
                        properties:
                          code:
                            type: integer
                          type:
                            type: integer
                        type: object
                      notProtocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      protocol:
                        anyOf:
                          - type: integer
                          - type: string
                        pattern: ^.*
                        x-kubernetes-int-or-string: true
                      source:
                        properties:
                          namespaceSelector:
                            type: string
                          nets:
                            items:
                              type: string
                            type: array
                          notNets:
                            items:
                              type: string
                            type: array
                          notPorts:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          notSelector:
                            type: string
                          ports:
                            items:
                              anyOf:
                                - type: integer
                                - type: string
                              pattern: ^.*
                              x-kubernetes-int-or-string: true
                            type: array
                          selector:
                            type: string
                          serviceAccounts:
                            properties:
                              names:
                                items:
                                  type: string
                                type: array
                              selector:
                                type: string
                            type: object
                          services:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                        type: object
                    required:
                      - action
                    type: object
                  type: array
                order:
                  type: number
                performanceHints:
                  items:
                    type: string
                  type: array
                selector:
                  type: string
                serviceAccountSelector:
                  type: string
                stagedAction:
                  type: string
                tier:
                  type: string
                types:
                  items:
                    type: string
                  type: array
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/crd.projectcalico.org_tiers.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.18.0
  name: tiers.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: Tier
    listKind: TierList
    plural: tiers
    singular: tier
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                defaultAction:
                  enum:
                    - Pass
                    - Deny
                  type: string
                order:
                  type: number
              type: object
          type: object
      served: true
      storage: true
---
# Source: crds/policy.networking.k8s.io_adminnetworkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: https://github.com/kubernetes-sigs/network-policy-api/pull/30
    policy.networking.k8s.io/bundle-version: v0.1.1
    policy.networking.k8s.io/channel: experimental
  creationTimestamp: null
  name: adminnetworkpolicies.policy.networking.k8s.io
spec:
  group: policy.networking.k8s.io
  names:
    kind: AdminNetworkPolicy
    listKind: AdminNetworkPolicyList
    plural: adminnetworkpolicies
    shortNames:
      - anp
    singular: adminnetworkpolicy
  scope: Cluster
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.priority
          name: Priority
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: |-
            AdminNetworkPolicy is  a cluster level resource that is part of the
            AdminNetworkPolicy API.
          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: Specification of the desired behavior of AdminNetworkPolicy.
              properties:
                egress:
                  description: |-
                    Egress is the list of Egress rules to be applied to the selected pods.
                    A total of 100 rules will be allowed in each ANP instance.
                    The relative precedence of egress rules within a single ANP object (all of
                    which share the priority) will be determined by the order in which the rule
                    is written. Thus, a rule that appears at the top of the egress rules
                    would take the highest precedence.
                    ANPs with no egress rules do not affect egress traffic.


                    Support: Core
                  items:
                    description: |-
                      AdminNetworkPolicyEgressRule describes an action to take on a particular
                      set of traffic originating from pods selected by a AdminNetworkPolicy's
                      Subject field.
                      <network-policy-api:experimental:validation>
                    properties:
                      action:
                        description: |-
                          Action specifies the effect this rule will have on matching traffic.
                          Currently the following actions are supported:
                          Allow: allows the selected traffic (even if it would otherwise have been denied by NetworkPolicy)
                          Deny: denies the selected traffic
                          Pass: instructs the selected traffic to skip any remaining ANP rules, and
                          then pass execution to any NetworkPolicies that select the pod.
                          If the pod is not selected by any NetworkPolicies then execution
                          is passed to any BaselineAdminNetworkPolicies that select the pod.


                          Support: Core
                        enum:
                          - Allow
                          - Deny
                          - Pass
                        type: string
                      name:
                        description: |-
                          Name is an identifier for this rule, that may be no more than 100 characters
                          in length. This field should be used by the implementation to help
                          improve observability, readability and error-reporting for any applied
                          AdminNetworkPolicies.


                          Support: Core
                        maxLength: 100
                        type: string
                      ports:
                        description: |-
                          Ports allows for matching traffic based on port and protocols.
                          This field is a list of destination ports for the outgoing egress traffic.
                          If Ports is not set then the rule does not filter traffic via port.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyPort describes how to select network ports on pod(s).
                            Exactly one field must be set.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namedPort:
                              description: |-
                                NamedPort selects a port on a pod(s) based on name.


                                Support: Extended


                                <network-policy-api:experimental>
                              type: string
                            portNumber:
                              description: |-
                                Port selects a port on a pod(s) based on number.


                                Support: Core
                              properties:
                                port:
                                  description: |-
                                    Number defines a network port value.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                              required:
                                - port
                                - protocol
                              type: object
                            portRange:
                              description: |-
                                PortRange selects a port range on a pod(s) based on provided start and end
                                values.


                                Support: Core
                              properties:
                                end:
                                  description: |-
                                    End defines a network port that is the end of a port range, the End value
                                    must be greater than Start.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                                start:
                                  description: |-
                                    Start defines a network port that is the start of a port range, the Start
                                    value must be less than End.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                              required:
                                - end
                                - start
                              type: object
                          type: object
                        maxItems: 100
                        type: array
                      to:
                        description: |-
                          To is the List of destinations whose traffic this rule applies to.
                          If any AdminNetworkPolicyEgressPeer matches the destination of outgoing
                          traffic then the specified action is applied.
                          This field must be defined and contain at least one item.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyEgressPeer defines a peer to allow traffic to.
                            Exactly one of the selector pointers must be set for a given peer. If a
                            consumer observes none of its fields are set, they must assume an unknown
                            option has been specified and fail closed.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namespaces:
                              description: |-
                                Namespaces defines a way to select all pods within a set of Namespaces.
                                Note that host-networked pods are not included in this type of peer.


                                Support: Core
                              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
                              x-kubernetes-map-type: atomic
                            networks:
                              description: |-
                                Networks defines a way to select peers via CIDR blocks.
                                This is intended for representing entities that live outside the cluster,
                                which can't be selected by pods, namespaces and nodes peers, but note
                                that cluster-internal traffic will be checked against the rule as
                                well. So if you Allow or Deny traffic to `"0.0.0.0/0"`, that will allow
                                or deny all IPv4 pod-to-pod traffic as well. If you don't want that,
                                add a rule that Passes all pod traffic before the Networks rule.


                                Each item in Networks should be provided in the CIDR format and should be
                                IPv4 or IPv6, for example "10.0.0.0/8" or "fd00::/8".


                                Networks can have upto 25 CIDRs specified.


                                Support: Extended


                                <network-policy-api:experimental>
                              items:
                                description: |-
                                  CIDR is an IP address range in CIDR notation (for example, "10.0.0.0/8" or "fd00::/8").
                                  This string must be validated by implementations using net.ParseCIDR
                                  TODO: Introduce CEL CIDR validation regex isCIDR() in Kube 1.31 when it is available.
                                maxLength: 43
                                type: string
                                x-kubernetes-validations:
                                  - message:
                                      CIDR must be either an IPv4 or IPv6 address.
                                      IPv4 address embedded in IPv6 addresses are not
                                      supported
                                    rule: self.contains(':') != self.contains('.')
                              maxItems: 25
                              minItems: 1
                              type: array
                              x-kubernetes-list-type: set
                            nodes:
                              description: |-
                                Nodes defines a way to select a set of nodes in
                                the cluster. This field follows standard label selector
                                semantics; if present but empty, it selects all Nodes.


                                Support: Extended


                                <network-policy-api:experimental>
                              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
                              x-kubernetes-map-type: atomic
                            pods:
                              description: |-
                                Pods defines a way to select a set of pods in
                                a set of namespaces. Note that host-networked pods
                                are not included in this type of peer.


                                Support: Core
                              properties:
                                namespaceSelector:
                                  description: |-
                                    NamespaceSelector follows standard label selector semantics; if empty,
                                    it selects all Namespaces.
                                  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
                                  x-kubernetes-map-type: atomic
                                podSelector:
                                  description: |-
                                    PodSelector is used to explicitly select pods within a namespace; if empty,
                                    it selects all 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
                                  x-kubernetes-map-type: atomic
                              required:
                                - namespaceSelector
                                - podSelector
                              type: object
                          type: object
                        maxItems: 100
                        minItems: 1
                        type: array
                    required:
                      - action
                      - to
                    type: object
                    x-kubernetes-validations:
                      - message:
                          networks/nodes peer cannot be set with namedPorts since
                          there are no namedPorts for networks/nodes
                        rule:
                          "!(self.to.exists(peer, has(peer.networks) || has(peer.nodes))
                          && has(self.ports) && self.ports.exists(port, has(port.namedPort)))"
                  maxItems: 100
                  type: array
                ingress:
                  description: |-
                    Ingress is the list of Ingress rules to be applied to the selected pods.
                    A total of 100 rules will be allowed in each ANP instance.
                    The relative precedence of ingress rules within a single ANP object (all of
                    which share the priority) will be determined by the order in which the rule
                    is written. Thus, a rule that appears at the top of the ingress rules
                    would take the highest precedence.
                    ANPs with no ingress rules do not affect ingress traffic.


                    Support: Core
                  items:
                    description: |-
                      AdminNetworkPolicyIngressRule describes an action to take on a particular
                      set of traffic destined for pods selected by an AdminNetworkPolicy's
                      Subject field.
                    properties:
                      action:
                        description: |-
                          Action specifies the effect this rule will have on matching traffic.
                          Currently the following actions are supported:
                          Allow: allows the selected traffic (even if it would otherwise have been denied by NetworkPolicy)
                          Deny: denies the selected traffic
                          Pass: instructs the selected traffic to skip any remaining ANP rules, and
                          then pass execution to any NetworkPolicies that select the pod.
                          If the pod is not selected by any NetworkPolicies then execution
                          is passed to any BaselineAdminNetworkPolicies that select the pod.


                          Support: Core
                        enum:
                          - Allow
                          - Deny
                          - Pass
                        type: string
                      from:
                        description: |-
                          From is the list of sources whose traffic this rule applies to.
                          If any AdminNetworkPolicyIngressPeer matches the source of incoming
                          traffic then the specified action is applied.
                          This field must be defined and contain at least one item.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyIngressPeer defines an in-cluster peer to allow traffic from.
                            Exactly one of the selector pointers must be set for a given peer. If a
                            consumer observes none of its fields are set, they must assume an unknown
                            option has been specified and fail closed.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namespaces:
                              description: |-
                                Namespaces defines a way to select all pods within a set of Namespaces.
                                Note that host-networked pods are not included in this type of peer.


                                Support: Core
                              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
                              x-kubernetes-map-type: atomic
                            pods:
                              description: |-
                                Pods defines a way to select a set of pods in
                                a set of namespaces. Note that host-networked pods
                                are not included in this type of peer.


                                Support: Core
                              properties:
                                namespaceSelector:
                                  description: |-
                                    NamespaceSelector follows standard label selector semantics; if empty,
                                    it selects all Namespaces.
                                  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
                                  x-kubernetes-map-type: atomic
                                podSelector:
                                  description: |-
                                    PodSelector is used to explicitly select pods within a namespace; if empty,
                                    it selects all 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
                                  x-kubernetes-map-type: atomic
                              required:
                                - namespaceSelector
                                - podSelector
                              type: object
                          type: object
                        maxItems: 100
                        minItems: 1
                        type: array
                      name:
                        description: |-
                          Name is an identifier for this rule, that may be no more than 100 characters
                          in length. This field should be used by the implementation to help
                          improve observability, readability and error-reporting for any applied
                          AdminNetworkPolicies.


                          Support: Core
                        maxLength: 100
                        type: string
                      ports:
                        description: |-
                          Ports allows for matching traffic based on port and protocols.
                          This field is a list of ports which should be matched on
                          the pods selected for this policy i.e the subject of the policy.
                          So it matches on the destination port for the ingress traffic.
                          If Ports is not set then the rule does not filter traffic via port.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyPort describes how to select network ports on pod(s).
                            Exactly one field must be set.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namedPort:
                              description: |-
                                NamedPort selects a port on a pod(s) based on name.


                                Support: Extended


                                <network-policy-api:experimental>
                              type: string
                            portNumber:
                              description: |-
                                Port selects a port on a pod(s) based on number.


                                Support: Core
                              properties:
                                port:
                                  description: |-
                                    Number defines a network port value.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                              required:
                                - port
                                - protocol
                              type: object
                            portRange:
                              description: |-
                                PortRange selects a port range on a pod(s) based on provided start and end
                                values.


                                Support: Core
                              properties:
                                end:
                                  description: |-
                                    End defines a network port that is the end of a port range, the End value
                                    must be greater than Start.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                                start:
                                  description: |-
                                    Start defines a network port that is the start of a port range, the Start
                                    value must be less than End.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                              required:
                                - end
                                - start
                              type: object
                          type: object
                        maxItems: 100
                        type: array
                    required:
                      - action
                      - from
                    type: object
                  maxItems: 100
                  type: array
                priority:
                  description: |-
                    Priority is a value from 0 to 1000. Rules with lower priority values have
                    higher precedence, and are checked before rules with higher priority values.
                    All AdminNetworkPolicy rules have higher precedence than NetworkPolicy or
                    BaselineAdminNetworkPolicy rules
                    The behavior is undefined if two ANP objects have same priority.


                    Support: Core
                  format: int32
                  maximum: 1000
                  minimum: 0
                  type: integer
                subject:
                  description: |-
                    Subject defines the pods to which this AdminNetworkPolicy applies.
                    Note that host-networked pods are not included in subject selection.


                    Support: Core
                  maxProperties: 1
                  minProperties: 1
                  properties:
                    namespaces:
                      description: Namespaces is used to select pods via namespace selectors.
                      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
                      x-kubernetes-map-type: atomic
                    pods:
                      description:
                        Pods is used to select pods via namespace AND pod
                        selectors.
                      properties:
                        namespaceSelector:
                          description: |-
                            NamespaceSelector follows standard label selector semantics; if empty,
                            it selects all Namespaces.
                          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
                          x-kubernetes-map-type: atomic
                        podSelector:
                          description: |-
                            PodSelector is used to explicitly select pods within a namespace; if empty,
                            it selects all 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
                          x-kubernetes-map-type: atomic
                      required:
                        - namespaceSelector
                        - podSelector
                      type: object
                  type: object
              required:
                - priority
                - subject
              type: object
            status:
              description: Status is the status to be reported by the implementation.
              properties:
                conditions:
                  items:
                    description:
                      "Condition contains details for one aspect of the current
                      state of this API Resource.\n---\nThis struct is intended for
                      direct use as an array at the field path .status.conditions.  For
                      example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
                      observations of a foo's current state.\n\t    // Known .status.conditions.type
                      are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
                      +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
                      \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
                      patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
                      \   // other fields\n\t}"
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: |-
                          type of condition in CamelCase or in foo.example.com/CamelCase.
                          ---
                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
                          useful (see .node.status.conditions), the ability to deconflict is important.
                          The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                  x-kubernetes-list-map-keys:
                    - type
                  x-kubernetes-list-type: map
              required:
                - conditions
              type: object
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
---
# Source: crds/policy.networking.k8s.io_baselineadminnetworkpolicies.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: https://github.com/kubernetes-sigs/network-policy-api/pull/30
    policy.networking.k8s.io/bundle-version: v0.1.1
    policy.networking.k8s.io/channel: experimental
  creationTimestamp: null
  name: baselineadminnetworkpolicies.policy.networking.k8s.io
spec:
  group: policy.networking.k8s.io
  names:
    kind: BaselineAdminNetworkPolicy
    listKind: BaselineAdminNetworkPolicyList
    plural: baselineadminnetworkpolicies
    shortNames:
      - banp
    singular: baselineadminnetworkpolicy
  scope: Cluster
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: |-
            BaselineAdminNetworkPolicy is a cluster level resource that is part of the
            AdminNetworkPolicy API.
          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: Specification of the desired behavior of BaselineAdminNetworkPolicy.
              properties:
                egress:
                  description: |-
                    Egress is the list of Egress rules to be applied to the selected pods if
                    they are not matched by any AdminNetworkPolicy or NetworkPolicy rules.
                    A total of 100 Egress rules will be allowed in each BANP instance.
                    The relative precedence of egress rules within a single BANP object
                    will be determined by the order in which the rule is written.
                    Thus, a rule that appears at the top of the egress rules
                    would take the highest precedence.
                    BANPs with no egress rules do not affect egress traffic.


                    Support: Core
                  items:
                    description: |-
                      BaselineAdminNetworkPolicyEgressRule describes an action to take on a particular
                      set of traffic originating from pods selected by a BaselineAdminNetworkPolicy's
                      Subject field.
                      <network-policy-api:experimental:validation>
                    properties:
                      action:
                        description: |-
                          Action specifies the effect this rule will have on matching traffic.
                          Currently the following actions are supported:
                          Allow: allows the selected traffic
                          Deny: denies the selected traffic


                          Support: Core
                        enum:
                          - Allow
                          - Deny
                        type: string
                      name:
                        description: |-
                          Name is an identifier for this rule, that may be no more than 100 characters
                          in length. This field should be used by the implementation to help
                          improve observability, readability and error-reporting for any applied
                          BaselineAdminNetworkPolicies.


                          Support: Core
                        maxLength: 100
                        type: string
                      ports:
                        description: |-
                          Ports allows for matching traffic based on port and protocols.
                          This field is a list of destination ports for the outgoing egress traffic.
                          If Ports is not set then the rule does not filter traffic via port.
                        items:
                          description: |-
                            AdminNetworkPolicyPort describes how to select network ports on pod(s).
                            Exactly one field must be set.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namedPort:
                              description: |-
                                NamedPort selects a port on a pod(s) based on name.


                                Support: Extended


                                <network-policy-api:experimental>
                              type: string
                            portNumber:
                              description: |-
                                Port selects a port on a pod(s) based on number.


                                Support: Core
                              properties:
                                port:
                                  description: |-
                                    Number defines a network port value.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                              required:
                                - port
                                - protocol
                              type: object
                            portRange:
                              description: |-
                                PortRange selects a port range on a pod(s) based on provided start and end
                                values.


                                Support: Core
                              properties:
                                end:
                                  description: |-
                                    End defines a network port that is the end of a port range, the End value
                                    must be greater than Start.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                                start:
                                  description: |-
                                    Start defines a network port that is the start of a port range, the Start
                                    value must be less than End.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                              required:
                                - end
                                - start
                              type: object
                          type: object
                        maxItems: 100
                        type: array
                      to:
                        description: |-
                          To is the list of destinations whose traffic this rule applies to.
                          If any AdminNetworkPolicyEgressPeer matches the destination of outgoing
                          traffic then the specified action is applied.
                          This field must be defined and contain at least one item.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyEgressPeer defines a peer to allow traffic to.
                            Exactly one of the selector pointers must be set for a given peer. If a
                            consumer observes none of its fields are set, they must assume an unknown
                            option has been specified and fail closed.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namespaces:
                              description: |-
                                Namespaces defines a way to select all pods within a set of Namespaces.
                                Note that host-networked pods are not included in this type of peer.


                                Support: Core
                              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
                              x-kubernetes-map-type: atomic
                            networks:
                              description: |-
                                Networks defines a way to select peers via CIDR blocks.
                                This is intended for representing entities that live outside the cluster,
                                which can't be selected by pods, namespaces and nodes peers, but note
                                that cluster-internal traffic will be checked against the rule as
                                well. So if you Allow or Deny traffic to `"0.0.0.0/0"`, that will allow
                                or deny all IPv4 pod-to-pod traffic as well. If you don't want that,
                                add a rule that Passes all pod traffic before the Networks rule.


                                Each item in Networks should be provided in the CIDR format and should be
                                IPv4 or IPv6, for example "10.0.0.0/8" or "fd00::/8".


                                Networks can have upto 25 CIDRs specified.


                                Support: Extended


                                <network-policy-api:experimental>
                              items:
                                description: |-
                                  CIDR is an IP address range in CIDR notation (for example, "10.0.0.0/8" or "fd00::/8").
                                  This string must be validated by implementations using net.ParseCIDR
                                  TODO: Introduce CEL CIDR validation regex isCIDR() in Kube 1.31 when it is available.
                                maxLength: 43
                                type: string
                                x-kubernetes-validations:
                                  - message:
                                      CIDR must be either an IPv4 or IPv6 address.
                                      IPv4 address embedded in IPv6 addresses are not
                                      supported
                                    rule: self.contains(':') != self.contains('.')
                              maxItems: 25
                              minItems: 1
                              type: array
                              x-kubernetes-list-type: set
                            nodes:
                              description: |-
                                Nodes defines a way to select a set of nodes in
                                the cluster. This field follows standard label selector
                                semantics; if present but empty, it selects all Nodes.


                                Support: Extended


                                <network-policy-api:experimental>
                              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
                              x-kubernetes-map-type: atomic
                            pods:
                              description: |-
                                Pods defines a way to select a set of pods in
                                a set of namespaces. Note that host-networked pods
                                are not included in this type of peer.


                                Support: Core
                              properties:
                                namespaceSelector:
                                  description: |-
                                    NamespaceSelector follows standard label selector semantics; if empty,
                                    it selects all Namespaces.
                                  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
                                  x-kubernetes-map-type: atomic
                                podSelector:
                                  description: |-
                                    PodSelector is used to explicitly select pods within a namespace; if empty,
                                    it selects all 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
                                  x-kubernetes-map-type: atomic
                              required:
                                - namespaceSelector
                                - podSelector
                              type: object
                          type: object
                        maxItems: 100
                        minItems: 1
                        type: array
                    required:
                      - action
                      - to
                    type: object
                    x-kubernetes-validations:
                      - message:
                          networks/nodes peer cannot be set with namedPorts since
                          there are no namedPorts for networks/nodes
                        rule:
                          "!(self.to.exists(peer, has(peer.networks) || has(peer.nodes))
                          && has(self.ports) && self.ports.exists(port, has(port.namedPort)))"
                  maxItems: 100
                  type: array
                ingress:
                  description: |-
                    Ingress is the list of Ingress rules to be applied to the selected pods
                    if they are not matched by any AdminNetworkPolicy or NetworkPolicy rules.
                    A total of 100 Ingress rules will be allowed in each BANP instance.
                    The relative precedence of ingress rules within a single BANP object
                    will be determined by the order in which the rule is written.
                    Thus, a rule that appears at the top of the ingress rules
                    would take the highest precedence.
                    BANPs with no ingress rules do not affect ingress traffic.


                    Support: Core
                  items:
                    description: |-
                      BaselineAdminNetworkPolicyIngressRule describes an action to take on a particular
                      set of traffic destined for pods selected by a BaselineAdminNetworkPolicy's
                      Subject field.
                    properties:
                      action:
                        description: |-
                          Action specifies the effect this rule will have on matching traffic.
                          Currently the following actions are supported:
                          Allow: allows the selected traffic
                          Deny: denies the selected traffic


                          Support: Core
                        enum:
                          - Allow
                          - Deny
                        type: string
                      from:
                        description: |-
                          From is the list of sources whose traffic this rule applies to.
                          If any AdminNetworkPolicyIngressPeer matches the source of incoming
                          traffic then the specified action is applied.
                          This field must be defined and contain at least one item.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyIngressPeer defines an in-cluster peer to allow traffic from.
                            Exactly one of the selector pointers must be set for a given peer. If a
                            consumer observes none of its fields are set, they must assume an unknown
                            option has been specified and fail closed.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namespaces:
                              description: |-
                                Namespaces defines a way to select all pods within a set of Namespaces.
                                Note that host-networked pods are not included in this type of peer.


                                Support: Core
                              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
                              x-kubernetes-map-type: atomic
                            pods:
                              description: |-
                                Pods defines a way to select a set of pods in
                                a set of namespaces. Note that host-networked pods
                                are not included in this type of peer.


                                Support: Core
                              properties:
                                namespaceSelector:
                                  description: |-
                                    NamespaceSelector follows standard label selector semantics; if empty,
                                    it selects all Namespaces.
                                  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
                                  x-kubernetes-map-type: atomic
                                podSelector:
                                  description: |-
                                    PodSelector is used to explicitly select pods within a namespace; if empty,
                                    it selects all 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
                                  x-kubernetes-map-type: atomic
                              required:
                                - namespaceSelector
                                - podSelector
                              type: object
                          type: object
                        maxItems: 100
                        minItems: 1
                        type: array
                      name:
                        description: |-
                          Name is an identifier for this rule, that may be no more than 100 characters
                          in length. This field should be used by the implementation to help
                          improve observability, readability and error-reporting for any applied
                          BaselineAdminNetworkPolicies.


                          Support: Core
                        maxLength: 100
                        type: string
                      ports:
                        description: |-
                          Ports allows for matching traffic based on port and protocols.
                          This field is a list of ports which should be matched on
                          the pods selected for this policy i.e the subject of the policy.
                          So it matches on the destination port for the ingress traffic.
                          If Ports is not set then the rule does not filter traffic via port.


                          Support: Core
                        items:
                          description: |-
                            AdminNetworkPolicyPort describes how to select network ports on pod(s).
                            Exactly one field must be set.
                          maxProperties: 1
                          minProperties: 1
                          properties:
                            namedPort:
                              description: |-
                                NamedPort selects a port on a pod(s) based on name.


                                Support: Extended


                                <network-policy-api:experimental>
                              type: string
                            portNumber:
                              description: |-
                                Port selects a port on a pod(s) based on number.


                                Support: Core
                              properties:
                                port:
                                  description: |-
                                    Number defines a network port value.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                              required:
                                - port
                                - protocol
                              type: object
                            portRange:
                              description: |-
                                PortRange selects a port range on a pod(s) based on provided start and end
                                values.


                                Support: Core
                              properties:
                                end:
                                  description: |-
                                    End defines a network port that is the end of a port range, the End value
                                    must be greater than Start.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol is the network protocol (TCP, UDP, or SCTP) which traffic must
                                    match. If not specified, this field defaults to TCP.


                                    Support: Core
                                  type: string
                                start:
                                  description: |-
                                    Start defines a network port that is the start of a port range, the Start
                                    value must be less than End.


                                    Support: Core
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                              required:
                                - end
                                - start
                              type: object
                          type: object
                        maxItems: 100
                        type: array
                    required:
                      - action
                      - from
                    type: object
                  maxItems: 100
                  type: array
                subject:
                  description: |-
                    Subject defines the pods to which this BaselineAdminNetworkPolicy applies.
                    Note that host-networked pods are not included in subject selection.


                    Support: Core
                  maxProperties: 1
                  minProperties: 1
                  properties:
                    namespaces:
                      description: Namespaces is used to select pods via namespace selectors.
                      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
                      x-kubernetes-map-type: atomic
                    pods:
                      description:
                        Pods is used to select pods via namespace AND pod
                        selectors.
                      properties:
                        namespaceSelector:
                          description: |-
                            NamespaceSelector follows standard label selector semantics; if empty,
                            it selects all Namespaces.
                          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
                          x-kubernetes-map-type: atomic
                        podSelector:
                          description: |-
                            PodSelector is used to explicitly select pods within a namespace; if empty,
                            it selects all 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
                          x-kubernetes-map-type: atomic
                      required:
                        - namespaceSelector
                        - podSelector
                      type: object
                  type: object
              required:
                - subject
              type: object
            status:
              description: Status is the status to be reported by the implementation.
              properties:
                conditions:
                  items:
                    description:
                      "Condition contains details for one aspect of the current
                      state of this API Resource.\n---\nThis struct is intended for
                      direct use as an array at the field path .status.conditions.  For
                      example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
                      observations of a foo's current state.\n\t    // Known .status.conditions.type
                      are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
                      +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
                      \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
                      patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
                      \   // other fields\n\t}"
                    properties:
                      lastTransitionTime:
                        description: |-
                          lastTransitionTime is the last time the condition transitioned from one status to another.
                          This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: |-
                          message is a human readable message indicating details about the transition.
                          This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: |-
                          observedGeneration represents the .metadata.generation that the condition was set based upon.
                          For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                          with respect to the current state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: |-
                          reason contains a programmatic identifier indicating the reason for the condition's last transition.
                          Producers of specific condition types may define expected values and meanings for this field,
                          and whether the values are considered a guaranteed API.
                          The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: |-
                          type of condition in CamelCase or in foo.example.com/CamelCase.
                          ---
                          Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
                          useful (see .node.status.conditions), the ability to deconflict is important.
                          The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                  x-kubernetes-list-map-keys:
                    - type
                  x-kubernetes-list-type: map
              required:
                - conditions
              type: object
          required:
            - metadata
            - spec
          type: object
          x-kubernetes-validations:
            - message:
                Only one baseline admin network policy with metadata.name="default"
                can be created in the cluster
              rule: self.metadata.name == 'default'
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
