Skip to content
Snippets Groups Projects
0prometheus-operator-0prometheusCustomResourceDefinition.yaml 186 KiB
Newer Older
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  creationTimestamp: null
  name: prometheuses.monitoring.coreos.com
spec:
  group: monitoring.coreos.com
  names:
    kind: Prometheus
    plural: prometheuses
  scope: Namespaced
  validation:
    openAPIV3Schema:
      properties:
        apiVersion:
          description: 'APIVersion defines the versioned schema of this representation
            of an object. Servers should convert recognized schemas to the latest
            internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
          type: string
        kind:
          description: 'Kind is a string value representing the REST resource this
            object represents. Servers may infer this from the endpoint the client
            submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
          type: string
        spec:
          description: 'PrometheusSpec is a specification of the desired behavior
            of the Prometheus cluster. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#spec-and-status'
            additionalAlertManagerConfigs:
              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:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                  type: string
                optional:
                  description: Specify whether the Secret or it's key must be defined
                  type: boolean
              required:
              - key
            additionalAlertRelabelConfigs:
              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:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                  type: string
                optional:
                  description: Specify whether the Secret or it's key must be defined
                  type: boolean
              required:
              - key
            additionalScrapeConfigs:
              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:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                  type: string
                optional:
                  description: Specify whether the Secret or it's key must be defined
                  type: boolean
              required:
              - key
            affinity:
              description: Affinity is a group of affinity scheduling rules.
              properties:
                nodeAffinity:
                  description: Node affinity is a group of node affinity scheduling
                    rules.
                  properties:
                    preferredDuringSchedulingIgnoredDuringExecution:
                      description: The scheduler will prefer to schedule pods to nodes
                        that satisfy the affinity expressions specified by this field,
                        but it may choose a node that violates one or more of the
                        expressions. The node that is most preferred is the one with
                        the greatest sum of weights, i.e. for each node that meets
                        all of the scheduling requirements (resource request, requiredDuringScheduling
                        affinity expressions, etc.), compute a sum by iterating through
                        the elements of this field and adding "weight" to the sum
                        if the node matches the corresponding matchExpressions; the
                        node(s) with the highest sum are the most preferred.
                      items:
                        description: An empty preferred scheduling term matches all
                          objects with implicit weight 0 (i.e. it's a no-op). A null
                          preferred scheduling term matches no objects (i.e. is also
                          a no-op).
                        properties:
                          preference:
                            description: A null or empty node selector term matches
                              no objects. The requirements of them are ANDed. The
                              TopologySelectorTerm type implements a subset of the
                              NodeSelectorTerm.
                            properties:
                              matchExpressions:
                                description: A list of node selector requirements
                                  by node's labels.
                                items:
                                  description: A node selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
                                  properties:
                                    key:
                                      description: The label key that the selector
                                        applies to.
                                      type: string
                                    operator:
                                      description: Represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists, DoesNotExist. Gt, and Lt.
                                      type: string
                                    values:
                                      description: An array of string values. If the
                                        operator is In or NotIn, the values array
                                        must be non-empty. If the operator is Exists
                                        or DoesNotExist, the values array must be
                                        empty. If the operator is Gt or Lt, the values
                                        array must have a single element, which will
                                        be interpreted as an integer. This array is
                                        replaced during a strategic merge patch.
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                type: array
                              matchFields:
                                description: A list of node selector requirements
                                  by node's fields.
                                items:
                                  description: A node selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
                                  properties:
                                    key:
                                      description: The label key that the selector
                                        applies to.
                                      type: string
                                    operator:
                                      description: Represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists, DoesNotExist. Gt, and Lt.
                                      type: string
                                    values:
                                      description: An array of string values. If the
                                        operator is In or NotIn, the values array
                                        must be non-empty. If the operator is Exists
                                        or DoesNotExist, the values array must be
                                        empty. If the operator is Gt or Lt, the values
                                        array must have a single element, which will
                                        be interpreted as an integer. This array is
                                        replaced during a strategic merge patch.
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                type: array
                          weight:
                            description: Weight associated with matching the corresponding
                              nodeSelectorTerm, in the range 1-100.
                            format: int32
                            type: integer
                        required:
                        - weight
                        - preference
                      type: array
                    requiredDuringSchedulingIgnoredDuringExecution:
                      description: A node selector represents the union of the results
                        of one or more label queries over a set of nodes; that is,
                        it represents the OR of the selectors represented by the node
                        selector terms.
                      properties:
                        nodeSelectorTerms:
                          description: Required. A list of node selector terms. The
                            terms are ORed.
                          items:
                            description: A null or empty node selector term matches
                              no objects. The requirements of them are ANDed. The
                              TopologySelectorTerm type implements a subset of the
                              NodeSelectorTerm.
                            properties:
                              matchExpressions:
                                description: A list of node selector requirements
                                  by node's labels.
                                items:
                                  description: A node selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
                                  properties:
                                    key:
                                      description: The label key that the selector
                                        applies to.
                                      type: string
                                    operator:
                                      description: Represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists, DoesNotExist. Gt, and Lt.
                                      type: string
                                    values:
                                      description: An array of string values. If the
                                        operator is In or NotIn, the values array
                                        must be non-empty. If the operator is Exists
                                        or DoesNotExist, the values array must be
                                        empty. If the operator is Gt or Lt, the values
                                        array must have a single element, which will
                                        be interpreted as an integer. This array is
                                        replaced during a strategic merge patch.
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                type: array
                              matchFields:
                                description: A list of node selector requirements
                                  by node's fields.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656
                                items:
                                  description: A node selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
                                  properties:
                                    key:
                                      description: The label key that the selector
                                        applies to.
                                      type: string
                                    operator:
                                      description: Represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists, DoesNotExist. Gt, and Lt.
                                      type: string
                                    values:
                                      description: An array of string values. If the
                                        operator is In or NotIn, the values array
                                        must be non-empty. If the operator is Exists
                                        or DoesNotExist, the values array must be
                                        empty. If the operator is Gt or Lt, the values
                                        array must have a single element, which will
                                        be interpreted as an integer. This array is
                                        replaced during a strategic merge patch.
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                type: array
                          type: array
                      required:
                      - nodeSelectorTerms
                podAffinity:
                  description: Pod affinity is a group of inter pod affinity scheduling
                    rules.
                  properties:
                    preferredDuringSchedulingIgnoredDuringExecution:
                      description: The scheduler will prefer to schedule pods to nodes
                        that satisfy the affinity expressions specified by this field,
                        but it may choose a node that violates one or more of the
                        expressions. The node that is most preferred is the one with
                        the greatest sum of weights, i.e. for each node that meets
                        all of the scheduling requirements (resource request, requiredDuringScheduling
                        affinity expressions, etc.), compute a sum by iterating through
                        the elements of this field and adding "weight" to the sum
                        if the node has pods which matches the corresponding podAffinityTerm;
                        the node(s) with the highest sum are the most preferred.
                      items:
                        description: The weights of all of the matched WeightedPodAffinityTerm
                          fields are added per-node to find the most preferred node(s)
                        properties:
                          podAffinityTerm:
                            description: Defines a set of pods (namely those matching
                              the labelSelector relative to the given namespace(s))
                              that this pod should be co-located (affinity) or not
                              co-located (anti-affinity) with, where co-located is
                              defined as running on a node whose value of the label
                              with key <topologyKey> matches that of any node on which
                              a pod of the set of pods is running
                            properties:
                              labelSelector:
                                description: A label selector is a label query over
                                  a set of resources. The result of matchLabels and
                                  matchExpressions are ANDed. An empty label selector
                                  matches all objects. A null label selector matches
                                  no objects.
                                properties:
                                  matchExpressions:
                                    description: matchExpressions is a list of label
                                      selector requirements. The requirements are
                                      ANDed.
                                    items:
                                      description: A label selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: key is the label key that the
                                            selector applies to.
                                          type: string
                                        operator:
                                          description: operator represents a key's
                                            relationship to a set of values. Valid
                                            operators are In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: values is an array of string
                                            values. If the operator is In or NotIn,
                                            the values array must be non-empty. If
                                            the operator is Exists or DoesNotExist,
                                            the values array must be empty. This array
                                            is replaced during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                    type: array
                                  matchLabels:
                                    description: matchLabels is a map of {key,value}
                                      pairs. A single {key,value} in the matchLabels
                                      map is equivalent to an element of matchExpressions,
                                      whose key field is "key", the operator is "In",
                                      and the values array contains only "value".
                                      The requirements are ANDed.
                                    type: object
                              namespaces:
                                description: namespaces specifies which namespaces
                                  the labelSelector applies to (matches against);
                                  null or empty list means "this pod's namespace"
                                items:
                                  type: string
                                type: array
                              topologyKey:
                                description: This pod should be co-located (affinity)
                                  or not co-located (anti-affinity) with the pods
                                  matching the labelSelector in the specified namespaces,
                                  where co-located is defined as running on a node
                                  whose value of the label with key topologyKey matches
                                  that of any node on which any of the selected pods
                                  is running. Empty topologyKey is not allowed.
                                type: string
                            required:
                            - topologyKey
                          weight:
                            description: weight associated with matching the corresponding
                              podAffinityTerm, in the range 1-100.
                            format: int32
                            type: integer
                        required:
                        - weight
                        - podAffinityTerm
                      type: array
                    requiredDuringSchedulingIgnoredDuringExecution:
                      description: If the affinity requirements specified by this
                        field are not met at scheduling time, the pod will not be
                        scheduled onto the node. If the affinity requirements specified
                        by this field cease to be met at some point during pod execution
                        (e.g. due to a pod label update), the system may or may not
                        try to eventually evict the pod from its node. When there
                        are multiple elements, the lists of nodes corresponding to
                        each podAffinityTerm are intersected, i.e. all terms must
                        be satisfied.
                      items:
                        description: Defines a set of pods (namely those matching
                          the labelSelector relative to the given namespace(s)) that
                          this pod should be co-located (affinity) or not co-located
                          (anti-affinity) with, where co-located is defined as running
                          on a node whose value of the label with key <topologyKey>
                          matches that of any node on which a pod of the set of pods
                          is running
                        properties:
                          labelSelector:
                            description: A label selector is a label query over a
                              set of resources. The result of matchLabels and matchExpressions
                              are ANDed. An empty label selector matches all objects.
                              A null label selector matches no objects.
                            properties:
                              matchExpressions:
                                description: matchExpressions is a list of label selector
                                  requirements. The requirements are ANDed.
                                items:
                                  description: A label selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
                                  properties:
                                    key:
                                      description: key is the label key that the selector
                                        applies to.
                                      type: string
                                    operator:
                                      description: operator represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists and DoesNotExist.
                                      type: string
                                    values:
                                      description: values is an array of string values.
                                        If the operator is In or NotIn, the values
                                        array must be non-empty. If the operator is
                                        Exists or DoesNotExist, the values array must
                                        be empty. This array is replaced during a
                                        strategic merge patch.
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                type: array
                              matchLabels:
                                description: matchLabels is a map of {key,value} pairs.
                                  A single {key,value} in the matchLabels map is equivalent
                                  to an element of matchExpressions, whose key field
                                  is "key", the operator is "In", and the values array
                                  contains only "value". The requirements are ANDed.
                                type: object
                          namespaces:
                            description: namespaces specifies which namespaces the
                              labelSelector applies to (matches against); null or
                              empty list means "this pod's namespace"
                            items:
                              type: string
                            type: array
                          topologyKey:
                            description: This pod should be co-located (affinity)
                              or not co-located (anti-affinity) with the pods matching
                              the labelSelector in the specified namespaces, where
                              co-located is defined as running on a node whose value
                              of the label with key topologyKey matches that of any
                              node on which any of the selected pods is running. Empty
                              topologyKey is not allowed.
                            type: string
                        required:
                        - topologyKey
                      type: array
                podAntiAffinity:
                  description: Pod anti affinity is a group of inter pod anti affinity
                    scheduling rules.
                  properties:
                    preferredDuringSchedulingIgnoredDuringExecution:
                      description: The scheduler will prefer to schedule pods to nodes
                        that satisfy the anti-affinity expressions specified by this
                        field, but it may choose a node that violates one or more
                        of the expressions. The node that is most preferred is the
                        one with the greatest sum of weights, i.e. for each node that
                        meets all of the scheduling requirements (resource request,
                        requiredDuringScheduling anti-affinity expressions, etc.),
                        compute a sum by iterating through the elements of this field
                        and adding "weight" to the sum if the node has pods which
                        matches the corresponding podAffinityTerm; the node(s) with
                        the highest sum are the most preferred.
                      items:
                        description: The weights of all of the matched WeightedPodAffinityTerm
                          fields are added per-node to find the most preferred node(s)
                        properties:
                          podAffinityTerm:
                            description: Defines a set of pods (namely those matching
                              the labelSelector relative to the given namespace(s))
                              that this pod should be co-located (affinity) or not
                              co-located (anti-affinity) with, where co-located is
                              defined as running on a node whose value of the label
                              with key <topologyKey> matches that of any node on which
                              a pod of the set of pods is running
                            properties:
                              labelSelector:
                                description: A label selector is a label query over
                                  a set of resources. The result of matchLabels and
                                  matchExpressions are ANDed. An empty label selector
                                  matches all objects. A null label selector matches
                                  no objects.
                                properties:
                                  matchExpressions:
                                    description: matchExpressions is a list of label
                                      selector requirements. The requirements are
                                      ANDed.
                                    items:
                                      description: A label selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: key is the label key that the
                                            selector applies to.
                                          type: string
                                        operator:
                                          description: operator represents a key's
                                            relationship to a set of values. Valid
                                            operators are In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: values is an array of string
                                            values. If the operator is In or NotIn,
                                            the values array must be non-empty. If
                                            the operator is Exists or DoesNotExist,
                                            the values array must be empty. This array
                                            is replaced during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                    type: array
                                  matchLabels:
                                    description: matchLabels is a map of {key,value}
                                      pairs. A single {key,value} in the matchLabels
                                      map is equivalent to an element of matchExpressions,
                                      whose key field is "key", the operator is "In",
                                      and the values array contains only "value".
                                      The requirements are ANDed.
                                    type: object
                              namespaces:
                                description: namespaces specifies which namespaces
                                  the labelSelector applies to (matches against);
                                  null or empty list means "this pod's namespace"
                                items:
                                  type: string
                                type: array
                              topologyKey:
                                description: This pod should be co-located (affinity)
                                  or not co-located (anti-affinity) with the pods
                                  matching the labelSelector in the specified namespaces,
                                  where co-located is defined as running on a node
                                  whose value of the label with key topologyKey matches
                                  that of any node on which any of the selected pods
                                  is running. Empty topologyKey is not allowed.
                                type: string
                            required:
                            - topologyKey
                          weight:
                            description: weight associated with matching the corresponding
                              podAffinityTerm, in the range 1-100.
                            format: int32
                            type: integer
                        required:
                        - weight
                        - podAffinityTerm
                      type: array
                    requiredDuringSchedulingIgnoredDuringExecution:
                      description: If the anti-affinity requirements specified by
                        this field are not met at scheduling time, the pod will not
                        be scheduled onto the node. If the anti-affinity requirements
                        specified by this field cease to be met at some point during
                        pod execution (e.g. due to a pod label update), the system
                        may or may not try to eventually evict the pod from its node.
                        When there are multiple elements, the lists of nodes corresponding
                        to each podAffinityTerm are intersected, i.e. all terms must
                        be satisfied.
                      items:
                        description: Defines a set of pods (namely those matching
                          the labelSelector relative to the given namespace(s)) that
                          this pod should be co-located (affinity) or not co-located
                          (anti-affinity) with, where co-located is defined as running
                          on a node whose value of the label with key <topologyKey>
                          matches that of any node on which a pod of the set of pods
                          is running
                        properties:
                          labelSelector:
                            description: A label selector is a label query over a
                              set of resources. The result of matchLabels and matchExpressions
                              are ANDed. An empty label selector matches all objects.
                              A null label selector matches no objects.
                            properties:
                              matchExpressions:
                                description: matchExpressions is a list of label selector
                                  requirements. The requirements are ANDed.
                                items:
                                  description: A label selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
                                  properties:
                                    key:
                                      description: key is the label key that the selector
                                        applies to.
                                      type: string
                                    operator:
                                      description: operator represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists and DoesNotExist.
                                      type: string
                                    values:
                                      description: values is an array of string values.
                                        If the operator is In or NotIn, the values
                                        array must be non-empty. If the operator is
                                        Exists or DoesNotExist, the values array must
                                        be empty. This array is replaced during a
                                        strategic merge patch.
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                type: array
                              matchLabels:
                                description: matchLabels is a map of {key,value} pairs.
                                  A single {key,value} in the matchLabels map is equivalent
                                  to an element of matchExpressions, whose key field
                                  is "key", the operator is "In", and the values array
                                  contains only "value". The requirements are ANDed.
                                type: object
                          namespaces:
                            description: namespaces specifies which namespaces the
                              labelSelector applies to (matches against); null or
                              empty list means "this pod's namespace"
                            items:
                              type: string
                            type: array
                          topologyKey:
                            description: This pod should be co-located (affinity)
                              or not co-located (anti-affinity) with the pods matching
                              the labelSelector in the specified namespaces, where
                              co-located is defined as running on a node whose value
                              of the label with key topologyKey matches that of any
                              node on which any of the selected pods is running. Empty
                              topologyKey is not allowed.
                            type: string
                        required:
                        - topologyKey
                      type: array
            alerting:
              description: AlertingSpec defines parameters for alerting configuration
                of Prometheus servers.
              properties:
                alertmanagers:
                  description: AlertmanagerEndpoints Prometheus should fire alerts
                    against.
                  items:
                    description: AlertmanagerEndpoints defines a selection of a single
                      Endpoints object containing alertmanager IPs to fire alerts
                      against.
                    properties:
                      bearerTokenFile:
                        description: BearerTokenFile to read from filesystem to use
                          when authenticating to Alertmanager.
                        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.
                        type: string
                      port:
                        anyOf:
                        - type: string
                        - type: integer
                      scheme:
                        description: Scheme to use when firing alerts.
                        type: string
                      tlsConfig:
                        description: TLSConfig specifies TLS configuration parameters.
                        properties:
                          caFile:
                            description: The CA cert to use for the targets.
                            type: string
                          certFile:
                            description: The client cert file for the targets.
                            type: string
                          insecureSkipVerify:
                            description: Disable target certificate validation.
                            type: boolean
                          keyFile:
                            description: The client key file for the targets.
                            type: string
                          serverName:
                            description: Used to verify the hostname for the targets.
                            type: string
                    required:
                    - namespace
                    - name
                    - port
                  type: array
              required:
              - alertmanagers
            apiserverConfig:
              description: 'APIServerConfig defines a host and auth methods to access
                apiserver. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config'
              properties:
                basicAuth:
                  description: 'BasicAuth allow an endpoint to authenticate over basic
                    authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints'
                  properties:
                    password:
                      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:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        optional:
                          description: Specify whether the Secret or it's key must
                            be defined
                          type: boolean
                      required:
                      - key
                    username:
                      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:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        optional:
                          description: Specify whether the Secret or it's key must
                            be defined
                          type: boolean
                      required:
                      - key
                bearerToken:
                  description: Bearer token for accessing apiserver.
                  type: string
                bearerTokenFile:
                  description: File to read bearer token for accessing apiserver.
                  type: string
                host:
                  description: Host of apiserver. A valid string consisting of a hostname
                    or IP followed by an optional port number
                  type: string
                tlsConfig:
                  description: TLSConfig specifies TLS configuration parameters.
                  properties:
                    caFile:
                      description: The CA cert to use for the targets.
                      type: string
                    certFile:
                      description: The client cert file for the targets.
                      type: string
                    insecureSkipVerify:
                      description: Disable target certificate validation.
                      type: boolean
                    keyFile:
                      description: The client key file for the targets.
                      type: string
                    serverName:
                      description: Used to verify the hostname for the targets.
                      type: string
              required:
              - host
            baseImage:
              description: Base image to use for a Prometheus deployment.
              type: string
            configMaps:
              description: ConfigMaps is a list of ConfigMaps in the same namespace
                as the Prometheus object, which shall be mounted into the Prometheus
                Pods. The ConfigMaps are mounted into /etc/prometheus/configmaps/<configmap-name>.
              items:
                type: string
              type: array
            containers:
              description: Containers allows injecting additional containers. This
                is meant to allow adding an authentication proxy to a Prometheus pod.
              items:
                description: A single application container that you want to run within
                  a pod.
                properties:
                  args:
                    description: 'Arguments to the entrypoint. The docker image''s
                      CMD is used if this is not provided. Variable references $(VAR_NAME)
                      are expanded using the container''s environment. If a variable
                      cannot be resolved, the reference in the input string will be
                      unchanged. The $(VAR_NAME) syntax can be escaped with a double
                      $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                      regardless of whether the variable exists or not. Cannot be
                      updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                    items:
                      type: string
                    type: array
                  command:
                    description: 'Entrypoint array. Not executed within a shell. The
                      docker image''s ENTRYPOINT is used if this is not provided.
                      Variable references $(VAR_NAME) are expanded using the container''s
                      environment. If a variable cannot be resolved, the reference
                      in the input string will be unchanged. The $(VAR_NAME) syntax
                      can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references
                      will never be expanded, regardless of whether the variable exists
                      or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                    items:
                      type: string
                    type: array
                  env:
                    description: List of environment variables to set in the container.
                      Cannot be updated.
                    items:
                      description: EnvVar represents an environment variable present
                        in a Container.
                      properties:
                        name:
                          description: Name of the environment variable. Must be a
                            C_IDENTIFIER.
                          type: string
                        value:
                          description: 'Variable references $(VAR_NAME) are expanded
                            using the previous defined environment variables in the
                            container and any service environment variables. If a
                            variable cannot be resolved, the reference in the input
                            string will be unchanged. The $(VAR_NAME) syntax can be
                            escaped with a double $$, ie: $$(VAR_NAME). Escaped references
                            will never be expanded, regardless of whether the variable
                            exists or not. Defaults to "".'
                          type: string
                        valueFrom:
                          description: EnvVarSource represents a source for the value
                            of an EnvVar.
                          properties:
                            configMapKeyRef:
                              description: Selects a key from a ConfigMap.
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or it's
                                    key must be defined
                                  type: boolean
                              required:
                              - key
                            fieldRef:
                              description: ObjectFieldSelector selects an APIVersioned
                                field of an object.
                              properties:
                                apiVersion:
                                  description: Version of the schema the FieldPath
                                    is written in terms of, defaults to "v1".
                                  type: string
                                fieldPath:
                                  description: Path of the field to select in the
                                    specified API version.
                                  type: string
                              required:
                              - fieldPath
                            resourceFieldRef:
                              description: ResourceFieldSelector represents container
                                resources (cpu, memory) and their output format
                              properties:
                                containerName:
                                  description: 'Container name: required for volumes,
                                    optional for env vars'
                                  type: string
                                divisor: {}
                                resource:
                                  description: 'Required: resource to select'
                                  type: string
                              required:
                              - resource
                            secretKeyRef:
                              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:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or it's
                                    key must be defined
                                  type: boolean
                              required:
                              - key
                      required:
                      - name
                    type: array
                  envFrom:
                    description: List of sources to populate environment variables
                      in the container. The keys defined within a source must be a
                      C_IDENTIFIER. All invalid keys will be reported as an event
                      when the container is starting. When a key exists in multiple
                      sources, the value associated with the last source will take
                      precedence. Values defined by an Env with a duplicate key will
                      take precedence. Cannot be updated.
                    items:
                      description: EnvFromSource represents the source of a set of
                        ConfigMaps
                      properties:
                        configMapRef:
                          description: |-
                            ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.

                            The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the ConfigMap must be defined
                              type: boolean
                        prefix:
                          description: An optional identifier to prepend to each key
                            in the ConfigMap. Must be a C_IDENTIFIER.
                          type: string
                        secretRef:
                          description: |-
                            SecretEnvSource selects a Secret to populate the environment variables with.

                            The contents of the target Secret's Data field will represent the key-value pairs as environment variables.
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret must be defined
                              type: boolean
                    type: array
                  image:
                    description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                      This field is optional to allow higher level config management
                      to default or override container images in workload controllers
                      like Deployments and StatefulSets.'
                    type: string
                  imagePullPolicy:
                    description: 'Image pull policy. One of Always, Never, IfNotPresent.
                      Defaults to Always if :latest tag is specified, or IfNotPresent
                      otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                    type: string
                  lifecycle:
                    description: Lifecycle describes actions that the management system
                      should take in response to container lifecycle events. For the
                      PostStart and PreStop lifecycle handlers, management of the
                      container blocks until the action is complete, unless the container
                      process fails, in which case the handler is aborted.
                    properties:
                      postStart:
                        description: Handler defines a specific action that should
                          be taken
                        properties:
                          exec:
                            description: ExecAction describes a "run in container"
                              action.
                            properties:
                              command:
                                description: Command is the command line to execute
                                  inside the container, the working directory for
                                  the command  is root ('/') in the container's filesystem.
                                  The command is simply exec'd, it is not run inside
                                  a shell, so traditional shell instructions ('|',
                                  etc) won't work. To use a shell, you need to explicitly
                                  call out to that shell. Exit status of 0 is treated
                                  as live/healthy and non-zero is unhealthy.
                                items:
                                  type: string
                                type: array
                          httpGet:
                            description: HTTPGetAction describes an action based on
                              HTTP Get requests.
                            properties:
                              host:
                                description: Host name to connect to, defaults to
                                  the pod IP. You probably want to set "Host" in httpHeaders
                                  instead.
                                type: string
                              httpHeaders:
                                description: Custom headers to set in the request.
                                  HTTP allows repeated headers.
                                items:
                                  description: HTTPHeader describes a custom header
                                    to be used in HTTP probes
                                  properties:
                                    name:
                                      description: The header field name
                                      type: string
                                    value:
                                      description: The header field value
                                      type: string
                                  required:
                                  - name
                                  - value
                                type: array
                              path:
                                description: Path to access on the HTTP server.
                                type: string
                              port:
                                anyOf:
                                - type: string
                                - type: integer
                              scheme:
                                description: Scheme to use for connecting to the host.