Skip to content
Snippets Groups Projects
0servicemonitorCustomResourceDefinition.yaml 60 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: servicemonitors.monitoring.coreos.com
spec:
  group: monitoring.coreos.com
  names:
paulfantom's avatar
paulfantom committed
    categories:
    - prometheus-operator
    kind: ServiceMonitor
    listKind: ServiceMonitorList
    plural: servicemonitors
    singular: servicemonitor
paulfantom's avatar
paulfantom committed
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: |-
          The `ServiceMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of services.
          Among other things, it allows to specify:
          * The services to scrape via label selectors.
          * The container ports to scrape.
          * Authentication credentials to use.
          * Target and metric relabeling.

          `Prometheus` and `PrometheusAgent` objects select `ServiceMonitor` objects using label and namespace selectors.
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 desired Service selection for target discovery by
              Prometheus.
paulfantom's avatar
paulfantom committed
            properties:
                description: |-
                  `attachMetadata` defines additional metadata which is added to the
                  discovered targets.

                  It requires Prometheus >= v2.37.0.
Philip Gough's avatar
Philip Gough committed
                      When set to true, Prometheus attaches node metadata to the discovered
                      targets.

                      The Prometheus service account must have the `list` and `watch`
                      permissions on the `Nodes` objects.
                    type: boolean
                type: object
                description: |-
                  When defined, bodySizeLimit specifies a job level limit on the size
                  of uncompressed response body that will be accepted by Prometheus.

                  It requires Prometheus >= v2.28.0.
                pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
                type: string
paulfantom's avatar
paulfantom committed
              endpoints:
                description: |-
                  List of endpoints part of this ServiceMonitor.
                  Defines how to scrape metrics from Kubernetes [Endpoints](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) objects.
                  In most cases, an Endpoints object is backed by a Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) object with the same name and labels.
paulfantom's avatar
paulfantom committed
                items:
                  description: |-
                    Endpoint defines an endpoint serving Prometheus metrics to be scraped by
                    Prometheus.
paulfantom's avatar
paulfantom committed
                  properties:
                    authorization:
                      description: |-
                        `authorization` configures the Authorization header credentials to use when
                        scraping the target.

                        Cannot be set at the same time as `basicAuth`, or `oauth2`.
                      properties:
                        credentials:
                          description: Selects a key of a Secret in the namespace that contains the credentials for authentication.
                          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.
                                This field is effectively required, but due to backwards compatibility is
                                allowed to be empty. Instances of this type with an empty value here are
                                almost certainly wrong.
                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                          description: |-
                            Defines the authentication type. The value is case-insensitive.

                            "Basic" is not a supported value.

                            Default: "Bearer"
                          type: string
                      type: object
paulfantom's avatar
paulfantom committed
                    basicAuth:
                      description: |-
                        `basicAuth` configures the Basic Authentication credentials to use when
                        scraping the target.

                        Cannot be set at the same time as `authorization`, or `oauth2`.
paulfantom's avatar
paulfantom committed
                      properties:
                        password:
                          description: |-
                            `password` specifies a key of a Secret containing the password for
                            authentication.
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
paulfantom's avatar
paulfantom committed
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                        username:
                          description: |-
                            `username` specifies a key of a Secret containing the username for
                            authentication.
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
paulfantom's avatar
paulfantom committed
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                      type: object
                    bearerTokenFile:
                      description: |-
                        File to read bearer token for scraping the target.

                        Deprecated: use `authorization` instead.
paulfantom's avatar
paulfantom committed
                      type: string
                    bearerTokenSecret:
                      description: |-
                        `bearerTokenSecret` specifies a key of a Secret containing the bearer
                        token for scraping targets. The secret needs to be in the same namespace
                        as the ServiceMonitor object and readable by the Prometheus Operator.

                        Deprecated: use `authorization` instead.
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
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - key
                      type: object
                      x-kubernetes-map-type: atomic
                      description: '`enableHttp2` can be used to disable HTTP2 when scraping the target.'
                      description: |-
                        When true, the pods which are not running (e.g. either in Failed or
                        Succeeded state) are dropped during the target discovery.

                        If unset, the filtering is enabled.

                        More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
                      description: |-
                        `followRedirects` defines whether the scrape requests should follow HTTP
                        3xx redirects.
paulfantom's avatar
paulfantom committed
                    honorLabels:
                      description: |-
                        When true, `honorLabels` preserves the metric's labels when they collide
                        with the target's labels.
paulfantom's avatar
paulfantom committed
                      type: boolean
                    honorTimestamps:
                      description: |-
                        `honorTimestamps` controls whether Prometheus preserves the timestamps
                        when exposed by the target.
paulfantom's avatar
paulfantom committed
                      type: boolean
                    interval:
                      description: |-
                        Interval at which Prometheus scrapes the metrics from the target.

                        If empty, Prometheus uses the global scrape interval.
                      pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
paulfantom's avatar
paulfantom committed
                      type: string
                    metricRelabelings:
                      description: |-
                        `metricRelabelings` configures the relabeling rules to apply to the
                        samples before ingestion.
paulfantom's avatar
paulfantom committed
                      items:
                        description: |-
                          RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
                          scraped samples and remote write samples.

                          More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
paulfantom's avatar
paulfantom committed
                          action:
                            description: |-
                              Action to perform based on the regex matching.

                              `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
                              `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.

                              Default: "Replace"
                            - LabelKeep
                            - lowercase
                            - Lowercase
                            - uppercase
                            - Uppercase
                            - keepequal
                            - KeepEqual
                            - dropequal
                            - DropEqual
paulfantom's avatar
paulfantom committed
                            type: string
                          modulus:
                            description: |-
                              Modulus to take of the hash of the source label values.

                              Only applicable when the action is `HashMod`.
paulfantom's avatar
paulfantom committed
                            format: int64
                            type: integer
                          regex:
                            description: Regular expression against which the extracted value is matched.
paulfantom's avatar
paulfantom committed
                            type: string
                          replacement:
                            description: |-
                              Replacement value against which a Replace action is performed if the
                              regular expression matches.

                              Regex capture groups are available.
paulfantom's avatar
paulfantom committed
                          separator:
                            description: Separator is the string between concatenated SourceLabels.
paulfantom's avatar
paulfantom committed
                            type: string
                          sourceLabels:
                            description: |-
                              The source labels select values from existing labels. Their content is
                              concatenated using the configured Separator and matched against the
                              configured regular expression.
paulfantom's avatar
paulfantom committed
                            items:
                              description: |-
                                LabelName is a valid Prometheus label name which may only contain ASCII
                                letters, numbers, as well as underscores.
                              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
paulfantom's avatar
paulfantom committed
                              type: string
                            type: array
                          targetLabel:
                            description: |-
                              Label to which the resulting string is written in a replacement.

                              It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
                              `KeepEqual` and `DropEqual` actions.

                              Regex capture groups are available.
paulfantom's avatar
paulfantom committed
                      type: array
                    oauth2:
                      description: |-
                        `oauth2` configures the OAuth2 settings to use when scraping the target.

                        It requires Prometheus >= 2.27.0.

                        Cannot be set at the same time as `authorization`, or `basicAuth`.
                      properties:
                        clientId:
                          description: |-
                            `clientId` specifies a key of a Secret or ConfigMap containing the
                            OAuth2 client's ID.
                          properties:
                            configMap:
                              description: ConfigMap containing data to use for the targets.
                              properties:
                                key:
                                  description: The key to select.
                                  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
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            secret:
                              description: Secret containing data to use for the targets.
                              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.
                                    This field is effectively required, but due to backwards compatibility is
                                    allowed to be empty. Instances of this type with an empty value here are
                                    almost certainly wrong.
                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        clientSecret:
                          description: |-
                            `clientSecret` specifies a key of a Secret containing the OAuth2
                            client's secret.
                          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.
                                This field is effectively required, but due to backwards compatibility is
                                allowed to be empty. Instances of this type with an empty value here are
                                almost certainly wrong.
                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        endpointParams:
                          additionalProperties:
                            type: string
                          description: |-
                            `endpointParams` configures the HTTP parameters to append to the token
                            URL.
                          type: object
                        noProxy:
                          description: |-
                            `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
                            that should be excluded from proxying. IP and domain names can
                            contain port numbers.

                            It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
                          type: string
                        proxyConnectHeader:
                          additionalProperties:
                            items:
                              description: SecretKeySelector selects a key of a Secret.
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ""
                                  description: |-
                                    Name of the referent.
                                    This field is effectively required, but due to backwards compatibility is
                                    allowed to be empty. Instances of this type with an empty value here are
                                    almost certainly wrong.
                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                          description: |-
                            ProxyConnectHeader optionally specifies headers to send to
                            proxies during CONNECT requests.

                            It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
                          type: object
                          x-kubernetes-map-type: atomic
                        proxyFromEnvironment:
                          description: |-
                            Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).

                            It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
                          type: boolean
                        proxyUrl:
                          description: '`proxyURL` defines the HTTP proxy server to use.'
                          pattern: ^http(s)?://.+$
                          type: string
                        scopes:
                          description: '`scopes` defines the OAuth2 scopes used for the token request.'
                          items:
                            type: string
                          type: array
                        tlsConfig:
                          description: |-
                            TLS configuration to use when connecting to the OAuth2 server.
                            It requires Prometheus >= v2.43.0.
                          properties:
                            ca:
                              description: Certificate authority used when verifying server certificates.
                              properties:
                                configMap:
                                  description: ConfigMap containing data to use for the targets.
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ""
                                      description: |-
                                        Name of the referent.
                                        This field is effectively required, but due to backwards compatibility is
                                        allowed to be empty. Instances of this type with an empty value here are
                                        almost certainly wrong.
                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secret:
                                  description: Secret containing data to use for the targets.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ""
                                      description: |-
                                        Name of the referent.
                                        This field is effectively required, but due to backwards compatibility is
                                        allowed to be empty. Instances of this type with an empty value here are
                                        almost certainly wrong.
                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            cert:
                              description: Client certificate to present when doing client-authentication.
                              properties:
                                configMap:
                                  description: ConfigMap containing data to use for the targets.
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ""
                                      description: |-
                                        Name of the referent.
                                        This field is effectively required, but due to backwards compatibility is
                                        allowed to be empty. Instances of this type with an empty value here are
                                        almost certainly wrong.
                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secret:
                                  description: Secret containing data to use for the targets.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ""
                                      description: |-
                                        Name of the referent.
                                        This field is effectively required, but due to backwards compatibility is
                                        allowed to be empty. Instances of this type with an empty value here are
                                        almost certainly wrong.
                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            insecureSkipVerify:
                              description: Disable target certificate validation.
                              type: boolean
                            keySecret:
                              description: Secret containing the client key file for the targets.
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ""
                                  description: |-
                                    Name of the referent.
                                    This field is effectively required, but due to backwards compatibility is
                                    allowed to be empty. Instances of this type with an empty value here are
                                    almost certainly wrong.
                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            maxVersion:
                              description: |-
                                Maximum acceptable TLS version.

                                It requires Prometheus >= v2.41.0.
                              enum:
                              - TLS10
                              - TLS11
                              - TLS12
                              - TLS13
                              type: string
                            minVersion:
                              description: |-
                                Minimum acceptable TLS version.

                                It requires Prometheus >= v2.35.0.
                              enum:
                              - TLS10
                              - TLS11
                              - TLS12
                              - TLS13
                              type: string
                            serverName:
                              description: Used to verify the hostname for the targets.
                              type: string
                          type: object
                        tokenUrl:
                          description: '`tokenURL` configures the URL to fetch the token from.'
                          minLength: 1
                          type: string
                      required:
                      - clientId
                      - clientSecret
                      - tokenUrl
                      type: object
paulfantom's avatar
paulfantom committed
                    params:
                      additionalProperties:
                        items:
                          type: string
                        type: array
                      description: params define optional HTTP URL parameters.
paulfantom's avatar
paulfantom committed
                      type: object
                    path:
                      description: |-
                        HTTP path from which to scrape for metrics.

                        If empty, Prometheus uses the default value (e.g. `/metrics`).
paulfantom's avatar
paulfantom committed
                      type: string
                    port:
                      description: |-
                        Name of the Service port which this endpoint refers to.

                        It takes precedence over `targetPort`.
paulfantom's avatar
paulfantom committed
                      type: string
                    proxyUrl:
                      description: |-
                        `proxyURL` configures the HTTP Proxy URL (e.g.
                        "http://proxyserver:2195") to go through when scraping the target.
paulfantom's avatar
paulfantom committed
                      type: string
                    relabelings:
                      description: |-
                        `relabelings` configures the relabeling rules to apply the target's
                        metadata labels.

                        The Operator automatically adds relabelings for a few standard Kubernetes fields.

                        The original scrape job's name is available via the `__tmp_prometheus_job_name` label.

                        More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
paulfantom's avatar
paulfantom committed
                      items:
                        description: |-
                          RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
                          scraped samples and remote write samples.

                          More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
paulfantom's avatar
paulfantom committed
                          action:
                            description: |-
                              Action to perform based on the regex matching.

                              `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
                              `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.

                              Default: "Replace"
                            - LabelKeep
                            - lowercase
                            - Lowercase
                            - uppercase
                            - Uppercase
                            - keepequal
                            - KeepEqual
                            - dropequal
                            - DropEqual
paulfantom's avatar
paulfantom committed
                            type: string
                          modulus:
                            description: |-
                              Modulus to take of the hash of the source label values.

                              Only applicable when the action is `HashMod`.
paulfantom's avatar
paulfantom committed
                            format: int64
                            type: integer
                          regex:
                            description: Regular expression against which the extracted value is matched.
paulfantom's avatar
paulfantom committed
                          replacement:
                            description: |-
                              Replacement value against which a Replace action is performed if the
                              regular expression matches.

                              Regex capture groups are available.
paulfantom's avatar
paulfantom committed
                            type: string
                          separator:
                            description: Separator is the string between concatenated SourceLabels.
paulfantom's avatar
paulfantom committed
                            type: string
                          sourceLabels:
                            description: |-
                              The source labels select values from existing labels. Their content is
                              concatenated using the configured Separator and matched against the
                              configured regular expression.
paulfantom's avatar
paulfantom committed
                            items:
                              description: |-
                                LabelName is a valid Prometheus label name which may only contain ASCII
                                letters, numbers, as well as underscores.
                              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
paulfantom's avatar
paulfantom committed
                              type: string
                            type: array
                          targetLabel:
                            description: |-
                              Label to which the resulting string is written in a replacement.

                              It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
                              `KeepEqual` and `DropEqual` actions.

                              Regex capture groups are available.
paulfantom's avatar
paulfantom committed
                      type: array
                    scheme:
                      description: |-
                        HTTP scheme to use for scraping.

                        `http` and `https` are the expected values unless you rewrite the
                        `__scheme__` label via relabeling.

                        If empty, Prometheus uses the default value `http`.
paulfantom's avatar
paulfantom committed
                      type: string
                    scrapeTimeout:
                      description: |-
                        Timeout after which Prometheus considers the scrape to be failed.

                        If empty, Prometheus uses the global scrape timeout unless it is less
                        than the target's scrape interval value in which the latter is used.
                        The value cannot be greater than the scrape interval otherwise the operator will reject the resource.
                      pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
paulfantom's avatar
paulfantom committed
                      type: string
                    targetPort:
                      anyOf:
                      - type: integer
                      - type: string
                      description: |-
                        Name or number of the target port of the `Pod` object behind the
                        Service. The port must be specified with the container's port property.
paulfantom's avatar
paulfantom committed
                      x-kubernetes-int-or-string: true
                    tlsConfig:
                      description: TLS configuration to use when scraping the target.
paulfantom's avatar
paulfantom committed
                        ca:
                          description: Certificate authority used when verifying server certificates.
paulfantom's avatar
paulfantom committed
                          properties:
                            configMap:
                              description: ConfigMap containing data to use for the targets.
paulfantom's avatar
paulfantom committed
                              properties:
                                key:
                                  description: The key to select.
                                  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 ConfigMap or its key must be defined
paulfantom's avatar
paulfantom committed
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                            secret:
                              description: Secret containing data to use for the targets.
                              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
paulfantom's avatar
paulfantom committed
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
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
                        cert:
                          description: Client certificate to present when doing client-authentication.
paulfantom's avatar
paulfantom committed
                          properties:
                            configMap:
                              description: ConfigMap containing data to use for the targets.
paulfantom's avatar
paulfantom committed
                              properties:
                                key:
                                  description: The key to select.
                                  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 ConfigMap or its key must be defined
paulfantom's avatar
paulfantom committed
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                            secret:
                              description: Secret containing data to use for the targets.
                              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
paulfantom's avatar
paulfantom committed
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
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
                        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
                        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.
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
paulfantom's avatar
paulfantom committed
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
Philip Gough's avatar
Philip Gough committed
                        maxVersion:
                          description: |-
                            Maximum acceptable TLS version.

                            It requires Prometheus >= v2.41.0.
                          enum:
                          - TLS10
                          - TLS11
                          - TLS12
                          - TLS13
                          type: string
                        minVersion:
                          description: |-
                            Minimum acceptable TLS version.

                            It requires Prometheus >= v2.35.0.
                          enum:
                          - TLS10
                          - TLS11
                          - TLS12
                          - TLS13
                          type: string
paulfantom's avatar
paulfantom committed
                        serverName:
                          description: Used to verify the hostname for the targets.
                    trackTimestampsStaleness:
                      description: |-
                        `trackTimestampsStaleness` defines whether Prometheus tracks staleness of
                        the metrics that have an explicit timestamp present in scraped data.
                        Has no effect if `honorTimestamps` is false.

                        It requires Prometheus >= v2.48.0.
paulfantom's avatar
paulfantom committed
                  type: object
                type: array
              fallbackScrapeProtocol:
                description: |-
                  The protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type.

                  It requires Prometheus >= v3.0.0.
                enum:
                - PrometheusProto
                - OpenMetricsText0.0.1
                - OpenMetricsText1.0.0
                - PrometheusText0.0.4
                - PrometheusText1.0.0
                type: string
paulfantom's avatar
paulfantom committed
              jobLabel:
                description: |-
                  `jobLabel` selects the label from the associated Kubernetes `Service`
                  object which will be used as the `job` label for all metrics.

                  For example if `jobLabel` is set to `foo` and the Kubernetes `Service`
                  object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
                  label to all ingested metrics.

                  If the value of this field is empty or if the label doesn't exist for
                  the given Service, the `job` label of the metrics defaults to the name
                  of the associated Kubernetes `Service`.
paulfantom's avatar
paulfantom committed
                type: string
                description: |-
                  Per-scrape limit on the number of targets dropped by relabeling
                  that will be kept in memory. 0 means no limit.

                  It requires Prometheus >= v2.47.0.
                format: int64
                type: integer
              labelLimit:
                description: |-
                  Per-scrape limit on number of labels that will be accepted for a sample.

                  It requires Prometheus >= v2.27.0.
                format: int64
                type: integer
              labelNameLengthLimit:
                description: |-
                  Per-scrape limit on length of labels name that will be accepted for a sample.