Skip to content
Snippets Groups Projects
prometheus-operator-0thanosrulerCustomResourceDefinition.yaml 248 KiB
Newer Older
Jesse Bye's avatar
Jesse Bye committed
                description: PodMetadata contains Labels and Annotations gets propagated to the thanos ruler pods.
paulfantom's avatar
paulfantom committed
                properties:
                  annotations:
                    additionalProperties:
                      type: string
Jesse Bye's avatar
Jesse Bye committed
                    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
Jesse Bye's avatar
Jesse Bye committed
                    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:
Jesse Bye's avatar
Jesse Bye committed
                    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
              portName:
Jesse Bye's avatar
Jesse Bye committed
                description: Port name used for the pods and governing service. This defaults to web
paulfantom's avatar
paulfantom committed
                type: string
              priorityClassName:
                description: Priority class assigned to the Pods
                type: string
              prometheusRulesExcludedFromEnforce:
Jesse Bye's avatar
Jesse Bye committed
                description: PrometheusRulesExcludedFromEnforce - list of Prometheus rules to be excluded from enforcing of adding namespace labels. Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
Jesse Bye's avatar
Jesse Bye committed
                  description: PrometheusRuleExcludeConfig enables users to configure excluded PrometheusRule names and their namespaces to be ignored while enforcing namespace label for alerts and metrics.
                  properties:
                    ruleName:
                      description: RuleNamespace - name of excluded rule
                      type: string
                    ruleNamespace:
                      description: RuleNamespace - namespace of excluded rule
                      type: string
                  required:
                  - ruleName
                  - ruleNamespace
                  type: object
                type: array
paulfantom's avatar
paulfantom committed
              queryConfig:
Jesse Bye's avatar
Jesse Bye committed
                description: Define configuration for connecting to thanos query instances. If this is defined, the QueryEndpoints field will be ignored. Maps to the `query.config` CLI argument. Only available with thanos v0.11.0 and higher.
paulfantom's avatar
paulfantom committed
                properties:
                  key:
Jesse Bye's avatar
Jesse Bye committed
                    description: The key of the secret to select from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
Jesse Bye's avatar
Jesse Bye committed
                    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
paulfantom's avatar
paulfantom committed
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
paulfantom's avatar
paulfantom committed
                required:
                - key
                type: object
              queryEndpoints:
Jesse Bye's avatar
Jesse Bye committed
                description: QueryEndpoints defines Thanos querier endpoints from which to query metrics. Maps to the --query flag of thanos ruler.
paulfantom's avatar
paulfantom committed
                items:
                  type: string
                type: array
              replicas:
                description: Number of thanos ruler instances to deploy.
                format: int32
                type: integer
              resources:
Jesse Bye's avatar
Jesse Bye committed
                description: Resources defines the resource requirements for single Pods. 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
Jesse Bye's avatar
Jesse Bye committed
                    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
Jesse Bye's avatar
Jesse Bye committed
                    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
              retention:
Jesse Bye's avatar
Jesse Bye committed
                description: Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).
paulfantom's avatar
paulfantom committed
                type: string
              routePrefix:
Jesse Bye's avatar
Jesse Bye committed
                description: The route prefix ThanosRuler registers HTTP handlers for. This allows thanos UI to be served on a sub-path.
paulfantom's avatar
paulfantom committed
                type: string
              ruleNamespaceSelector:
Jesse Bye's avatar
Jesse Bye committed
                description: Namespaces to be selected for Rules discovery. If unspecified, only the same namespace as the ThanosRuler object is in is used.
paulfantom's avatar
paulfantom committed
                properties:
                  matchExpressions:
Jesse Bye's avatar
Jesse Bye committed
                    description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
Jesse Bye's avatar
Jesse Bye committed
                      description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                      properties:
paulfantom's avatar
paulfantom committed
                        key:
Jesse Bye's avatar
Jesse Bye committed
                          description: key is the label key that the selector applies to.
                          type: string
paulfantom's avatar
paulfantom committed
                        operator:
Jesse Bye's avatar
Jesse Bye committed
                          description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
paulfantom's avatar
paulfantom committed
                        values:
Jesse Bye's avatar
Jesse Bye committed
                          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
paulfantom's avatar
paulfantom committed
                      - key
                      - operator
                      type: object
                    type: array
paulfantom's avatar
paulfantom committed
                  matchLabels:
                    additionalProperties:
                      type: string
Jesse Bye's avatar
Jesse Bye committed
                    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
              ruleSelector:
Jesse Bye's avatar
Jesse Bye committed
                description: A label selector to select which PrometheusRules to mount for alerting and recording.
paulfantom's avatar
paulfantom committed
                properties:
                  matchExpressions:
Jesse Bye's avatar
Jesse Bye committed
                    description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
Jesse Bye's avatar
Jesse Bye committed
                      description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                      properties:
paulfantom's avatar
paulfantom committed
                        key:
Jesse Bye's avatar
Jesse Bye committed
                          description: key is the label key that the selector applies to.
                          type: string
paulfantom's avatar
paulfantom committed
                        operator:
Jesse Bye's avatar
Jesse Bye committed
                          description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
paulfantom's avatar
paulfantom committed
                        values:
Jesse Bye's avatar
Jesse Bye committed
                          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
Jesse Bye's avatar
Jesse Bye committed
                    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
              securityContext:
Jesse Bye's avatar
Jesse Bye committed
                description: SecurityContext holds pod-level security attributes and common container settings. This defaults to the default PodSecurityContext.
paulfantom's avatar
paulfantom committed
                properties:
                  fsGroup:
Jesse Bye's avatar
Jesse Bye committed
                    description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \n If unset, the Kubelet will not modify the ownership and permissions of any volume."
paulfantom's avatar
paulfantom committed
                    format: int64
                    type: integer
                  fsGroupChangePolicy:
Jesse Bye's avatar
Jesse Bye committed
                    description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are "OnRootMismatch" and "Always". If not specified defaults to "Always".'
paulfantom's avatar
paulfantom committed
                    type: string
                  runAsGroup:
Jesse Bye's avatar
Jesse Bye committed
                    description: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
paulfantom's avatar
paulfantom committed
                    format: int64
                    type: integer
                  runAsNonRoot:
Jesse Bye's avatar
Jesse Bye committed
                    description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
paulfantom's avatar
paulfantom committed
                    type: boolean
                  runAsUser:
Jesse Bye's avatar
Jesse Bye committed
                    description: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
paulfantom's avatar
paulfantom committed
                    format: int64
                    type: integer
                  seLinuxOptions:
Jesse Bye's avatar
Jesse Bye committed
                    description: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
paulfantom's avatar
paulfantom committed
                    properties:
                      level:
Jesse Bye's avatar
Jesse Bye committed
                        description: Level is SELinux level label that applies to the container.
paulfantom's avatar
paulfantom committed
                        type: string
                      role:
Jesse Bye's avatar
Jesse Bye committed
                        description: Role is a SELinux role label that applies to the container.
paulfantom's avatar
paulfantom committed
                        type: string
                      type:
Jesse Bye's avatar
Jesse Bye committed
                        description: Type is a SELinux type label that applies to the container.
paulfantom's avatar
paulfantom committed
                        type: string
                      user:
Jesse Bye's avatar
Jesse Bye committed
                        description: User is a SELinux user label that applies to the container.
paulfantom's avatar
paulfantom committed
                        type: string
                    type: object
                  supplementalGroups:
Jesse Bye's avatar
Jesse Bye committed
                    description: A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container.
paulfantom's avatar
paulfantom committed
                    items:
                      format: int64
                      type: integer
                    type: array
                  sysctls:
Jesse Bye's avatar
Jesse Bye committed
                    description: Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.
paulfantom's avatar
paulfantom committed
                    items:
                      description: Sysctl defines a kernel parameter to be set
                      properties:
paulfantom's avatar
paulfantom committed
                          description: Name of a property to set
                          type: string
paulfantom's avatar
paulfantom committed
                        value:
                          description: Value of a property to set
                          type: string
                      required:
                      - name
paulfantom's avatar
paulfantom committed
                      - value
                      type: object
                    type: array
paulfantom's avatar
paulfantom committed
                  windowsOptions:
Jesse Bye's avatar
Jesse Bye committed
                    description: The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                    properties:
paulfantom's avatar
paulfantom committed
                      gmsaCredentialSpec:
Jesse Bye's avatar
Jesse Bye committed
                        description: GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.
                        type: string
paulfantom's avatar
paulfantom committed
                      gmsaCredentialSpecName:
Jesse Bye's avatar
Jesse Bye committed
                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
paulfantom's avatar
paulfantom committed
                        type: string
                      runAsUserName:
Jesse Bye's avatar
Jesse Bye committed
                        description: The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                        type: string
                    type: object
paulfantom's avatar
paulfantom committed
                type: object
              serviceAccountName:
Jesse Bye's avatar
Jesse Bye committed
                description: ServiceAccountName is the name of the ServiceAccount to use to run the Thanos Ruler Pods.
paulfantom's avatar
paulfantom committed
                type: string
              storage:
                description: Storage spec to specify how storage shall be used.
                properties:
                  disableMountSubPath:
Jesse Bye's avatar
Jesse Bye committed
                    description: 'Deprecated: subPath usage will be disabled by default in a future release, this option will become unnecessary. DisableMountSubPath allows to remove any subPath usage in volume mounts.'
paulfantom's avatar
paulfantom committed
                    type: boolean
                  emptyDir:
Jesse Bye's avatar
Jesse Bye committed
                    description: 'EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir'
                    properties:
paulfantom's avatar
paulfantom committed
                      medium:
Jesse Bye's avatar
Jesse Bye committed
                        description: 'What type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                        type: string
paulfantom's avatar
paulfantom committed
                      sizeLimit:
Lili Cosic's avatar
Lili Cosic committed
                        anyOf:
                        - type: integer
                        - type: string
Jesse Bye's avatar
Jesse Bye committed
                        description: 'Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here 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
                    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:
Jesse Bye's avatar
Jesse Bye committed
                        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:
Jesse Bye's avatar
Jesse Bye committed
                        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:
Jesse Bye's avatar
Jesse Bye committed
                        description: EmbeddedMetadata contains metadata relevant to an EmbeddedResource.
paulfantom's avatar
paulfantom committed
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
Jesse Bye's avatar
Jesse Bye committed
                            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
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                        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:
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                                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:
Jesse Bye's avatar
Jesse Bye committed
                            description: 'Resources represents the minimum resources the volume should have. 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
Jesse Bye's avatar
Jesse Bye committed
                                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
Jesse Bye's avatar
Jesse Bye committed
                                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
                          selector:
Jesse Bye's avatar
Jesse Bye committed
                            description: A label query over volumes to consider for binding.
paulfantom's avatar
paulfantom committed
                            properties:
                              matchExpressions:
Jesse Bye's avatar
Jesse Bye committed
                                description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
paulfantom's avatar
paulfantom committed
                                items:
Jesse Bye's avatar
Jesse Bye committed
                                  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:
Jesse Bye's avatar
Jesse Bye committed
                                      description: key is the label key that the selector applies to.
paulfantom's avatar
paulfantom committed
                                      type: string
                                    operator:
Jesse Bye's avatar
Jesse Bye committed
                                      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:
Jesse Bye's avatar
Jesse Bye committed
                                      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
Jesse Bye's avatar
Jesse Bye committed
                                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:
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                            description: VolumeName is the binding reference to the PersistentVolume backing this claim.
                            type: string
                        type: object
paulfantom's avatar
paulfantom committed
                      status:
Jesse Bye's avatar
Jesse Bye committed
                        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:
Jesse Bye's avatar
Jesse Bye committed
                            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
                          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
Jesse Bye's avatar
Jesse Bye committed
                            description: Represents the actual resources of the underlying volume.
paulfantom's avatar
paulfantom committed
                            type: object
                          conditions:
Jesse Bye's avatar
Jesse Bye committed
                            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:
Jesse Bye's avatar
Jesse Bye committed
                              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:
Jesse Bye's avatar
Jesse Bye committed
                                  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:
Jesse Bye's avatar
Jesse Bye committed
                                  description: Human-readable message indicating details about last transition.
paulfantom's avatar
paulfantom committed
                                  type: string
                                reason:
Jesse Bye's avatar
Jesse Bye committed
                                  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:
Jesse Bye's avatar
Jesse Bye committed
                                  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
                        type: object
                    type: object
paulfantom's avatar
paulfantom committed
                type: object
              tolerations:
                description: If specified, the pod's tolerations.
                items:
Jesse Bye's avatar
Jesse Bye committed
                  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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                      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.
                          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
                    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
              tracingConfig:
Jesse Bye's avatar
Jesse Bye committed
                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:
Jesse Bye's avatar
Jesse Bye committed
                    description: The key of the secret to select from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
Jesse Bye's avatar
Jesse Bye committed
                    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:
Jesse Bye's avatar
Jesse Bye committed
                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:
Jesse Bye's avatar
Jesse Bye committed
                  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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                      description: AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretName:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                      description: CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
paulfantom's avatar
paulfantom committed
                      properties:
                        monitors:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                              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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                      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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Optional: points to a secret object containing parameters used to connect to OpenStack.'
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
Jesse Bye's avatar
Jesse Bye committed
                              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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                      description: ConfigMap represents a configMap that should populate this volume
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                                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:
Jesse Bye's avatar
Jesse Bye committed
                                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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          description: Specify whether the ConfigMap or its keys must be defined
paulfantom's avatar
paulfantom committed
                          type: boolean
                      type: object
                    csi:
Jesse Bye's avatar
Jesse Bye committed
                      description: CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature).
paulfantom's avatar
paulfantom committed
                      properties:
                        driver:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                              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:
Jesse Bye's avatar
Jesse Bye committed
                          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
Jesse Bye's avatar
Jesse Bye committed
                          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:
Jesse Bye's avatar
Jesse Bye committed
                      description: DownwardAPI represents downward API about the pod that should populate this volume
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
Jesse Bye's avatar
Jesse Bye committed
                          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
paulfantom's avatar
paulfantom committed
                          description: Items is a list of downward API volume file
                          items:
Jesse Bye's avatar
Jesse Bye committed
                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
paulfantom's avatar
paulfantom committed
                            properties:
                              fieldRef:
Jesse Bye's avatar
Jesse Bye committed
                                description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
paulfantom's avatar
paulfantom committed
                                properties:
                                  apiVersion:
Jesse Bye's avatar
Jesse Bye committed
                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
paulfantom's avatar
paulfantom committed
                                    type: string
                                  fieldPath:
Jesse Bye's avatar
Jesse Bye committed
                                    description: Path of the field to select in the specified API version.
paulfantom's avatar
paulfantom committed
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              mode:
Jesse Bye's avatar
Jesse Bye committed
                                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:
Jesse Bye's avatar
Jesse Bye committed
                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
paulfantom's avatar
paulfantom committed
                                type: string
                              resourceFieldRef:
Jesse Bye's avatar
Jesse Bye committed
                                description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
paulfantom's avatar
paulfantom committed
                                properties:
                                  containerName:
Jesse Bye's avatar
Jesse Bye committed
                                    description: 'Container name: required for volumes, optional for env vars'
paulfantom's avatar
paulfantom committed
                                    type: string
                                  divisor:
Lili Cosic's avatar
Lili Cosic committed
                                    anyOf:
                                    - type: integer
                                    - type: string
Jesse Bye's avatar
Jesse Bye committed
                                    description: Specifies the output format of the exposed resources, defaults to "1"
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
                                  resource:
                                    description: 'Required: resource to select'
                                    type: string
                                required:
                                - resource
                                type: object
                            required:
                            - path
                            type: object
                          type: array
                      type: object
                    emptyDir:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'EmptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
paulfantom's avatar
paulfantom committed
                      properties:
                        medium:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'What type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
paulfantom's avatar
paulfantom committed
                          type: string
                        sizeLimit:
Lili Cosic's avatar
Lili Cosic committed
                          anyOf:
                          - type: integer
                          - type: string
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here 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
                    fc:
Jesse Bye's avatar
Jesse Bye committed
                      description: FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
Jesse Bye's avatar
Jesse Bye committed
                          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. TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        lun:
                          description: 'Optional: FC target lun number'
                          format: int32
                          type: integer
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        targetWWNs:
                          description: 'Optional: FC target worldwide names (WWNs)'
                          items:
                            type: string
                          type: array
                        wwids:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
                          type: array
                      type: object
                    flexVolume:
Jesse Bye's avatar
Jesse Bye committed
                      description: FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
paulfantom's avatar
paulfantom committed
                      properties:
                        driver:
Jesse Bye's avatar
Jesse Bye committed
                          description: Driver is the name of the driver to use for this volume.
paulfantom's avatar
paulfantom committed
                          type: string
                        fsType:
Jesse Bye's avatar
Jesse Bye committed
                          description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
paulfantom's avatar
paulfantom committed
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          description: 'Optional: Extra command options if any.'
                          type: object
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.'
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
Jesse Bye's avatar
Jesse Bye committed
                              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
                      required:
                      - driver
                      type: object
                    flocker:
Jesse Bye's avatar
Jesse Bye committed
                      description: Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
paulfantom's avatar
paulfantom committed
                      properties:
                        datasetName:
Jesse Bye's avatar
Jesse Bye committed
                          description: Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
paulfantom's avatar
paulfantom committed
                          type: string
                        datasetUUID:
Jesse Bye's avatar
Jesse Bye committed
                          description: UUID of the dataset. This is unique identifier of a Flocker dataset
paulfantom's avatar
paulfantom committed
                          type: string
                      type: object
                    gcePersistentDisk:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'GCEPersistentDisk represents a GCE 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#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
Jesse Bye's avatar
Jesse Bye committed
                          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#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        partition:
Jesse Bye's avatar
Jesse Bye committed
                          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). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        pdName:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.'
paulfantom's avatar
paulfantom committed
                      properties:
                        directory:
Jesse Bye's avatar
Jesse Bye committed
                          description: Target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
paulfantom's avatar
paulfantom committed
                          type: string
                        repository:
                          description: Repository URL
                          type: string
                        revision:
                          description: Commit hash for the specified revision.
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'Glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        endpoints:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
paulfantom's avatar
paulfantom committed
                          type: string
                        path:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.'
paulfantom's avatar
paulfantom committed
                      properties:
                        path:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
paulfantom's avatar
paulfantom committed
                          type: string
                        type:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - path
                      type: object
                    iscsi:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'ISCSI represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        chapAuthDiscovery:
                          description: whether support iSCSI Discovery CHAP authentication
                          type: boolean
                        chapAuthSession:
                          description: whether support iSCSI Session CHAP authentication
                          type: boolean
                        fsType:
Jesse Bye's avatar
Jesse Bye committed
                          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#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        initiatorName:
Jesse Bye's avatar
Jesse Bye committed
                          description: Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
paulfantom's avatar
paulfantom committed
                          type: string
                        iqn:
                          description: Target iSCSI Qualified Name.
                          type: string
                        iscsiInterface:
Jesse Bye's avatar
Jesse Bye committed
                          description: iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
paulfantom's avatar
paulfantom committed
                          type: string
                        lun:
                          description: iSCSI Target Lun number.
                          format: int32
                          type: integer
                        portals:
Jesse Bye's avatar
Jesse Bye committed
                          description: iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
                          type: array
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
Jesse Bye's avatar
Jesse Bye committed
                          description: CHAP Secret for iSCSI target and initiator authentication
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
Jesse Bye's avatar
Jesse Bye committed
                              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
                        targetPortal:
Jesse Bye's avatar
Jesse Bye committed
                          description: iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'Volume''s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
paulfantom's avatar
paulfantom committed
                      type: string
                    nfs:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'NFS represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                      properties:
                        path:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        server:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
Jesse Bye's avatar
Jesse Bye committed
                      description: 'PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
paulfantom's avatar
paulfantom committed
                      properties:
                        claimName:
Jesse Bye's avatar
Jesse Bye committed
                          description: 'ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: Will force the ReadOnly setting in VolumeMounts. Default false.
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
Jesse Bye's avatar
Jesse Bye committed
                      description: PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
Jesse Bye's avatar
Jesse Bye committed
                          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
                        pdID:
Jesse Bye's avatar
Jesse Bye committed
                          description: ID that identifies Photon Controller persistent disk
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
Jesse Bye's avatar
Jesse Bye committed
                      description: PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
Jesse Bye's avatar
Jesse Bye committed
                          description: FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
Jesse Bye's avatar
Jesse Bye committed
                          description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        volumeID:
                          description: VolumeID uniquely identifies a Portworx volume
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
Jesse Bye's avatar
Jesse Bye committed
                      description: Items for all in one resources secrets, configmaps, and downward API
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
Jesse Bye's avatar
Jesse Bye committed
                          description: Mode bits to use on created files by default. Must be a value between 0 and 0777. 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
                        sources:
                          description: list of volume projections
                          items:
Jesse Bye's avatar
Jesse Bye committed
                            description: Projection that may be projected along with other supported volume types
paulfantom's avatar
paulfantom committed
                            properties:
                              configMap:
Jesse Bye's avatar
Jesse Bye committed
                                description: information about the configMap data to project
paulfantom's avatar
paulfantom committed
                                properties:
                                  items:
Jesse Bye's avatar
Jesse Bye committed
                                    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:
Jesse Bye's avatar
Jesse Bye committed
                                      description: Maps a string key to a path within a volume.
paulfantom's avatar
paulfantom committed
                                      properties:
                                        key:
                                          description: The key to project.
                                          type: string
                                        mode:
Jesse Bye's avatar
Jesse Bye committed
                                          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.'