apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.0
  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 "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 (or
                  tigera-apiserver in Enterprise) 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
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                matchFields:
                                                  description: A list of node selector
                                                    requirements by node's fields.
                                                  items:
                                                    description: A node selector requirement
                                                      is a selector that contains
                                                      values, a key, and an operator
                                                      that relates the key and values.
                                                    properties:
                                                      key:
                                                        description: The label key
                                                          that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: Represents a
                                                          key's relationship to a
                                                          set of values. Valid operators
                                                          are In, NotIn, Exists, DoesNotExist.
                                                          Gt, and Lt.
                                                        type: string
                                                      values:
                                                        description: An array of string
                                                          values. If the operator
                                                          is In or NotIn, the values
                                                          array must be non-empty.
                                                          If the operator is Exists
                                                          or DoesNotExist, the values
                                                          array must be empty. If
                                                          the operator is Gt or Lt,
                                                          the values array must have
                                                          a single element, which
                                                          will be interpreted as an
                                                          integer. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                              type: object
                                            weight:
                                              description: Weight associated with
                                                matching the corresponding nodeSelectorTerm,
                                                in the range 1-100.
                                              format: int32
                                              type: integer
                                          required:
                                          - preference
                                          - weight
                                          type: object
                                        type: array
                                      requiredDuringSchedulingIgnoredDuringExecution:
                                        description: If the affinity requirements
                                          specified by this field are not met at scheduling
                                          time, the pod will not be scheduled onto
                                          the node. If the affinity requirements specified
                                          by this field cease to be met at some point
                                          during pod execution (e.g. due to an update),
                                          the system may or may not try to eventually
                                          evict the pod from its node.
                                        properties:
                                          nodeSelectorTerms:
                                            description: Required. A list of node
                                              selector terms. The terms are ORed.
                                            items:
                                              description: A null or empty node selector
                                                term matches no objects. The requirements
                                                of them are ANDed. The TopologySelectorTerm
                                                type implements a subset of the NodeSelectorTerm.
                                              properties:
                                                matchExpressions:
                                                  description: A list of node selector
                                                    requirements by node's labels.
                                                  items:
                                                    description: A node selector requirement
                                                      is a selector that contains
                                                      values, a key, and an operator
                                                      that relates the key and values.
                                                    properties:
                                                      key:
                                                        description: The label key
                                                          that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: Represents a
                                                          key's relationship to a
                                                          set of values. Valid operators
                                                          are In, NotIn, Exists, DoesNotExist.
                                                          Gt, and Lt.
                                                        type: string
                                                      values:
                                                        description: An array of string
                                                          values. If the operator
                                                          is In or NotIn, the values
                                                          array must be non-empty.
                                                          If the operator is Exists
                                                          or DoesNotExist, the values
                                                          array must be empty. If
                                                          the operator is Gt or Lt,
                                                          the values array must have
                                                          a single element, which
                                                          will be interpreted as an
                                                          integer. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                matchFields:
                                                  description: A list of node selector
                                                    requirements by node's fields.
                                                  items:
                                                    description: A node selector requirement
                                                      is a selector that contains
                                                      values, a key, and an operator
                                                      that relates the key and values.
                                                    properties:
                                                      key:
                                                        description: The label key
                                                          that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: Represents a
                                                          key's relationship to a
                                                          set of values. Valid operators
                                                          are In, NotIn, Exists, DoesNotExist.
                                                          Gt, and Lt.
                                                        type: string
                                                      values:
                                                        description: An array of string
                                                          values. If the operator
                                                          is In or NotIn, the values
                                                          array must be non-empty.
                                                          If the operator is Exists
                                                          or DoesNotExist, the values
                                                          array must be empty. If
                                                          the operator is Gt or Lt,
                                                          the values array must have
                                                          a single element, which
                                                          will be interpreted as an
                                                          integer. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                              type: object
                                            type: array
                                        required:
                                        - nodeSelectorTerms
                                        type: object
                                    type: object
                                  podAffinity:
                                    description: Describes pod affinity scheduling
                                      rules (e.g. co-locate this pod in the same node,
                                      zone, etc. as some other pod(s)).
                                    properties:
                                      preferredDuringSchedulingIgnoredDuringExecution:
                                        description: The scheduler will prefer to
                                          schedule pods to nodes that satisfy the
                                          affinity expressions specified by this field,
                                          but it may choose a node that violates one
                                          or more of the expressions. The node that
                                          is most preferred is the one with the greatest
                                          sum of weights, i.e. for each node that
                                          meets all of the scheduling requirements
                                          (resource request, requiredDuringScheduling
                                          affinity expressions, etc.), compute a sum
                                          by iterating through the elements of this
                                          field and adding "weight" to the sum if
                                          the node has pods which matches the corresponding
                                          podAffinityTerm; the node(s) with the highest
                                          sum are the most preferred.
                                        items:
                                          description: The weights of all of the matched
                                            WeightedPodAffinityTerm fields are added
                                            per-node to find the most preferred node(s)
                                          properties:
                                            podAffinityTerm:
                                              description: Required. A pod affinity
                                                term, associated with the corresponding
                                                weight.
                                              properties:
                                                labelSelector:
                                                  description: A label query over
                                                    a set of resources, in this case
                                                    pods.
                                                  properties:
                                                    matchExpressions:
                                                      description: matchExpressions
                                                        is a list of label selector
                                                        requirements. The requirements
                                                        are ANDed.
                                                      items:
                                                        description: A label selector
                                                          requirement is a selector
                                                          that contains values, a
                                                          key, and an operator that
                                                          relates the key and values.
                                                        properties:
                                                          key:
                                                            description: key is the
                                                              label key that the selector
                                                              applies to.
                                                            type: string
                                                          operator:
                                                            description: operator
                                                              represents a key's relationship
                                                              to a set of values.
                                                              Valid operators are
                                                              In, NotIn, Exists and
                                                              DoesNotExist.
                                                            type: string
                                                          values:
                                                            description: values is
                                                              an array of string values.
                                                              If the operator is In
                                                              or NotIn, the values
                                                              array must be non-empty.
                                                              If the operator is Exists
                                                              or DoesNotExist, the
                                                              values array must be
                                                              empty. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchLabels:
                                                      additionalProperties:
                                                        type: string
                                                      description: matchLabels is
                                                        a map of {key,value} pairs.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                namespaceSelector:
                                                  description: A label query over
                                                    the set of namespaces that the
                                                    term applies to. The term is applied
                                                    to the union of the namespaces
                                                    selected by this field and the
                                                    ones listed in the namespaces
                                                    field. null selector and null
                                                    or empty namespaces list means
                                                    "this pod's namespace". An empty
                                                    selector ({}) matches all namespaces.
                                                    This field is beta-level and is
                                                    only honored when PodAffinityNamespaceSelector
                                                    feature is enabled.
                                                  properties:
                                                    matchExpressions:
                                                      description: matchExpressions
                                                        is a list of label selector
                                                        requirements. The requirements
                                                        are ANDed.
                                                      items:
                                                        description: A label selector
                                                          requirement is a selector
                                                          that contains values, a
                                                          key, and an operator that
                                                          relates the key and values.
                                                        properties:
                                                          key:
                                                            description: key is the
                                                              label key that the selector
                                                              applies to.
                                                            type: string
                                                          operator:
                                                            description: operator
                                                              represents a key's relationship
                                                              to a set of values.
                                                              Valid operators are
                                                              In, NotIn, Exists and
                                                              DoesNotExist.
                                                            type: string
                                                          values:
                                                            description: values is
                                                              an array of string values.
                                                              If the operator is In
                                                              or NotIn, the values
                                                              array must be non-empty.
                                                              If the operator is Exists
                                                              or DoesNotExist, the
                                                              values array must be
                                                              empty. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchLabels:
                                                      additionalProperties:
                                                        type: string
                                                      description: matchLabels is
                                                        a map of {key,value} pairs.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                namespaces:
                                                  description: namespaces specifies
                                                    a static list of namespace names
                                                    that the term applies to. The
                                                    term is applied to the union of
                                                    the namespaces listed in this
                                                    field and the ones selected by
                                                    namespaceSelector. null or empty
                                                    namespaces list and null namespaceSelector
                                                    means "this pod's namespace"
                                                  items:
                                                    type: string
                                                  type: array
                                                topologyKey:
                                                  description: This pod should be
                                                    co-located (affinity) or not co-located
                                                    (anti-affinity) with the pods
                                                    matching the labelSelector in
                                                    the specified namespaces, where
                                                    co-located is defined as running
                                                    on a node whose value of the label
                                                    with key topologyKey matches that
                                                    of any node on which any of the
                                                    selected pods is running. Empty
                                                    topologyKey is not allowed.
                                                  type: string
                                              required:
                                              - topologyKey
                                              type: object
                                            weight:
                                              description: weight associated with
                                                matching the corresponding podAffinityTerm,
                                                in the range 1-100.
                                              format: int32
                                              type: integer
                                          required:
                                          - podAffinityTerm
                                          - weight
                                          type: object
                                        type: array
                                      requiredDuringSchedulingIgnoredDuringExecution:
                                        description: If the affinity requirements
                                          specified by this field are not met at scheduling
                                          time, the pod will not be scheduled onto
                                          the node. If the affinity requirements specified
                                          by this field cease to be met at some point
                                          during pod execution (e.g. due to a pod
                                          label update), the system may or may not
                                          try to eventually evict the pod from its
                                          node. When there are multiple elements,
                                          the lists of nodes corresponding to each
                                          podAffinityTerm are intersected, i.e. all
                                          terms must be satisfied.
                                        items:
                                          description: Defines a set of pods (namely
                                            those matching the labelSelector relative
                                            to the given namespace(s)) that this pod
                                            should be co-located (affinity) or not
                                            co-located (anti-affinity) with, where
                                            co-located is defined as running on a
                                            node whose value of the label with key
                                            <topologyKey> matches that of any node
                                            on which a pod of the set of pods is running
                                          properties:
                                            labelSelector:
                                              description: A label query over a set
                                                of resources, in this case pods.
                                              properties:
                                                matchExpressions:
                                                  description: matchExpressions is
                                                    a list of label selector requirements.
                                                    The requirements are ANDed.
                                                  items:
                                                    description: A label selector
                                                      requirement is a selector that
                                                      contains values, a key, and
                                                      an operator that relates the
                                                      key and values.
                                                    properties:
                                                      key:
                                                        description: key is the label
                                                          key that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: operator represents
                                                          a key's relationship to
                                                          a set of values. Valid operators
                                                          are In, NotIn, Exists and
                                                          DoesNotExist.
                                                        type: string
                                                      values:
                                                        description: values is an
                                                          array of string values.
                                                          If the operator is In or
                                                          NotIn, the values array
                                                          must be non-empty. If the
                                                          operator is Exists or DoesNotExist,
                                                          the values array must be
                                                          empty. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: matchLabels is a map
                                                    of {key,value} pairs. A single
                                                    {key,value} in the matchLabels
                                                    map is equivalent to an element
                                                    of matchExpressions, whose key
                                                    field is "key", the operator is
                                                    "In", and the values array contains
                                                    only "value". The requirements
                                                    are ANDed.
                                                  type: object
                                              type: object
                                            namespaceSelector:
                                              description: A label query over the
                                                set of namespaces that the term applies
                                                to. The term is applied to the union
                                                of the namespaces selected by this
                                                field and the ones listed in the namespaces
                                                field. null selector and null or empty
                                                namespaces list means "this pod's
                                                namespace". An empty selector ({})
                                                matches all namespaces. This field
                                                is beta-level and is only honored
                                                when PodAffinityNamespaceSelector
                                                feature is enabled.
                                              properties:
                                                matchExpressions:
                                                  description: matchExpressions is
                                                    a list of label selector requirements.
                                                    The requirements are ANDed.
                                                  items:
                                                    description: A label selector
                                                      requirement is a selector that
                                                      contains values, a key, and
                                                      an operator that relates the
                                                      key and values.
                                                    properties:
                                                      key:
                                                        description: key is the label
                                                          key that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: operator represents
                                                          a key's relationship to
                                                          a set of values. Valid operators
                                                          are In, NotIn, Exists and
                                                          DoesNotExist.
                                                        type: string
                                                      values:
                                                        description: values is an
                                                          array of string values.
                                                          If the operator is In or
                                                          NotIn, the values array
                                                          must be non-empty. If the
                                                          operator is Exists or DoesNotExist,
                                                          the values array must be
                                                          empty. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: matchLabels is a map
                                                    of {key,value} pairs. A single
                                                    {key,value} in the matchLabels
                                                    map is equivalent to an element
                                                    of matchExpressions, whose key
                                                    field is "key", the operator is
                                                    "In", and the values array contains
                                                    only "value". The requirements
                                                    are ANDed.
                                                  type: object
                                              type: object
                                            namespaces:
                                              description: namespaces specifies a
                                                static list of namespace names that
                                                the term applies to. The term is applied
                                                to the union of the namespaces listed
                                                in this field and the ones selected
                                                by namespaceSelector. null or empty
                                                namespaces list and null namespaceSelector
                                                means "this pod's namespace"
                                              items:
                                                type: string
                                              type: array
                                            topologyKey:
                                              description: This pod should be co-located
                                                (affinity) or not co-located (anti-affinity)
                                                with the pods matching the labelSelector
                                                in the specified namespaces, where
                                                co-located is defined as running on
                                                a node whose value of the label with
                                                key topologyKey matches that of any
                                                node on which any of the selected
                                                pods is running. Empty topologyKey
                                                is not allowed.
                                              type: string
                                          required:
                                          - topologyKey
                                          type: object
                                        type: array
                                    type: object
                                  podAntiAffinity:
                                    description: Describes pod anti-affinity scheduling
                                      rules (e.g. avoid putting this pod in the same
                                      node, zone, etc. as some other pod(s)).
                                    properties:
                                      preferredDuringSchedulingIgnoredDuringExecution:
                                        description: The scheduler will prefer to
                                          schedule pods to nodes that satisfy the
                                          anti-affinity expressions specified by this
                                          field, but it may choose a node that violates
                                          one or more of the expressions. The node
                                          that is most preferred is the one with the
                                          greatest sum of weights, i.e. for each node
                                          that meets all of the scheduling requirements
                                          (resource request, requiredDuringScheduling
                                          anti-affinity expressions, etc.), compute
                                          a sum by iterating through the elements
                                          of this field and adding "weight" to the
                                          sum if the node has pods which matches the
                                          corresponding podAffinityTerm; the node(s)
                                          with the highest sum are the most preferred.
                                        items:
                                          description: The weights of all of the matched
                                            WeightedPodAffinityTerm fields are added
                                            per-node to find the most preferred node(s)
                                          properties:
                                            podAffinityTerm:
                                              description: Required. A pod affinity
                                                term, associated with the corresponding
                                                weight.
                                              properties:
                                                labelSelector:
                                                  description: A label query over
                                                    a set of resources, in this case
                                                    pods.
                                                  properties:
                                                    matchExpressions:
                                                      description: matchExpressions
                                                        is a list of label selector
                                                        requirements. The requirements
                                                        are ANDed.
                                                      items:
                                                        description: A label selector
                                                          requirement is a selector
                                                          that contains values, a
                                                          key, and an operator that
                                                          relates the key and values.
                                                        properties:
                                                          key:
                                                            description: key is the
                                                              label key that the selector
                                                              applies to.
                                                            type: string
                                                          operator:
                                                            description: operator
                                                              represents a key's relationship
                                                              to a set of values.
                                                              Valid operators are
                                                              In, NotIn, Exists and
                                                              DoesNotExist.
                                                            type: string
                                                          values:
                                                            description: values is
                                                              an array of string values.
                                                              If the operator is In
                                                              or NotIn, the values
                                                              array must be non-empty.
                                                              If the operator is Exists
                                                              or DoesNotExist, the
                                                              values array must be
                                                              empty. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchLabels:
                                                      additionalProperties:
                                                        type: string
                                                      description: matchLabels is
                                                        a map of {key,value} pairs.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                namespaceSelector:
                                                  description: A label query over
                                                    the set of namespaces that the
                                                    term applies to. The term is applied
                                                    to the union of the namespaces
                                                    selected by this field and the
                                                    ones listed in the namespaces
                                                    field. null selector and null
                                                    or empty namespaces list means
                                                    "this pod's namespace". An empty
                                                    selector ({}) matches all namespaces.
                                                    This field is beta-level and is
                                                    only honored when PodAffinityNamespaceSelector
                                                    feature is enabled.
                                                  properties:
                                                    matchExpressions:
                                                      description: matchExpressions
                                                        is a list of label selector
                                                        requirements. The requirements
                                                        are ANDed.
                                                      items:
                                                        description: A label selector
                                                          requirement is a selector
                                                          that contains values, a
                                                          key, and an operator that
                                                          relates the key and values.
                                                        properties:
                                                          key:
                                                            description: key is the
                                                              label key that the selector
                                                              applies to.
                                                            type: string
                                                          operator:
                                                            description: operator
                                                              represents a key's relationship
                                                              to a set of values.
                                                              Valid operators are
                                                              In, NotIn, Exists and
                                                              DoesNotExist.
                                                            type: string
                                                          values:
                                                            description: values is
                                                              an array of string values.
                                                              If the operator is In
                                                              or NotIn, the values
                                                              array must be non-empty.
                                                              If the operator is Exists
                                                              or DoesNotExist, the
                                                              values array must be
                                                              empty. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                    matchLabels:
                                                      additionalProperties:
                                                        type: string
                                                      description: matchLabels is
                                                        a map of {key,value} pairs.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                namespaces:
                                                  description: namespaces specifies
                                                    a static list of namespace names
                                                    that the term applies to. The
                                                    term is applied to the union of
                                                    the namespaces listed in this
                                                    field and the ones selected by
                                                    namespaceSelector. null or empty
                                                    namespaces list and null namespaceSelector
                                                    means "this pod's namespace"
                                                  items:
                                                    type: string
                                                  type: array
                                                topologyKey:
                                                  description: This pod should be
                                                    co-located (affinity) or not co-located
                                                    (anti-affinity) with the pods
                                                    matching the labelSelector in
                                                    the specified namespaces, where
                                                    co-located is defined as running
                                                    on a node whose value of the label
                                                    with key topologyKey matches that
                                                    of any node on which any of the
                                                    selected pods is running. Empty
                                                    topologyKey is not allowed.
                                                  type: string
                                              required:
                                              - topologyKey
                                              type: object
                                            weight:
                                              description: weight associated with
                                                matching the corresponding podAffinityTerm,
                                                in the range 1-100.
                                              format: int32
                                              type: integer
                                          required:
                                          - podAffinityTerm
                                          - weight
                                          type: object
                                        type: array
                                      requiredDuringSchedulingIgnoredDuringExecution:
                                        description: If the anti-affinity requirements
                                          specified by this field are not met at scheduling
                                          time, the pod will not be scheduled onto
                                          the node. If the anti-affinity requirements
                                          specified by this field cease to be met
                                          at some point during pod execution (e.g.
                                          due to a pod label update), the system may
                                          or may not try to eventually evict the pod
                                          from its node. When there are multiple elements,
                                          the lists of nodes corresponding to each
                                          podAffinityTerm are intersected, i.e. all
                                          terms must be satisfied.
                                        items:
                                          description: Defines a set of pods (namely
                                            those matching the labelSelector relative
                                            to the given namespace(s)) that this pod
                                            should be co-located (affinity) or not
                                            co-located (anti-affinity) with, where
                                            co-located is defined as running on a
                                            node whose value of the label with key
                                            <topologyKey> matches that of any node
                                            on which a pod of the set of pods is running
                                          properties:
                                            labelSelector:
                                              description: A label query over a set
                                                of resources, in this case pods.
                                              properties:
                                                matchExpressions:
                                                  description: matchExpressions is
                                                    a list of label selector requirements.
                                                    The requirements are ANDed.
                                                  items:
                                                    description: A label selector
                                                      requirement is a selector that
                                                      contains values, a key, and
                                                      an operator that relates the
                                                      key and values.
                                                    properties:
                                                      key:
                                                        description: key is the label
                                                          key that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: operator represents
                                                          a key's relationship to
                                                          a set of values. Valid operators
                                                          are In, NotIn, Exists and
                                                          DoesNotExist.
                                                        type: string
                                                      values:
                                                        description: values is an
                                                          array of string values.
                                                          If the operator is In or
                                                          NotIn, the values array
                                                          must be non-empty. If the
                                                          operator is Exists or DoesNotExist,
                                                          the values array must be
                                                          empty. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: matchLabels is a map
                                                    of {key,value} pairs. A single
                                                    {key,value} in the matchLabels
                                                    map is equivalent to an element
                                                    of matchExpressions, whose key
                                                    field is "key", the operator is
                                                    "In", and the values array contains
                                                    only "value". The requirements
                                                    are ANDed.
                                                  type: object
                                              type: object
                                            namespaceSelector:
                                              description: A label query over the
                                                set of namespaces that the term applies
                                                to. The term is applied to the union
                                                of the namespaces selected by this
                                                field and the ones listed in the namespaces
                                                field. null selector and null or empty
                                                namespaces list means "this pod's
                                                namespace". An empty selector ({})
                                                matches all namespaces. This field
                                                is beta-level and is only honored
                                                when PodAffinityNamespaceSelector
                                                feature is enabled.
                                              properties:
                                                matchExpressions:
                                                  description: matchExpressions is
                                                    a list of label selector requirements.
                                                    The requirements are ANDed.
                                                  items:
                                                    description: A label selector
                                                      requirement is a selector that
                                                      contains values, a key, and
                                                      an operator that relates the
                                                      key and values.
                                                    properties:
                                                      key:
                                                        description: key is the label
                                                          key that the selector applies
                                                          to.
                                                        type: string
                                                      operator:
                                                        description: operator represents
                                                          a key's relationship to
                                                          a set of values. Valid operators
                                                          are In, NotIn, Exists and
                                                          DoesNotExist.
                                                        type: string
                                                      values:
                                                        description: values is an
                                                          array of string values.
                                                          If the operator is In or
                                                          NotIn, the values array
                                                          must be non-empty. If the
                                                          operator is Exists or DoesNotExist,
                                                          the values array must be
                                                          empty. This array is replaced
                                                          during a strategic merge
                                                          patch.
                                                        items:
                                                          type: string
                                                        type: array
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: matchLabels is a map
                                                    of {key,value} pairs. A single
                                                    {key,value} in the matchLabels
                                                    map is equivalent to an element
                                                    of matchExpressions, whose key
                                                    field is "key", the operator is
                                                    "In", and the values array contains
                                                    only "value". The requirements
                                                    are ANDed.
                                                  type: object
                                              type: object
                                            namespaces:
                                              description: namespaces specifies a
                                                static list of namespace names that
                                                the term applies to. The term is applied
                                                to the union of the namespaces listed
                                                in this field and the ones selected
                                                by namespaceSelector. null or empty
                                                namespaces list and null namespaceSelector
                                                means "this pod's namespace"
                                              items:
                                                type: string
                                              type: array
                                            topologyKey:
                                              description: This pod should be co-located
                                                (affinity) or not co-located (anti-affinity)
                                                with the pods matching the labelSelector
                                                in the specified namespaces, where
                                                co-located is defined as running on
                                                a node whose value of the label with
                                                key topologyKey matches that of any
                                                node on which any of the selected
                                                pods is running. Empty topologyKey
                                                is not allowed.
                                              type: string
                                          required:
                                          - topologyKey
                                          type: object
                                        type: array
                                    type: object
                                type: object
                              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.
                                      enum:
                                      - calico-apiserver
                                      - tigera-queryserver
                                      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
                                        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:
                                        limits:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          description: 'Limits describes the maximum
                                            amount of compute resources allowed. More
                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                          type: object
                                        requests:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          description: 'Requests describes the minimum
                                            amount of compute resources required.
                                            If Requests is omitted for a container,
                                            it defaults to Limits if that is explicitly
                                            specified, otherwise to an implementation-defined
                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                          type: object
                                      type: object
                                  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.
                                      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:
                                        limits:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          description: 'Limits describes the maximum
                                            amount of compute resources allowed. More
                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                          type: object
                                        requests:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          description: 'Requests describes the minimum
                                            amount of compute resources required.
                                            If Requests is omitted for a container,
                                            it defaults to Limits if that is explicitly
                                            specified, otherwise to an implementation-defined
                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                          type: object
                                      type: object
                                  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
                              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
                            type: object
                        type: object
                    type: object
                type: object
            type: object
          status:
            description: Most recently observed status for the Tigera API server.
            properties:
              state:
                description: State provides user-readable status.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []

