Skip to content
Snippets Groups Projects
prometheus-operator-0prometheusCustomResourceDefinition.yaml 412 KiB
Newer Older
paulfantom's avatar
paulfantom committed
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
Lili Cosic's avatar
Lili Cosic committed
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  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 desired replicas number of Prometheuses
      jsonPath: .spec.replicas
      name: Replicas
      type: integer
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Prometheus defines a Prometheus deployment.
        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 allows specifying a key
                  of a Secret containing additional Prometheus AlertManager configurations.
                  AlertManager 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/#alertmanager_config.
                  As AlertManager 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 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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
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
              additionalAlertRelabelConfigs:
                description: 'AdditionalAlertRelabelConfigs allows specifying a key
                  of a Secret containing additional Prometheus alert relabel configurations.
                  Alert relabel configurations specified are appended to the configurations
                  generated by the Prometheus Operator. Alert relabel configurations
                  specified must have the form as specified in the official Prometheus
                  documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
                  As alert relabel 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 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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
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
              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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
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
              affinity:
                description: If specified, the pod's scheduling constraints.
                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
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                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
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            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
                      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
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                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
                                    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)).
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.
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
                                        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.
paulfantom's avatar
paulfantom committed
                                      type: object
                                  type: object
                                namespaces:
                                  description: namespaces specifies which namespaces
                                    the labelSelector applies to (matches against);
                                    null or empty list means "this pod's namespace"
paulfantom's avatar
paulfantom committed
                                  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.
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
                      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.
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
                                    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.
paulfantom's avatar
paulfantom committed
                                  type: object
                              type: object
                            namespaces:
                              description: namespaces specifies which namespaces the
                                labelSelector applies to (matches against); null or
                                empty list means "this pod's namespace"
paulfantom's avatar
paulfantom committed
                              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.
paulfantom's avatar
paulfantom committed
                              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)).
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.
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
                                        required:
                                        - key
                                        - operator
                                        type: object
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
paulfantom's avatar
paulfantom committed
                                namespaces:
                                  description: namespaces specifies which namespaces
                                    the labelSelector applies to (matches against);
                                    null or empty list means "this pod's namespace"
paulfantom's avatar
paulfantom committed
                                  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.
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
                      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.
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
                                    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.
paulfantom's avatar
paulfantom committed
                                  type: object
                              type: object
                            namespaces:
                              description: namespaces specifies which namespaces the
                                labelSelector applies to (matches against); null or
                                empty list means "this pod's namespace"
paulfantom's avatar
paulfantom committed
                              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.
paulfantom's avatar
paulfantom committed
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                type: object
              alerting:
                description: Define details regarding alerting.
                properties:
                  alertmanagers:
                    description: AlertmanagerEndpoints Prometheus should fire alerts
                      against.
paulfantom's avatar
paulfantom committed
                    items:
                      description: AlertmanagerEndpoints defines a selection of a
                        single Endpoints object containing alertmanager IPs to fire
                        alerts against.
paulfantom's avatar
paulfantom committed
                      properties:
                        apiVersion:
                          description: Version of the Alertmanager API that Prometheus
                            uses to send alerts. It can be "v1" or "v2".
paulfantom's avatar
paulfantom committed
                          type: string
                        authorization:
                          description: Authorization section for this alertmanager
                            endpoint
                          properties:
                            credentials:
                              description: The secret's key that contains the credentials
                                of the request
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must
                                    be a valid secret key.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key
                                    must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                            type:
                              description: Set the authentication type. Defaults to
                                Bearer, Basic will cause an error
                              type: string
                          type: object
paulfantom's avatar
paulfantom committed
                        bearerTokenFile:
                          description: BearerTokenFile to read from filesystem to
                            use when authenticating to Alertmanager.
paulfantom's avatar
paulfantom committed
                          type: string
                        name:
                          description: Name of Endpoints object in Namespace.
                          type: string
                        namespace:
                          description: Namespace of Endpoints object.
                          type: string
                        pathPrefix:
                          description: Prefix for the HTTP path alerts are pushed
                            to.
paulfantom's avatar
paulfantom committed
                          type: string
                        port:
                          anyOf:
                          - type: integer
                          - type: string
                          description: Port the Alertmanager API is exposed on.
                          x-kubernetes-int-or-string: true
                        scheme:
                          description: Scheme to use when firing alerts.
                          type: string
                          description: Timeout is a per-target Alertmanager timeout
                            when pushing alerts.
paulfantom's avatar
paulfantom committed
                        tlsConfig:
                          description: TLS Config to use for alertmanager connection.
                          properties:
                            ca:
                              description: Struct containing the CA cert to use for
                                the targets.
paulfantom's avatar
paulfantom committed
                              properties:
                                configMap:
                                  description: ConfigMap containing data to use for
                                    the targets.
paulfantom's avatar
paulfantom committed
                                      description: The key to select.
paulfantom's avatar
paulfantom committed
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
paulfantom's avatar
paulfantom committed
                                    optional:
                                      description: Specify whether the ConfigMap or
                                        its key must be defined
paulfantom's avatar
paulfantom committed
                                      type: boolean
paulfantom's avatar
paulfantom committed
                                secret:
                                  description: Secret containing data to use for the
                                    targets.
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
paulfantom's avatar
paulfantom committed
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
paulfantom's avatar
paulfantom committed
                                      type: boolean
paulfantom's avatar
paulfantom committed
                              type: object
                            caFile:
                              description: Path to the CA cert in the Prometheus container
                                to use for the targets.
paulfantom's avatar
paulfantom committed
                              type: string
                            cert:
                              description: Struct containing the client cert file
                                for the targets.
paulfantom's avatar
paulfantom committed
                              properties:
                                configMap:
                                  description: ConfigMap containing data to use for
                                    the targets.
paulfantom's avatar
paulfantom committed
                                      description: The key to select.
paulfantom's avatar
paulfantom committed
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
paulfantom's avatar
paulfantom committed
                                    optional:
                                      description: Specify whether the ConfigMap or
                                        its key must be defined
paulfantom's avatar
paulfantom committed
                                      type: boolean
paulfantom's avatar
paulfantom committed
                                secret:
                                  description: Secret containing data to use for the
                                    targets.
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
paulfantom's avatar
paulfantom committed
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
paulfantom's avatar
paulfantom committed
                                      type: boolean
paulfantom's avatar
paulfantom committed
                              type: object
                            certFile:
                              description: Path to the client cert file in the Prometheus
                                container for the targets.
paulfantom's avatar
paulfantom committed
                              type: string
                            insecureSkipVerify:
                              description: Disable target certificate validation.
                              type: boolean
                            keyFile:
                              description: Path to the client key file in the Prometheus
                                container for the targets.
paulfantom's avatar
paulfantom committed
                              type: string
                            keySecret:
                              description: Secret containing the client key file for
                                the targets.
paulfantom's avatar
paulfantom committed
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must
                                    be a valid secret key.
                                  type: string
paulfantom's avatar
paulfantom committed
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
paulfantom's avatar
paulfantom committed
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key
                                    must be defined
paulfantom's avatar
paulfantom committed
                                  type: boolean
                              required:
                              - key
                              type: object
                            serverName:
                              description: Used to verify the hostname for the targets.
paulfantom's avatar
paulfantom committed
                          type: object
                      required:
                      - name
                      - namespace
                      - port
                      type: object
                    type: array
                required:
                - alertmanagers
                type: object
              allowOverlappingBlocks:
                description: AllowOverlappingBlocks enables vertical compaction and
                  vertical query merge in Prometheus. This is still experimental in
                  Prometheus so it may change in any upcoming release.
paulfantom's avatar
paulfantom committed
              apiserverConfig:
                description: APIServerConfig allows specifying a host and auth methods
                  to access apiserver. If left empty, Prometheus is assumed to run
                  inside of the cluster and will discover API servers automatically
                  and use the pod's CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
paulfantom's avatar
paulfantom committed
                properties:
                  authorization:
                    description: Authorization section for accessing apiserver
                    properties:
                      credentials:
                        description: The secret's key that contains the credentials
                          of the request
                        properties:
                          key:
                            description: The key of the secret to select from.  Must
                              be a valid secret key.
                            type: string
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
                            type: string
                          optional:
                            description: Specify whether the Secret or its key must
                              be defined
                            type: boolean
                        required:
                        - key
                        type: object
                      credentialsFile:
                        description: File to read a secret from, mutually exclusive
                          with Credentials (from SafeAuthorization)
                        type: string
                      type:
                        description: Set the authentication type. Defaults to Bearer,
                          Basic will cause an error
                        type: string
                    type: object
paulfantom's avatar
paulfantom committed
                  basicAuth:
                    description: BasicAuth allow an endpoint to authenticate over
                      basic authentication
paulfantom's avatar
paulfantom committed
                    properties:
                      password:
                        description: The secret in the service monitor namespace that
                          contains the password for authentication.
paulfantom's avatar
paulfantom committed
                          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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                            type: string
                          optional:
                            description: Specify whether the Secret or its key must
                              be defined
paulfantom's avatar
paulfantom committed
                            type: boolean