Skip to content
Snippets Groups Projects
0prometheusCustomResourceDefinition.yaml 739 KiB
Newer Older
paulfantom's avatar
paulfantom committed
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
    operator.prometheus.io/version: 0.80.1
  name: prometheuses.monitoring.coreos.com
spec:
  group: monitoring.coreos.com
  names:
paulfantom's avatar
paulfantom committed
    categories:
    - prometheus-operator
    listKind: PrometheusList
    plural: prometheuses
    singular: prometheus
paulfantom's avatar
paulfantom committed
  versions:
  - additionalPrinterColumns:
    - description: The version of Prometheus
      jsonPath: .spec.version
      name: Version
      type: string
    - description: The number of desired replicas
paulfantom's avatar
paulfantom committed
      jsonPath: .spec.replicas
paulfantom's avatar
paulfantom committed
      type: integer
    - description: The number of ready replicas
      jsonPath: .status.availableReplicas
      name: Ready
      type: integer
    - jsonPath: .status.conditions[?(@.type == 'Reconciled')].status
      name: Reconciled
      type: string
    - jsonPath: .status.conditions[?(@.type == 'Available')].status
      name: Available
      type: string
paulfantom's avatar
paulfantom committed
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: Whether the resource reconciliation is paused or not
      jsonPath: .status.paused
      name: Paused
      priority: 1
      type: boolean
paulfantom's avatar
paulfantom committed
    name: v1
    schema:
      openAPIV3Schema:
        description: |-
          The `Prometheus` custom resource definition (CRD) defines a desired [Prometheus](https://prometheus.io/docs/prometheus) setup to run in a Kubernetes cluster. It allows to specify many options such as the number of replicas, persistent storage, and Alertmanagers where firing alerts should be sent and many more.

          For each `Prometheus` resource, the Operator deploys one or several `StatefulSet` objects in the same namespace. The number of StatefulSets is equal to the number of shards which is 1 by default.

          The resource defines via label and namespace selectors which `ServiceMonitor`, `PodMonitor`, `Probe` and `PrometheusRule` objects should be associated to the deployed Prometheus instances.

          The Operator continuously reconciles the scrape and rules configuration and a sidecar container running in the Prometheus pods triggers a reload of the configuration when needed.
paulfantom's avatar
paulfantom committed
        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
paulfantom's avatar
paulfantom committed
            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
paulfantom's avatar
paulfantom committed
            type: string
          metadata:
            type: object
          spec:
            description: |-
              Specification of the desired behavior of the Prometheus cluster. More info:
              https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
paulfantom's avatar
paulfantom committed
            properties:
              additionalAlertManagerConfigs:
                description: |-
                  AdditionalAlertManagerConfigs specifies a key of a Secret containing
                  additional Prometheus Alertmanager configurations. The Alertmanager
                  configurations are appended to the configuration generated by the
                  Prometheus Operator. They must be formatted according to the official
                  Prometheus documentation:

                  https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config

                  The user is responsible for making sure that the configurations are valid

                  Note that using this feature may expose the possibility to break
                  upgrades of Prometheus. It is advised to review Prometheus release notes
                  to ensure that no incompatible AlertManager configs are going to break
                  Prometheus after the upgrade.
paulfantom's avatar
paulfantom committed
                properties:
                  key:
                    description: The key of the secret to select from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      This field is effectively required, but due to backwards compatibility is
                      allowed to be empty. Instances of this type with an empty value here are
                      almost certainly wrong.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
paulfantom's avatar
paulfantom committed
                    type: string
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
                required:
                - key
                type: object
                x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
              additionalAlertRelabelConfigs:
                description: |-
                  AdditionalAlertRelabelConfigs specifies a key of a Secret containing
                  additional Prometheus alert relabel configurations. The alert relabel
                  configurations are appended to the configuration generated by the
                  Prometheus Operator. They must be formatted according to the official
                  Prometheus documentation:

                  https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs

                  The user is responsible for making sure that the configurations are valid

                  Note that using this feature may expose the possibility to break
                  upgrades of Prometheus. It is advised to review Prometheus release notes
                  to ensure that no incompatible alert relabel configs are going to break
                  Prometheus after the upgrade.
paulfantom's avatar
paulfantom committed
                properties:
                  key:
                    description: The key of the secret to select from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      This field is effectively required, but due to backwards compatibility is
                      allowed to be empty. Instances of this type with an empty value here are
                      almost certainly wrong.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
paulfantom's avatar
paulfantom committed
                    type: string
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
                required:
                - key
                type: object
                x-kubernetes-map-type: atomic
                description: |-
                  AdditionalArgs allows setting additional arguments for the 'prometheus' container.

                  It is intended for e.g. activating hidden flags which are not supported by
                  the dedicated configuration options yet. The arguments are passed as-is to the
                  Prometheus container which may cause issues if they are invalid or not supported
                  by the given Prometheus version.

                  In case of an argument conflict (e.g. an argument which is already set by the
                  operator itself) or when providing an invalid argument, the reconciliation will
                  fail and an error will be logged.
                items:
                  description: Argument as part of the AdditionalArgs list.
                  properties:
                    name:
                      description: Name of the argument, e.g. "scrape.discovery-reload-interval".
                      minLength: 1
                      type: string
                    value:
                      description: Argument value, e.g. 30s. Can be empty for name-only arguments (e.g. --storage.tsdb.no-lockfile)
                      type: string
                  required:
                  - name
                  type: object
                type: array
paulfantom's avatar
paulfantom committed
              additionalScrapeConfigs:
                description: |-
                  AdditionalScrapeConfigs allows specifying a key of a Secret containing
                  additional Prometheus scrape configurations. Scrape configurations
                  specified are appended to the configurations generated by the Prometheus
                  Operator. Job configurations specified must have the form as specified
                  in the official Prometheus documentation:
                  https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.
                  As scrape configs are appended, the user is responsible to make sure it
                  is valid. Note that using this feature may expose the possibility to
                  break upgrades of Prometheus. It is advised to review Prometheus release
                  notes to ensure that no incompatible scrape configs are going to break
                  Prometheus after the upgrade.
paulfantom's avatar
paulfantom committed
                properties:
                  key:
                    description: The key of the secret to select from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      This field is effectively required, but due to backwards compatibility is
                      allowed to be empty. Instances of this type with an empty value here are
                      almost certainly wrong.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
paulfantom's avatar
paulfantom committed
                    type: string
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
                required:
                - key
                type: object
                x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
              affinity:
                description: Defines the Pods' affinity scheduling rules if specified.
paulfantom's avatar
paulfantom committed
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the pod.
paulfantom's avatar
paulfantom committed
                    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.
paulfantom's avatar
paulfantom committed
                        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).
paulfantom's avatar
paulfantom committed
                          properties:
                            preference:
                              description: A node selector term, associated with the corresponding weight.
paulfantom's avatar
paulfantom committed
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
paulfantom's avatar
paulfantom committed
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
paulfantom's avatar
paulfantom committed
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
paulfantom's avatar
paulfantom committed
                                        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.
paulfantom's avatar
paulfantom committed
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
paulfantom's avatar
paulfantom committed
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
paulfantom's avatar
paulfantom committed
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
paulfantom's avatar
paulfantom committed
                                        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.
paulfantom's avatar
paulfantom committed
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                              type: object
                              x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                            weight:
                              description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
paulfantom's avatar
paulfantom committed
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                      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.
paulfantom's avatar
paulfantom committed
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms. The terms are ORed.
paulfantom's avatar
paulfantom committed
                            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.
paulfantom's avatar
paulfantom committed
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
paulfantom's avatar
paulfantom committed
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
paulfantom's avatar
paulfantom committed
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
paulfantom's avatar
paulfantom committed
                                        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.
paulfantom's avatar
paulfantom committed
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
paulfantom's avatar
paulfantom committed
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
paulfantom's avatar
paulfantom committed
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
paulfantom's avatar
paulfantom committed
                                        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.
paulfantom's avatar
paulfantom committed
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                              type: object
                              x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                            type: array
                            x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                    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)).
paulfantom's avatar
paulfantom committed
                    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.
paulfantom's avatar
paulfantom committed
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
paulfantom's avatar
paulfantom committed
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
paulfantom's avatar
paulfantom committed
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    If it's null, this PodAffinityTerm matches with no Pods.
paulfantom's avatar
paulfantom committed
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        description: |-
                                          A label selector requirement is a selector that contains values, a key, and an operator that
                                          relates the key and values.
paulfantom's avatar
paulfantom committed
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                            type: string
                                          operator:
                                            description: |-
                                              operator represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists and DoesNotExist.
paulfantom's avatar
paulfantom committed
                                            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.
paulfantom's avatar
paulfantom committed
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    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.
paulfantom's avatar
paulfantom committed
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                  description: |-
                                    MatchLabelKeys is a set of pod label keys to select which pods will
                                    be taken into consideration. The keys are used to lookup values from the
                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                    to select the group of existing pods which pods will be taken into consideration
                                    for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                    pod labels will be ignored. The default value is empty.
                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                    Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                    This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: |-
                                    MismatchLabelKeys is a set of pod label keys to select which pods will
                                    be taken into consideration. The keys are used to lookup values from the
                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                    to select the group of existing pods which pods will be taken into consideration
                                    for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                    pod labels will be ignored. The default value is empty.
                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                    Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                    This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                  description: |-
                                    A label query over the set of namespaces that the term applies to.
                                    The term is applied to the union of the namespaces selected by this field
                                    and the ones listed in the namespaces field.
                                    null selector and null or empty namespaces list means "this pod's namespace".
                                    An empty selector ({}) matches all namespaces.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        description: |-
                                          A label selector requirement is a selector that contains values, a key, and an operator that
                                          relates the key and values.
                                            description: key is the label key that the selector applies to.
                                            description: |-
                                              operator represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists and DoesNotExist.
                                            description: |-
                                              values is an array of string values. If the operator is In or NotIn,
                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                              the values array must be empty. This array is replaced during a strategic
                                              merge patch.
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions, whose key field is "key", the
                                        operator is "In", and the values array contains only "value". The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                                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".
paulfantom's avatar
paulfantom committed
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                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.
paulfantom's avatar
paulfantom committed
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: |-
                                weight associated with matching the corresponding podAffinityTerm,
                                in the range 1-100.
paulfantom's avatar
paulfantom committed
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                      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.
paulfantom's avatar
paulfantom committed
                        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
paulfantom's avatar
paulfantom committed
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                If it's null, this PodAffinityTerm matches with no Pods.
paulfantom's avatar
paulfantom committed
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
paulfantom's avatar
paulfantom committed
                                  items:
                                    description: |-
                                      A label selector requirement is a selector that contains values, a key, and an operator that
                                      relates the key and values.
paulfantom's avatar
paulfantom committed
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                        type: string
                                      operator:
                                        description: |-
                                          operator represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists and DoesNotExist.
paulfantom's avatar
paulfantom committed
                                      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.
paulfantom's avatar
paulfantom committed
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                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.
paulfantom's avatar
paulfantom committed
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                              description: |-
                                MatchLabelKeys is a set of pod label keys to select which pods will
                                be taken into consideration. The keys are used to lookup values from the
                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                to select the group of existing pods which pods will be taken into consideration
                                for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                pod labels will be ignored. The default value is empty.
                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: |-
                                MismatchLabelKeys is a set of pod label keys to select which pods will
                                be taken into consideration. The keys are used to lookup values from the
                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                to select the group of existing pods which pods will be taken into consideration
                                for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                pod labels will be ignored. The default value is empty.
                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                              description: |-
                                A label query over the set of namespaces that the term applies to.
                                The term is applied to the union of the namespaces selected by this field
                                and the ones listed in the namespaces field.
                                null selector and null or empty namespaces list means "this pod's namespace".
                                An empty selector ({}) matches all namespaces.
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                    description: |-
                                      A label selector requirement is a selector that contains values, a key, and an operator that
                                      relates the key and values.
                                        description: key is the label key that the selector applies to.
                                        description: |-
                                          operator represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists and DoesNotExist.
                                        description: |-
                                          values is an array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. This array is replaced during a strategic
                                          merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: |-
                                    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                    map is equivalent to an element of matchExpressions, whose key field is "key", the
                                    operator is "In", and the values array contains only "value". The requirements are ANDed.
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                            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".
paulfantom's avatar
paulfantom committed
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                            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.
paulfantom's avatar
paulfantom committed
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                    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)).
paulfantom's avatar
paulfantom committed
                    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.
paulfantom's avatar
paulfantom committed
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
paulfantom's avatar
paulfantom committed
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
paulfantom's avatar
paulfantom committed
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    If it's null, this PodAffinityTerm matches with no Pods.
paulfantom's avatar
paulfantom committed
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
paulfantom's avatar
paulfantom committed
                                      items:
                                        description: |-
                                          A label selector requirement is a selector that contains values, a key, and an operator that
                                          relates the key and values.
paulfantom's avatar
paulfantom committed
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                            type: string
                                          operator:
                                            description: |-
                                              operator represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists and DoesNotExist.
paulfantom's avatar
paulfantom committed
                                            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.
paulfantom's avatar
paulfantom committed
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    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.
paulfantom's avatar
paulfantom committed
                                      type: object
                                  x-kubernetes-map-type: atomic
                                  description: |-
                                    MatchLabelKeys is a set of pod label keys to select which pods will
                                    be taken into consideration. The keys are used to lookup values from the
                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                    to select the group of existing pods which pods will be taken into consideration
                                    for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                    pod labels will be ignored. The default value is empty.
                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                    Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                    This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: |-
                                    MismatchLabelKeys is a set of pod label keys to select which pods will
                                    be taken into consideration. The keys are used to lookup values from the
                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                    to select the group of existing pods which pods will be taken into consideration
                                    for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                    pod labels will be ignored. The default value is empty.
                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                    Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                    This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                  description: |-
                                    A label query over the set of namespaces that the term applies to.
                                    The term is applied to the union of the namespaces selected by this field
                                    and the ones listed in the namespaces field.
                                    null selector and null or empty namespaces list means "this pod's namespace".
                                    An empty selector ({}) matches all namespaces.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        description: |-
                                          A label selector requirement is a selector that contains values, a key, and an operator that
                                          relates the key and values.
                                            description: key is the label key that the selector applies to.
                                            description: |-
                                              operator represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists and DoesNotExist.
                                            description: |-
                                              values is an array of string values. If the operator is In or NotIn,
                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                              the values array must be empty. This array is replaced during a strategic
                                              merge patch.
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: |-
                                        matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions, whose key field is "key", the
                                        operator is "In", and the values array contains only "value". The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                                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".
paulfantom's avatar
paulfantom committed
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                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.
paulfantom's avatar
paulfantom committed
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: |-
                                weight associated with matching the corresponding podAffinityTerm,
                                in the range 1-100.
paulfantom's avatar
paulfantom committed
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                      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.
paulfantom's avatar
paulfantom committed
                        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
paulfantom's avatar
paulfantom committed
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                If it's null, this PodAffinityTerm matches with no Pods.
paulfantom's avatar
paulfantom committed
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
paulfantom's avatar
paulfantom committed
                                  items:
                                    description: |-
                                      A label selector requirement is a selector that contains values, a key, and an operator that
                                      relates the key and values.
paulfantom's avatar
paulfantom committed
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                        type: string
                                      operator:
                                        description: |-
                                          operator represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists and DoesNotExist.
paulfantom's avatar
paulfantom committed
                                        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.
paulfantom's avatar
paulfantom committed
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
paulfantom's avatar
paulfantom committed
                                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.
paulfantom's avatar
paulfantom committed
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                              description: |-
                                MatchLabelKeys is a set of pod label keys to select which pods will
                                be taken into consideration. The keys are used to lookup values from the
                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                to select the group of existing pods which pods will be taken into consideration
                                for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                pod labels will be ignored. The default value is empty.
                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).