Skip to content
Snippets Groups Projects
prometheus-operator-0prometheusCustomResourceDefinition.yaml 412 KiB
Newer Older
                          and the sum of memory limits of all containers in a pod.
                          The default is nil which means that the limit is undefined.
                          More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
Lili Cosic's avatar
Lili Cosic committed
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
paulfantom's avatar
paulfantom committed
                    type: object
                  volumeClaimTemplate:
                    description: A PVC spec to be used by the Prometheus StatefulSets.
                    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:
                        description: EmbeddedMetadata contains metadata relevant to
                          an EmbeddedResource.
paulfantom's avatar
paulfantom committed
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            description: 'Annotations is an unstructured key value
                              map stored with a resource that may be set by external
                              tools to store and retrieve arbitrary metadata. They
                              are not queryable and should be preserved when modifying
                              objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                            type: object
paulfantom's avatar
paulfantom committed
                          labels:
                            additionalProperties:
                              type: string
                            description: 'Map of string keys and values that can be
                              used to organize and categorize (scope and select) objects.
                              May match selectors of replication controllers and services.
                              More info: http://kubernetes.io/docs/user-guide/labels'
                            type: object
paulfantom's avatar
paulfantom committed
                          name:
                            description: 'Name must be unique within a namespace.
                              Is required when creating resources, although some resources
                              may allow a client to request the generation of an appropriate
                              name automatically. Name is primarily intended for creation
                              idempotence and configuration definition. Cannot be
                              updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
paulfantom's avatar
paulfantom committed
                            type: string
                        type: object
paulfantom's avatar
paulfantom committed
                      spec:
                        description: 'Spec defines the desired characteristics of
                          a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                        properties:
paulfantom's avatar
paulfantom committed
                          accessModes:
                            description: 'AccessModes contains the desired access
                              modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
paulfantom's avatar
paulfantom committed
                            items:
                              type: string
                            type: array
                          dataSource:
                            description: 'This field can be used to specify either:
                              * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot
                              - Beta) * An existing PVC (PersistentVolumeClaim) *
                              An existing custom resource/object that implements data
                              population (Alpha) In order to use VolumeSnapshot object
                              types, the appropriate feature gate must be enabled
                              (VolumeSnapshotDataSource or AnyVolumeDataSource) If
                              the provisioner or an external controller can support
                              the specified data source, it will create a new volume
                              based on the contents of the specified data source.
                              If the specified data source is not supported, the volume
                              will not be created and the failure will be reported
                              as an event. In the future, we plan to support more
                              data source types and the behavior of the provisioner
                              may change.'
                            properties:
paulfantom's avatar
paulfantom committed
                              apiGroup:
                                description: APIGroup is the group for the resource
                                  being referenced. If APIGroup is not specified,
                                  the specified Kind must be in the core API group.
                                  For any other third-party types, APIGroup is required.
paulfantom's avatar
paulfantom committed
                                type: string
                              kind:
                                description: Kind is the type of resource being referenced
                                type: string
                              name:
paulfantom's avatar
paulfantom committed
                                description: Name is the name of resource being referenced
                                type: string
                            required:
paulfantom's avatar
paulfantom committed
                            - kind
                            - name
                            type: object
paulfantom's avatar
paulfantom committed
                          resources:
                            description: 'Resources represents the minimum resources
                              the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                            properties:
paulfantom's avatar
paulfantom committed
                              limits:
                                additionalProperties:
Lili Cosic's avatar
Lili Cosic committed
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount
                                  of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
paulfantom's avatar
paulfantom committed
                                type: object
                              requests:
                                additionalProperties:
Lili Cosic's avatar
Lili Cosic committed
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount
                                  of compute resources required. If Requests is omitted
                                  for a container, it defaults to Limits if that is
                                  explicitly specified, otherwise to an implementation-defined
                                  value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
paulfantom's avatar
paulfantom committed
                                type: object
                            type: object
paulfantom's avatar
paulfantom committed
                          selector:
                            description: A label query over volumes to consider for
                              binding.
paulfantom's avatar
paulfantom committed
                            properties:
                              matchExpressions:
                                description: matchExpressions is a list of label selector
                                  requirements. The requirements are ANDed.
paulfantom's avatar
paulfantom committed
                                items:
                                  description: A label selector requirement is a selector
                                    that contains values, a key, and an operator that
                                    relates the key and values.
paulfantom's avatar
paulfantom committed
                                  properties:
                                    key:
                                      description: key is the label key that the selector
                                        applies to.
paulfantom's avatar
paulfantom committed
                                      type: string
                                    operator:
                                      description: operator represents a key's relationship
                                        to a set of values. Valid operators are In,
                                        NotIn, Exists and DoesNotExist.
paulfantom's avatar
paulfantom committed
                                      type: string
                                    values:
                                      description: values is an array of string values.
                                        If the operator is In or NotIn, the values
                                        array must be non-empty. If the operator is
                                        Exists or DoesNotExist, the values array must
                                        be empty. This array is replaced during a
                                        strategic merge patch.
paulfantom's avatar
paulfantom committed
                                      items:
                                        type: string
                                      type: array
                                  required:
                                  - key
                                  - operator
                                  type: object
                                type: array
                              matchLabels:
                                additionalProperties:
                                  type: string
                                description: matchLabels is a map of {key,value} pairs.
                                  A single {key,value} in the matchLabels map is equivalent
                                  to an element of matchExpressions, whose key field
                                  is "key", the operator is "In", and the values array
                                  contains only "value". The requirements are ANDed.
paulfantom's avatar
paulfantom committed
                                type: object
                            type: object
                          storageClassName:
                            description: 'Name of the StorageClass required by the
                              claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
paulfantom's avatar
paulfantom committed
                          volumeMode:
                            description: volumeMode defines what type of volume is
                              required by the claim. Value of Filesystem is implied
                              when not included in claim spec.
paulfantom's avatar
paulfantom committed
                            type: string
                          volumeName:
                            description: VolumeName is the binding reference to the
                              PersistentVolume backing this claim.
paulfantom's avatar
paulfantom committed
                      status:
                        description: 'Status represents the current information/status
                          of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
paulfantom's avatar
paulfantom committed
                          accessModes:
                            description: 'AccessModes contains the actual access modes
                              the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
paulfantom's avatar
paulfantom committed
                            items:
                              type: string
                            type: array
                          capacity:
                            additionalProperties:
Lili Cosic's avatar
Lili Cosic committed
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: Represents the actual resources of the underlying
                              volume.
paulfantom's avatar
paulfantom committed
                            type: object
                          conditions:
                            description: Current Condition of persistent volume claim.
                              If underlying persistent volume is being resized then
                              the Condition will be set to 'ResizeStarted'.
paulfantom's avatar
paulfantom committed
                            items:
                              description: PersistentVolumeClaimCondition contails
                                details about state of pvc
paulfantom's avatar
paulfantom committed
                              properties:
                                lastProbeTime:
                                  description: Last time we probed the condition.
                                  format: date-time
                                  type: string
                                lastTransitionTime:
                                  description: Last time the condition transitioned
                                    from one status to another.
paulfantom's avatar
paulfantom committed
                                  format: date-time
                                  type: string
                                message:
                                  description: Human-readable message indicating details
                                    about last transition.
paulfantom's avatar
paulfantom committed
                                  type: string
                                reason:
                                  description: Unique, this should be a short, machine
                                    understandable string that gives the reason for
                                    condition's last transition. If it reports "ResizeStarted"
                                    that means the underlying persistent volume is
                                    being resized.
paulfantom's avatar
paulfantom committed
                                  type: string
                                status:
                                  type: string
                                type:
                                  description: PersistentVolumeClaimConditionType
                                    is a valid value of PersistentVolumeClaimCondition.Type
paulfantom's avatar
paulfantom committed
                                  type: string
                              required:
                              - status
                              - type
                              type: object
                            type: array
                          phase:
                            description: Phase represents the current phase of PersistentVolumeClaim.
                        type: object
                    type: object
paulfantom's avatar
paulfantom committed
                type: object
              tag:
                description: 'Tag of Prometheus container image to be deployed. Defaults
                  to the value of `version`. Version is ignored if Tag is set. Deprecated:
                  use ''image'' instead.  The image tag can be specified as part of
                  the image URL.'
paulfantom's avatar
paulfantom committed
                type: string
              thanos:
                description: "Thanos configuration allows configuring various aspects
                  of a Prometheus server in a Thanos environment. \n This section
                  is experimental, it may change significantly without deprecation
                  notice in any release. \n This is experimental and may change significantly
                  without backward compatibility in any release."
paulfantom's avatar
paulfantom committed
                properties:
                  baseImage:
                    description: 'Thanos base image if other than default. Deprecated:
                      use ''image'' instead'
paulfantom's avatar
paulfantom committed
                  grpcServerTlsConfig:
                    description: 'GRPCServerTLSConfig configures the gRPC server from
                      which Thanos Querier reads recorded rule data. Note: Currently
                      only the CAFile, CertFile, and KeyFile fields are supported.
                      Maps to the ''--grpc-server-tls-*'' CLI args.'
                        description: Struct containing the CA cert to use for the
                          targets.
                        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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                type: string
                              optional:
                                description: Specify whether the ConfigMap or its
                                  key must be defined
                                type: boolean
                            required:
                            - key
                            type: object
                          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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                type: string
                              optional:
                                description: Specify whether the Secret or its key
                                  must be defined
                                type: boolean
                            required:
                            - key
                            type: object
                        type: object
                        description: Path to the CA cert in the Prometheus container
                          to use for the targets.
                        description: Struct containing the client cert file for the
                          targets.
                        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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                type: string
                              optional:
                                description: Specify whether the ConfigMap or its
                                  key must be defined
                                type: boolean
                            required:
                            - key
                            type: object
                          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. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                type: string
                              optional:
                                description: Specify whether the Secret or its key
                                  must be defined
                                type: boolean
                            required:
                            - key
                            type: object
                        type: object
                        description: Path to the client cert file in the Prometheus
                          container for the targets.
                        type: string
                      insecureSkipVerify:
                        description: Disable target certificate validation.
                        type: boolean
                      keyFile:
                        description: Path to the client key file in the Prometheus
                          container for the targets.
Sergiusz Urbaniak's avatar
Sergiusz Urbaniak committed
                      keySecret:
                        description: Secret containing the client key file for the
                          targets.
Sergiusz Urbaniak's avatar
Sergiusz Urbaniak committed
                        properties:
                          key:
                            description: The key of the secret to select from.  Must
                              be a valid secret key.
Sergiusz Urbaniak's avatar
Sergiusz Urbaniak committed
                            type: string
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
Sergiusz Urbaniak's avatar
Sergiusz Urbaniak committed
                            type: string
                          optional:
                            description: Specify whether the Secret or its key must
                              be defined
Sergiusz Urbaniak's avatar
Sergiusz Urbaniak committed
                            type: boolean
                        required:
                        - key
                        type: object
                      serverName:
                        description: Used to verify the hostname for the targets.
                        type: string
paulfantom's avatar
paulfantom committed
                  image:
                    description: Image if specified has precedence over baseImage,
                      tag and sha combinations. Specifying the version is still necessary
                      to ensure the Prometheus Operator knows what version of Thanos
                      is being configured.
paulfantom's avatar
paulfantom committed
                  listenLocal:
                    description: ListenLocal makes the Thanos sidecar listen on loopback,
                      so that it does not bind against the Pod IP.
paulfantom's avatar
paulfantom committed
                    type: boolean
                  logFormat:
                    description: LogFormat for Thanos sidecar to be configured with.
                    type: string
paulfantom's avatar
paulfantom committed
                  logLevel:
                    description: LogLevel for Thanos sidecar to be configured with.
                    type: string
                  minTime:
                    description: MinTime for Thanos sidecar to be configured with.
                      Option can be a constant time in RFC3339 format or time duration
                      relative to current time, such as -1d or 2h45m. Valid duration
                      units are ms, s, m, h, d, w, y.
                    type: string
paulfantom's avatar
paulfantom committed
                  objectStorageConfig:
                    description: ObjectStorageConfig configures object storage in
                      Thanos. Alternative to ObjectStorageConfigFile, and lower order
                      priority.
                        description: The key of the secret to select from.  Must be
                          a valid secret key.
paulfantom's avatar
paulfantom committed
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                      optional:
                        description: Specify whether the Secret or its key must be
                          defined
paulfantom's avatar
paulfantom committed
                        type: boolean
Lili Cosic's avatar
Lili Cosic committed
                  objectStorageConfigFile:
                    description: ObjectStorageConfigFile specifies the path of the
                      object storage configuration file. When used alongside with
                      ObjectStorageConfig, ObjectStorageConfigFile takes precedence.
Lili Cosic's avatar
Lili Cosic committed
                    type: string
                  readyTimeout:
                    description: ReadyTimeout is the maximum time Thanos sidecar will
                      wait for Prometheus to start. Eg 10m
                    type: string
paulfantom's avatar
paulfantom committed
                  resources:
                    description: Resources defines the resource requirements for the
                      Thanos sidecar. If not provided, no requests/limits will be
                      set
paulfantom's avatar
paulfantom committed
                    properties:
                      limits:
                        additionalProperties:
Lili Cosic's avatar
Lili Cosic committed
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
paulfantom's avatar
paulfantom committed
                        type: object
                      requests:
                        additionalProperties:
Lili Cosic's avatar
Lili Cosic committed
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
paulfantom's avatar
paulfantom committed
                        type: object
                    type: object
                  sha:
                    description: 'SHA of Thanos container image to be deployed. Defaults
                      to the value of `version`. Similar to a tag, but the SHA explicitly
                      deploys an immutable container image. Version and Tag are ignored
                      if SHA is set. Deprecated: use ''image'' instead.  The image
                      digest can be specified as part of the image URL.'
                    type: string
paulfantom's avatar
paulfantom committed
                  tag:
                    description: 'Tag of Thanos sidecar container image to be deployed.
                      Defaults to the value of `version`. Version is ignored if Tag
                      is set. Deprecated: use ''image'' instead.  The image tag can
                      be specified as part of the image URL.'
paulfantom's avatar
paulfantom committed
                    type: string
                  tracingConfig:
                    description: TracingConfig configures tracing in Thanos. This
                      is an experimental feature, it may change in any upcoming release
                      in a breaking way.
                        description: The key of the secret to select from.  Must be
                          a valid secret key.
paulfantom's avatar
paulfantom committed
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                      optional:
                        description: Specify whether the Secret or its key must be
                          defined
paulfantom's avatar
paulfantom committed
                        type: boolean
paulfantom's avatar
paulfantom committed
                  tracingConfigFile:
                    description: TracingConfig specifies the path of the tracing configuration
                      file. When used alongside with TracingConfig, TracingConfigFile
                      takes precedence.
paulfantom's avatar
paulfantom committed
                    type: string
paulfantom's avatar
paulfantom committed
                  version:
                    description: Version describes the version of Thanos to use.
                    type: string
                  volumeMounts:
                    description: VolumeMounts allows configuration of additional VolumeMounts
                      on the output StatefulSet definition. VolumeMounts specified
                      will be appended to other VolumeMounts in the thanos-sidecar
                      container.
                      description: VolumeMount describes a mounting of a Volume within
                        a container.
                      properties:
                        mountPath:
                          description: Path within the container at which the volume
                            should be mounted.  Must not contain ':'.
                          type: string
                        mountPropagation:
                          description: mountPropagation determines how mounts are
                            propagated from the host to container and the other way
                            around. When not set, MountPropagationNone is used. This
                            field is beta in 1.10.
                          type: string
                        name:
                          description: This must match the Name of a Volume.
                          type: string
                        readOnly:
                          description: Mounted read-only if true, read-write otherwise
                            (false or unspecified). Defaults to false.
                          type: boolean
                        subPath:
                          description: Path within the volume from which the container's
                            volume should be mounted. Defaults to "" (volume's root).
                          type: string
                        subPathExpr:
                          description: Expanded path within the volume from which
                            the container's volume should be mounted. Behaves similarly
                            to SubPath but environment variable references $(VAR_NAME)
                            are expanded using the container's environment. Defaults
                            to "" (volume's root). SubPathExpr and SubPath are mutually
                            exclusive.
                          type: string
                      required:
                      - mountPath
                      - name
                      type: object
                    type: array
paulfantom's avatar
paulfantom committed
                type: object
              tolerations:
                description: If specified, the pod's tolerations.
                items:
                  description: The pod this Toleration is attached to tolerates any
                    taint that matches the triple <key,value,effect> using the matching
                    operator <operator>.
paulfantom's avatar
paulfantom committed
                    effect:
                      description: Effect indicates the taint effect to match. Empty
                        means match all taint effects. When specified, allowed values
                        are NoSchedule, PreferNoSchedule and NoExecute.
paulfantom's avatar
paulfantom committed
                      type: string
                    key:
                      description: Key is the taint key that the toleration applies
                        to. Empty means match all taint keys. If the key is empty,
                        operator must be Exists; this combination means to match all
                        values and all keys.
paulfantom's avatar
paulfantom committed
                    operator:
                      description: Operator represents a key's relationship to the
                        value. Valid operators are Exists and Equal. Defaults to Equal.
                        Exists is equivalent to wildcard for value, so that a pod
                        can tolerate all taints of a particular category.
paulfantom's avatar
paulfantom committed
                    tolerationSeconds:
                      description: TolerationSeconds represents the period of time
                        the toleration (which must be of effect NoExecute, otherwise
                        this field is ignored) tolerates the taint. By default, it
                        is not set, which means tolerate the taint forever (do not
                        evict). Zero and negative values will be treated as 0 (evict
                        immediately) by the system.
paulfantom's avatar
paulfantom committed
                      format: int64
                      type: integer
                    value:
                      description: Value is the taint value the toleration matches
                        to. If the operator is Exists, the value should be empty,
                        otherwise just a regular string.
paulfantom's avatar
paulfantom committed
                type: array
              topologySpreadConstraints:
                description: If specified, the pod's topology spread constraints.
                items:
                  description: TopologySpreadConstraint specifies how to spread matching
                    pods among the given topology.
                  properties:
                    labelSelector:
                      description: LabelSelector is used to find matching pods. Pods
                        that match this label selector are counted to determine the
                        number of pods in their corresponding topology domain.
                      properties:
                        matchExpressions:
                          description: matchExpressions is a list of label selector
                            requirements. The requirements are ANDed.
                            description: A label selector requirement is a selector
                              that contains values, a key, and an operator that relates
                              the key and values.
                                description: key is the label key that the selector
                                  applies to.
                                type: string
                              operator:
                                description: operator represents a key's relationship
                                  to a set of values. Valid operators are In, NotIn,
                                  Exists and DoesNotExist.
                                type: string
                              values:
                                description: values is an array of string values.
                                  If the operator is In or NotIn, the values array
                                  must be non-empty. If the operator is Exists or
                                  DoesNotExist, the values array must be empty. This
                                  array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                        matchLabels:
                          additionalProperties:
                            type: string
                          description: matchLabels is a map of {key,value} pairs.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                    maxSkew:
                      description: 'MaxSkew describes the degree to which pods may
                        be unevenly distributed. It''s the maximum permitted difference
                        between the number of matching pods in any two topology domains
                        of a given topology type. For example, in a 3-zone cluster,
                        MaxSkew is set to 1, and pods with the same labelSelector
                        spread as 1/1/0: | zone1 | zone2 | zone3 | |   P   |   P   |       |
                        - if MaxSkew is 1, incoming pod can only be scheduled to zone3
                        to become 1/1/1; scheduling it onto zone1(zone2) would make
                        the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). -
                        if MaxSkew is 2, incoming pod can be scheduled onto any zone.
                        It''s a required field. Default value is 1 and 0 is not allowed.'
                      format: int32
                      type: integer
                    topologyKey:
                      description: TopologyKey is the key of node labels. Nodes that
                        have a label with this key and identical values are considered
                        to be in the same topology. We consider each <key, value>
                        as a "bucket", and try to put balanced number of pods into
                        each bucket. It's a required field.
                      type: string
                    whenUnsatisfiable:
                      description: 'WhenUnsatisfiable indicates how to deal with a
                        pod if it doesn''t satisfy the spread constraint. - DoNotSchedule
                        (default) tells the scheduler not to schedule it - ScheduleAnyway
                        tells the scheduler to still schedule it It''s considered
                        as "Unsatisfiable" if and only if placing incoming pod on
                        any topology violates "MaxSkew". For example, in a 3-zone
                        cluster, MaxSkew is set to 1, and pods with the same labelSelector
                        spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   |
                        If WhenUnsatisfiable is set to DoNotSchedule, incoming pod
                        can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2)
                        as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In
                        other words, the cluster can still be imbalanced, but scheduler
                        won''t make it *more* imbalanced. It''s a required field.'
                      type: string
                  required:
                  - maxSkew
                  - topologyKey
                  - whenUnsatisfiable
                  type: object
                type: array
paulfantom's avatar
paulfantom committed
              version:
                description: Version of Prometheus to be deployed.
paulfantom's avatar
paulfantom committed
              volumeMounts:
                description: VolumeMounts allows configuration of additional VolumeMounts
                  on the output StatefulSet definition. VolumeMounts specified will
                  be appended to other VolumeMounts in the prometheus container, that
                  are generated as a result of StorageSpec objects.
paulfantom's avatar
paulfantom committed
                items:
                  description: VolumeMount describes a mounting of a Volume within
                    a container.
paulfantom's avatar
paulfantom committed
                    mountPath:
                      description: Path within the container at which the volume should
                        be mounted.  Must not contain ':'.
paulfantom's avatar
paulfantom committed
                    mountPropagation:
                      description: mountPropagation determines how mounts are propagated
                        from the host to container and the other way around. When
                        not set, MountPropagationNone is used. This field is beta
                        in 1.10.
paulfantom's avatar
paulfantom committed
                    name:
                      description: This must match the Name of a Volume.
Lili Cosic's avatar
Lili Cosic committed
                      type: string
paulfantom's avatar
paulfantom committed
                    readOnly:
                      description: Mounted read-only if true, read-write otherwise
                        (false or unspecified). Defaults to false.
paulfantom's avatar
paulfantom committed
                      type: boolean
                    subPath:
                      description: Path within the volume from which the container's
                        volume should be mounted. Defaults to "" (volume's root).
Lili Cosic's avatar
Lili Cosic committed
                      type: string
paulfantom's avatar
paulfantom committed
                    subPathExpr:
                      description: Expanded path within the volume from which the
                        container's volume should be mounted. Behaves similarly to
                        SubPath but environment variable references $(VAR_NAME) are
                        expanded using the container's environment. Defaults to ""
                        (volume's root). SubPathExpr and SubPath are mutually exclusive.
Sergiusz Urbaniak's avatar
Sergiusz Urbaniak committed
                      type: string
paulfantom's avatar
paulfantom committed
                  required:
                  - mountPath
                  - name
Lili Cosic's avatar
Lili Cosic committed
                  type: object
paulfantom's avatar
paulfantom committed
                type: array
              volumes:
                description: Volumes allows configuration of additional volumes on
                  the output StatefulSet definition. Volumes specified will be appended
                  to other volumes that are generated as a result of StorageSpec objects.
paulfantom's avatar
paulfantom committed
                items:
                  description: Volume represents a named volume in a pod that may
                    be accessed by any container in the pod.
paulfantom's avatar
paulfantom committed
                  properties:
                    awsElasticBlockStore:
                      description: 'AWSElasticBlockStore represents an AWS Disk resource
                        that is attached to a kubelet''s host machine and then exposed
                        to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'Filesystem type of the volume that you want
                            to mount. Tip: Ensure that the filesystem type is supported
                            by the host operating system. Examples: "ext4", "xfs",
                            "ntfs". Implicitly inferred to be "ext4" if unspecified.
                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                            TODO: how do we prevent errors in the filesystem from
                            compromising the machine'
paulfantom's avatar
paulfantom committed
                        partition:
                          description: 'The partition in the volume that you want
                            to mount. If omitted, the default is to mount by volume
                            name. Examples: For volume /dev/sda1, you specify the
                            partition as "1". Similarly, the volume partition for
                            /dev/sda is "0" (or you can leave the property empty).'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        readOnly:
                          description: 'Specify "true" to force and set the ReadOnly
                            property in VolumeMounts to "true". If omitted, the default
                            is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        volumeID:
                          description: 'Unique ID of the persistent disk resource
                            in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
paulfantom's avatar
paulfantom committed
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      description: AzureDisk represents an Azure Data Disk mount on
                        the host and bind mount to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        cachingMode:
                          description: 'Host Caching mode: None, Read Only, Read Write.'
                          type: string
                        diskName:
                          description: The Name of the data disk in the blob storage
                          type: string
                        diskURI:
                          description: The URI the data disk in the blob storage
                          type: string
                        fsType:
                          description: Filesystem type to mount. Must be a filesystem
                            type supported by the host operating system. Ex. "ext4",
                            "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
paulfantom's avatar
paulfantom committed
                          type: string
                        kind:
                          description: 'Expected values Shared: multiple blob disks
                            per storage account  Dedicated: single blob disk per storage
                            account  Managed: azure managed data disk (only in managed
                            availability set). defaults to shared'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: Defaults to false (read/write). ReadOnly here
                            will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      description: AzureFile represents an Azure File Service mount
                        on the host and bind mount to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        readOnly:
                          description: Defaults to false (read/write). ReadOnly here
                            will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretName:
                          description: the name of secret that contains Azure Storage
                            Account Name and Key
paulfantom's avatar
paulfantom committed
                          type: string
                        shareName:
                          description: Share Name
                          type: string
                      required:
                      - secretName
                      - shareName
Lili Cosic's avatar
Lili Cosic committed
                      type: object
paulfantom's avatar
paulfantom committed
                    cephfs:
                      description: CephFS represents a Ceph FS mount on the host that
                        shares a pod's lifetime
Lili Cosic's avatar
Lili Cosic committed
                      properties:
paulfantom's avatar
paulfantom committed
                        monitors:
                          description: 'Required: Monitors is a collection of Ceph
                            monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
Lili Cosic's avatar
Lili Cosic committed
                          items:
                            type: string
                          type: array
paulfantom's avatar
paulfantom committed
                        path:
                          description: 'Optional: Used as the mounted root, rather
                            than the full Ceph tree, default is /'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'Optional: Defaults to false (read/write).
                            ReadOnly here will force the ReadOnly setting in VolumeMounts.
                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretFile:
                          description: 'Optional: SecretFile is the path to key ring
                            for User, default is /etc/ceph/user.secret More info:
                            https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                        secretRef:
                          description: 'Optional: SecretRef is reference to the authentication
                            secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
Lili Cosic's avatar
Lili Cosic committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                TODO: Add other useful fields. apiVersion, kind, uid?'
Lili Cosic's avatar
Lili Cosic committed
                              type: string
                          type: object
paulfantom's avatar
paulfantom committed
                        user:
                          description: 'Optional: User is the rados user name, default
                            is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      description: 'Cinder represents a cinder volume attached and
                        mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'Filesystem type to mount. Must be a filesystem
                            type supported by the host operating system. Examples:
                            "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
                            if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'Optional: Defaults to false (read/write).
                            ReadOnly here will force the ReadOnly setting in VolumeMounts.
                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
                          description: 'Optional: points to a secret object containing
                            parameters used to connect to OpenStack.'
Lili Cosic's avatar
Lili Cosic committed
                          properties:
paulfantom's avatar
paulfantom committed
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                        volumeID:
                          description: 'volume id used to identify the volume in cinder.
                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      description: ConfigMap represents a configMap that should populate
                        this volume
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
                          description: 'Optional: mode bits to use on created files
                            by default. Must be a value between 0 and 0777. Defaults
                            to 0644. Directories within the path are not affected
                            by this setting. This might be in conflict with other
                            options that affect the file mode, like fsGroup, and the
                            result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        items:
                          description: If unspecified, each key-value pair in the
                            Data field of the referenced ConfigMap will be projected
                            into the volume as a file whose name is the key and content
                            is the value. If specified, the listed keys will be projected
                            into the specified paths, and unlisted keys will not be
                            present. If a key is specified which is not present in
                            the ConfigMap, the volume setup will error unless it is
                            marked optional. Paths must be relative and may not contain
                            the '..' path or start with '..'.
paulfantom's avatar
paulfantom committed
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: The key to project.
                                type: string
paulfantom's avatar
paulfantom committed
                              mode:
                                description: 'Optional: mode bits to use on this file,
                                  must be a value between 0 and 0777. If not specified,
                                  the volume defaultMode will be used. This might
                                  be in conflict with other options that affect the
                                  file mode, like fsGroup, and the result can be other
                                  mode bits set.'
paulfantom's avatar
paulfantom committed
                                format: int32
                                type: integer
                              path:
                                description: The relative path of the file to map
                                  the key to. May not be an absolute path. May not
                                  contain the path element '..'. May not start with
                                  the string '..'.
                                type: string
paulfantom's avatar
paulfantom committed
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        name:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                            TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                          type: string
                        optional:
                          description: Specify whether the ConfigMap or its keys must
                            be defined
paulfantom's avatar
paulfantom committed
                          type: boolean
                      type: object
                    csi:
                      description: CSI (Container Storage Interface) represents storage
                        that is handled by an external CSI driver (Alpha feature).
paulfantom's avatar
paulfantom committed
                      properties:
                        driver:
                          description: Driver is the name of the CSI driver that handles
                            this volume. Consult with your admin for the correct name
                            as registered in the cluster.
paulfantom's avatar
paulfantom committed
                          type: string
                        fsType:
                          description: Filesystem type to mount. Ex. "ext4", "xfs",
                            "ntfs". If not provided, the empty value is passed to
                            the associated CSI driver which will determine the default
                            filesystem to apply.
paulfantom's avatar
paulfantom committed
                          type: string
                        nodePublishSecretRef:
                          description: NodePublishSecretRef is a reference to the
                            secret object containing sensitive information to pass
                            to the CSI driver to complete the CSI NodePublishVolume
                            and NodeUnpublishVolume calls. This field is optional,
                            and  may be empty if no secret is required. If the secret
                            object contains more than one secret, all secret references
                            are passed.
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
Lili Cosic's avatar
Lili Cosic committed
                          type: object
paulfantom's avatar
paulfantom committed
                        readOnly:
                          description: Specifies a read-only configuration for the
                            volume. Defaults to false (read/write).
paulfantom's avatar
paulfantom committed
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          description: VolumeAttributes stores driver-specific properties
                            that are passed to the CSI driver. Consult your driver's
                            documentation for supported values.
paulfantom's avatar
paulfantom committed
                          type: object
                      required: