Skip to content
Snippets Groups Projects
0thanosrulerCustomResourceDefinition.yaml 377 KiB
Newer Older
                  ephemeral:
                    description: 'EphemeralVolumeSource to be used by the Prometheus
                      StatefulSets. This is a beta field in k8s 1.21, for lower versions,
                      starting with k8s 1.19, it requires enabling the GenericEphemeralVolume
                      feature gate. More info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes'
                    properties:
                      volumeClaimTemplate:
                        description: "Will be used to create a stand-alone PVC to
                          provision the volume. The pod in which this EphemeralVolumeSource
                          is embedded will be the owner of the PVC, i.e. the PVC will
                          be deleted together with the pod.  The name of the PVC will
                          be `<pod name>-<volume name>` where `<volume name>` is the
                          name from the `PodSpec.Volumes` array entry. Pod validation
                          will reject the pod if the concatenated name is not valid
                          for a PVC (for example, too long). \n An existing PVC with
                          that name that is not owned by the pod will *not* be used
                          for the pod to avoid using an unrelated volume by mistake.
                          Starting the pod is then blocked until the unrelated PVC
                          is removed. If such a pre-created PVC is meant to be used
                          by the pod, the PVC has to updated with an owner reference
                          to the pod once the pod exists. Normally this should not
                          be necessary, but it may be useful when manually reconstructing
                          a broken cluster. \n This field is read-only and no changes
                          will be made by Kubernetes to the PVC after it has been
                          created. \n Required, must not be nil."
                        properties:
                          metadata:
                            description: May contain labels and annotations that will
                              be copied into the PVC when creating it. No other fields
                              are allowed and will be rejected during validation.
                            type: object
                          spec:
                            description: The specification for the PersistentVolumeClaim.
                              The entire content is copied unchanged into the PVC
                              that gets created from this template. The same fields
                              as in a PersistentVolumeClaim are also valid here.
                            properties:
                              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'
                                items:
                                  type: string
                                type: array
                              dataSource:
                                description: 'This field can be used to specify either:
                                  * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                  * An existing PVC (PersistentVolumeClaim) 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 AnyVolumeDataSource feature gate
                                  is enabled, this field will always have the same
                                  contents as the DataSourceRef field.'
                                properties:
                                  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.
                                    type: string
                                  kind:
                                    description: Kind is the type of resource being
                                      referenced
                                    type: string
                                  name:
                                    description: Name is the name of resource being
                                      referenced
                                    type: string
                                required:
                                - kind
                                - name
                                type: object
                              dataSourceRef:
                                description: 'Specifies the object from which to populate
                                  the volume with data, if a non-empty volume is desired.
                                  This may be any local object from a non-empty API
                                  group (non core object) or a PersistentVolumeClaim
                                  object. When this field is specified, volume binding
                                  will only succeed if the type of the specified object
                                  matches some installed volume populator or dynamic
                                  provisioner. This field will replace the functionality
                                  of the DataSource field and as such if both fields
                                  are non-empty, they must have the same value. For
                                  backwards compatibility, both fields (DataSource
                                  and DataSourceRef) will be set to the same value
                                  automatically if one of them is empty and the other
                                  is non-empty. There are two important differences
                                  between DataSource and DataSourceRef: * While DataSource
                                  only allows two specific types of objects, DataSourceRef   allows
                                  any non-core object, as well as PersistentVolumeClaim
                                  objects. * While DataSource ignores disallowed values
                                  (dropping them), DataSourceRef   preserves all values,
                                  and generates an error if a disallowed value is   specified.
                                  (Alpha) Using this field requires the AnyVolumeDataSource
                                  feature gate to be enabled.'
                                properties:
                                  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.
                                    type: string
                                  kind:
                                    description: Kind is the type of resource being
                                      referenced
                                    type: string
                                  name:
                                    description: Name is the name of resource being
                                      referenced
                                    type: string
                                required:
                                - kind
                                - name
                                type: object
                              resources:
                                description: 'Resources represents the minimum resources
                                  the volume should have. If RecoverVolumeExpansionFailure
                                  feature is enabled users are allowed to specify
                                  resource requirements that are lower than previous
                                  value but must still be higher than capacity recorded
                                  in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                properties:
                                  limits:
                                    additionalProperties:
                                      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-resources-containers/'
                                    type: object
                                  requests:
                                    additionalProperties:
                                      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-resources-containers/'
                                    type: object
                                type: object
                              selector:
                                description: A label query over volumes to consider
                                  for binding.
                                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: 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
                              storageClassName:
                                description: 'Name of the StorageClass required by
                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                type: string
                              volumeMode:
                                description: volumeMode defines what type of volume
                                  is required by the claim. Value of Filesystem is
                                  implied when not included in claim spec.
                                type: string
                              volumeName:
                                description: VolumeName is the binding reference to
                                  the PersistentVolume backing this claim.
                                type: string
                            type: object
                        required:
                        - spec
                        type: object
                    type: object
paulfantom's avatar
paulfantom committed
                  volumeClaimTemplate:
                    description: A PVC spec to be used by the Prometheus StatefulSets.
                    properties:
paulfantom's avatar
paulfantom committed
                      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'
                        type: string
paulfantom's avatar
paulfantom committed
                      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'
                        type: string
paulfantom's avatar
paulfantom committed
                      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'
paulfantom's avatar
paulfantom committed
                            type: object
                          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'
paulfantom's avatar
paulfantom committed
                            type: object
                          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'
                            type: string
paulfantom's avatar
paulfantom committed
                        type: object
                      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'
paulfantom's avatar
paulfantom committed
                        properties:
                          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)
                              * An existing PVC (PersistentVolumeClaim) 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 AnyVolumeDataSource
                              feature gate is enabled, this field will always have
                              the same contents as the DataSourceRef field.'
                            properties:
                              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.
                                type: string
                              kind:
                                description: Kind is the type of resource being referenced
                                type: string
                              name:
                                description: Name is the name of resource being referenced
                                type: string
                            required:
                            - kind
                            - name
                            type: object
                          dataSourceRef:
                            description: 'Specifies the object from which to populate
                              the volume with data, if a non-empty volume is desired.
                              This may be any local object from a non-empty API group
                              (non core object) or a PersistentVolumeClaim object.
                              When this field is specified, volume binding will only
                              succeed if the type of the specified object matches
                              some installed volume populator or dynamic provisioner.
                              This field will replace the functionality of the DataSource
                              field and as such if both fields are non-empty, they
                              must have the same value. For backwards compatibility,
                              both fields (DataSource and DataSourceRef) will be set
                              to the same value automatically if one of them is empty
                              and the other is non-empty. There are two important
                              differences between DataSource and DataSourceRef: *
                              While DataSource only allows two specific types of objects,
                              DataSourceRef   allows any non-core object, as well
                              as PersistentVolumeClaim objects. * While DataSource
                              ignores disallowed values (dropping them), DataSourceRef   preserves
                              all values, and generates an error if a disallowed value
                              is   specified. (Alpha) Using this field requires the
                              AnyVolumeDataSource feature gate to be enabled.'
                            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.
                                type: string
paulfantom's avatar
paulfantom committed
                              kind:
                                description: Kind is the type of resource being referenced
                                type: string
paulfantom's avatar
paulfantom committed
                              name:
                                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. If RecoverVolumeExpansionFailure
                              feature is enabled users are allowed to specify resource
                              requirements that are lower than previous value but
                              must still be higher than capacity recorded in the status
                              field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
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-resources-containers/'
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-resources-containers/'
paulfantom's avatar
paulfantom committed
                                type: object
                            type: object
                          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'
                            type: string
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.
                            type: string
                        type: object
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
                        properties:
                          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
paulfantom's avatar
paulfantom committed
                            type: array
                          allocatedResources:
                            additionalProperties:
                              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: The storage resource within AllocatedResources
                              tracks the capacity allocated to a PVC. It may be larger
                              than the actual capacity when a volume expansion operation
                              is requested. For storage quota, the larger value from
                              allocatedResources and PVC.spec.resources is used. If
                              allocatedResources is not set, PVC.spec.resources alone
                              is used for quota calculation. If a volume expansion
                              capacity request is lowered, allocatedResources is only
                              lowered if there are no expansion operations in progress
                              and if the actual volume capacity is equal or lower
                              than the requested capacity. This is an alpha field
                              and requires enabling RecoverVolumeExpansionFailure
                              feature.
                            type: object
paulfantom's avatar
paulfantom committed
                          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
                              properties:
paulfantom's avatar
paulfantom committed
                                lastProbeTime:
                                  description: Last time we probed the condition.
                                  format: date-time
                                  type: string
paulfantom's avatar
paulfantom committed
                                lastTransitionTime:
                                  description: Last time the condition transitioned
                                    from one status to another.
paulfantom's avatar
paulfantom committed
                                  format: date-time
                                  type: string
paulfantom's avatar
paulfantom committed
                                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.
                                  type: string
paulfantom's avatar
paulfantom committed
                                status:
                                  type: string
paulfantom's avatar
paulfantom committed
                                type:
                                  description: PersistentVolumeClaimConditionType
                                    is a valid value of PersistentVolumeClaimCondition.Type
                                  type: string
                              required:
paulfantom's avatar
paulfantom committed
                              - status
                              - type
                              type: object
paulfantom's avatar
paulfantom committed
                            type: array
                          phase:
                            description: Phase represents the current phase of PersistentVolumeClaim.
                            type: string
                          resizeStatus:
                            description: ResizeStatus stores status of resize operation.
                              ResizeStatus is not set by default but when expansion
                              is complete resizeStatus is set to empty string by resize
                              controller or kubelet. This is an alpha field and requires
                              enabling RecoverVolumeExpansionFailure feature.
                            type: string
paulfantom's avatar
paulfantom committed
                        type: object
                    type: object
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
                  properties:
                    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
                      type: string
                    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
                      type: string
                    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: string
                  type: object
                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. When `whenUnsatisfiable=DoNotSchedule`,
                        it is the maximum permitted difference between the number
                        of matching pods in the target topology and the global minimum.
                        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. When `whenUnsatisfiable=ScheduleAnyway`,
                        it is used to give higher precedence to topologies that satisfy
                        it. 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 schedule the pod in any location,   but
                        giving higher precedence to topologies that would help reduce
                        the   skew. A constraint is considered "Unsatisfiable" for
                        an incoming pod if and only if every possible node assignment
                        for that pod would violate "MaxSkew" on some topology. 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
              tracingConfig:
                description: TracingConfig configures tracing in Thanos. This is an
                  experimental feature, it may change in any upcoming release in a
                  breaking way.
paulfantom's avatar
paulfantom committed
                properties:
                  key:
                    description: The key of the secret to select from.  Must be a
                      valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                    type: string
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
                required:
                - key
                type: object
              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'
                          type: string
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'
                          type: string
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
paulfantom's avatar
paulfantom committed
                        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
                      type: object
                    cephfs:
                      description: CephFS represents a Ceph FS mount on the host that
                        shares a pod's lifetime
paulfantom's avatar
paulfantom committed
                      properties:
                        monitors:
                          description: 'Required: Monitors is a collection of Ceph
                            monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
paulfantom's avatar
paulfantom committed
                          type: array
                        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'
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
                          type: object
                        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.'
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
                          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 used to set permissions
                            on created files by default. Must be an octal value between
                            0000 and 0777 or a decimal value between 0 and 511. YAML
                            accepts both octal and decimal values, JSON requires decimal
                            values for mode bits. 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
                              mode:
                                description: 'Optional: mode bits used to set permissions
                                  on this file. Must be an octal value between 0000
                                  and 0777 or a decimal value between 0 and 511. YAML
                                  accepts both octal and decimal values, JSON requires
                                  decimal values for mode bits. 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 '..'.
paulfantom's avatar
paulfantom committed
                                type: string
                            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 ephemeral
                        storage that is handled by certain external CSI drivers (Beta
                        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
                          type: object
                        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:
                      - driver
                      type: object
                    downwardAPI:
                      description: DownwardAPI represents downward API about the pod
                        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 Optional: mode bits used to set
                            permissions on created files by default. Must be an octal
                            value between 0000 and 0777 or a decimal value between
                            0 and 511. YAML accepts both octal and decimal values,
                            JSON requires decimal values for mode bits. 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
paulfantom's avatar
paulfantom committed
                          description: Items is a list of downward API volume file
                          items:
                            description: DownwardAPIVolumeFile represents information
                              to create the file containing the pod field
paulfantom's avatar
paulfantom committed
                            properties:
                              fieldRef:
                                description: 'Required: Selects a field of the pod:
                                  only annotations, labels, name and namespace are
                                  supported.'
paulfantom's avatar
paulfantom committed
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath
                                      is written in terms of, defaults to "v1".
paulfantom's avatar
paulfantom committed
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the
                                      specified API version.
paulfantom's avatar
paulfantom committed
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              mode:
                                description: 'Optional: mode bits used to set permissions
                                  on this file, must be an octal value between 0000
                                  and 0777 or a decimal value between 0 and 511. YAML
                                  accepts both octal and decimal values, JSON requires
                                  decimal values for mode bits. 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.'