1031 lines
55 KiB
YAML
1031 lines
55 KiB
YAML
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.9.0
|
|
creationTimestamp: null
|
|
labels:
|
|
app: storageos
|
|
app.kubernetes.io/component: operator
|
|
name: storageosclusters.storageos.com
|
|
spec:
|
|
group: storageos.com
|
|
names:
|
|
kind: StorageOSCluster
|
|
listKind: StorageOSClusterList
|
|
plural: storageosclusters
|
|
shortNames:
|
|
- stos
|
|
singular: storageoscluster
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- description: Ready status of the storageos nodes.
|
|
jsonPath: .status.ready
|
|
name: ready
|
|
type: string
|
|
- description: Status of the whole cluster.
|
|
jsonPath: .status.phase
|
|
name: status
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: age
|
|
type: date
|
|
name: v1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: StorageOSCluster is the Schema for the storageosclusters API
|
|
properties:
|
|
apiVersion:
|
|
description: 'APIVersion defines the versioned schema of this representation
|
|
of an object. Servers should convert recognized schemas to the latest
|
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
type: string
|
|
kind:
|
|
description: 'Kind is a string value representing the REST resource this
|
|
object represents. Servers may infer this from the endpoint the client
|
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
description: StorageOSClusterSpec defines the desired state of StorageOSCluster
|
|
properties:
|
|
containerResources:
|
|
description: ContainerResources is to set the resource requirements
|
|
of each individual container managed by the operator.
|
|
properties:
|
|
apiManagerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
cliContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
csiExternalAttacherContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
csiExternalProvisionerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
csiExternalResizerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
csiExternalSnapshotterContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
csiLivenessProbeContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
csiNodeDriverRegistrarContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
initContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
kubeSchedulerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
metricsExporterContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
nodeContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
nodeManagerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
portalManagerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
snapshotControllerContainer:
|
|
description: ResourceRequirements describes the compute resource
|
|
requirements.
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
type: object
|
|
csi:
|
|
description: CSI defines the configurations for CSI.
|
|
properties:
|
|
attacherTimeout:
|
|
type: string
|
|
deploymentStrategy:
|
|
type: string
|
|
deviceDir:
|
|
type: string
|
|
driverRegisterationMode:
|
|
type: string
|
|
driverRequiresAttachment:
|
|
type: string
|
|
enable:
|
|
type: boolean
|
|
enableControllerExpandCreds:
|
|
type: boolean
|
|
enableControllerPublishCreds:
|
|
type: boolean
|
|
enableNodePublishCreds:
|
|
type: boolean
|
|
enableProvisionCreds:
|
|
type: boolean
|
|
endpoint:
|
|
type: string
|
|
kubeletDir:
|
|
type: string
|
|
kubeletRegistrationPath:
|
|
type: string
|
|
pluginDir:
|
|
type: string
|
|
provisionerTimeout:
|
|
type: string
|
|
provisionerWorkerCount:
|
|
type: integer
|
|
registrarSocketDir:
|
|
type: string
|
|
registrationDir:
|
|
type: string
|
|
resizerTimeout:
|
|
type: string
|
|
snapshotterTimeout:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
debug:
|
|
description: Debug is to set debug mode of the cluster.
|
|
type: boolean
|
|
disableCLI:
|
|
description: Disable StorageOS CLI deployment.
|
|
type: boolean
|
|
disableFencing:
|
|
description: "Disable Pod Fencing. With StatefulSets, Pods are only
|
|
re-scheduled if the Pod has been marked as killed. In practice
|
|
this means that failover of a StatefulSet pod is a manual operation.
|
|
\n By enabling Pod Fencing and setting the `storageos.com/fenced=true`
|
|
label on a Pod, StorageOS will enable automated Pod failover (by
|
|
killing the application Pod on the failed node) if the following
|
|
conditions exist: \n - Pod fencing has not been explicitly disabled.
|
|
- StorageOS has determined that the node the Pod is running on is
|
|
offline. StorageOS uses Gossip and TCP checks and will retry for
|
|
30 seconds. At this point all volumes on the failed node are marked
|
|
offline (irrespective of whether fencing is enabled) and volume
|
|
failover starts. - The Pod has the label `storageos.com/fenced=true`
|
|
set. - The Pod has at least one StorageOS volume attached. - Each
|
|
StorageOS volume has at least 1 healthy replica. \n When Pod Fencing
|
|
is disabled, StorageOS will not perform any interaction with Kubernetes
|
|
when it detects that a node has gone offline. Additionally, the
|
|
Kubernetes permissions required for Fencing will not be added to
|
|
the StorageOS role. Deprecated: Not used any more, fencing is enabled/disabled
|
|
by storageos.com/fenced label on pod."
|
|
type: boolean
|
|
disableScheduler:
|
|
description: Disable StorageOS scheduler extender.
|
|
type: boolean
|
|
disableTCMU:
|
|
description: "Disable TCMU can be set to true to disable the TCMU
|
|
storage driver. This is required when there are multiple storage
|
|
systems running on the same node and you wish to avoid conflicts.
|
|
\ Only one TCMU-based storage system can run on a node at a time.
|
|
\n Disabling TCMU will degrade performance. Deprecated: Not used
|
|
any more."
|
|
type: boolean
|
|
disableTelemetry:
|
|
description: Disable Telemetry.
|
|
type: boolean
|
|
enablePortalManager:
|
|
description: EnablePortalManager enables Portal Manager.
|
|
type: boolean
|
|
environment:
|
|
additionalProperties:
|
|
type: string
|
|
description: Environment contains environment variables that are passed
|
|
to StorageOS.
|
|
type: object
|
|
forceTCMU:
|
|
description: "Force TCMU can be set to true to ensure that TCMU is
|
|
enabled or cause StorageOS to abort startup. \n At startup, StorageOS
|
|
will automatically fallback to non-TCMU mode if another TCMU-based
|
|
storage system is running on the node. Since non-TCMU will degrade
|
|
performance, this may not always be desired. Deprecated: Not used
|
|
any more."
|
|
type: boolean
|
|
images:
|
|
description: Images defines the various container images used in the
|
|
cluster.
|
|
properties:
|
|
apiManagerContainer:
|
|
type: string
|
|
cliContainer:
|
|
type: string
|
|
csiClusterDriverRegistrarContainer:
|
|
type: string
|
|
csiExternalAttacherContainer:
|
|
type: string
|
|
csiExternalProvisionerContainer:
|
|
type: string
|
|
csiExternalResizerContainer:
|
|
type: string
|
|
csiExternalSnapshotterContainer:
|
|
type: string
|
|
csiLivenessProbeContainer:
|
|
type: string
|
|
csiNodeDriverRegistrarContainer:
|
|
type: string
|
|
hyperkubeContainer:
|
|
type: string
|
|
initContainer:
|
|
type: string
|
|
kubeSchedulerContainer:
|
|
type: string
|
|
metricsExporterContainer:
|
|
type: string
|
|
nfsContainer:
|
|
type: string
|
|
nodeContainer:
|
|
type: string
|
|
nodeGuardContainer:
|
|
type: string
|
|
nodeManagerContainer:
|
|
type: string
|
|
portalManagerContainer:
|
|
type: string
|
|
snapshotControllerContainer:
|
|
type: string
|
|
type: object
|
|
ingress:
|
|
description: 'Ingress defines the ingress configurations used in the
|
|
cluster. Deprecated: Not used any more, please create your ingress
|
|
for dashboard on your own.'
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
enable:
|
|
type: boolean
|
|
hostname:
|
|
type: string
|
|
tls:
|
|
type: boolean
|
|
type: object
|
|
join:
|
|
description: 'Join is the join token used for service discovery. Deprecated:
|
|
Not used any more.'
|
|
type: string
|
|
k8sDistro:
|
|
description: "K8sDistro is the name of the Kubernetes distribution
|
|
where the operator is being deployed. It should be in the format:
|
|
`name[-1.0]`, where the version is optional and should only be appended
|
|
if known. Suitable names include: `openshift`, `rancher`, `aks`,
|
|
`gke`, `eks`, or the deployment method if using upstream directly,
|
|
e.g `minishift` or `kubeadm`. \n Setting k8sDistro is optional,
|
|
and will be used to simplify cluster configuration by setting appropriate
|
|
defaults for the distribution. The distribution information will
|
|
also be included in the product telemetry (if enabled), to help
|
|
focus development efforts."
|
|
type: string
|
|
kvBackend:
|
|
description: KVBackend defines the key-value store backend used in
|
|
the cluster.
|
|
properties:
|
|
address:
|
|
type: string
|
|
backend:
|
|
type: string
|
|
required:
|
|
- address
|
|
type: object
|
|
metrics:
|
|
description: Metrics feature configuration.
|
|
properties:
|
|
disabledCollectors:
|
|
description: DisabledCollectors is a list of collectors that shall
|
|
be disabled. By default, all are enabled.
|
|
items:
|
|
description: MetricsExporterCollector is the name of a metrics
|
|
collector in the metrics-exporter.
|
|
enum:
|
|
- diskstats
|
|
- filesystem
|
|
type: string
|
|
type: array
|
|
enabled:
|
|
type: boolean
|
|
logLevel:
|
|
description: Verbosity of log messages. Accepts go.uber.org/zap
|
|
log levels.
|
|
enum:
|
|
- debug
|
|
- info
|
|
- warn
|
|
- error
|
|
- dpanic
|
|
- panic
|
|
- fatal
|
|
type: string
|
|
timeout:
|
|
description: Timeout in seconds to serve metrics.
|
|
minimum: 1
|
|
type: integer
|
|
type: object
|
|
namespace:
|
|
description: 'Namespace is the kubernetes Namespace where storageos
|
|
resources are provisioned. Deprecated: StorageOS uses namespace
|
|
of storageosclusters.storageos.com resource.'
|
|
type: string
|
|
nodeManagerFeatures:
|
|
additionalProperties:
|
|
type: string
|
|
description: Node manager feature list with optional configurations.
|
|
type: object
|
|
nodeSelectorTerms:
|
|
description: NodeSelectorTerms is to set the placement of storageos
|
|
pods using node affinity requiredDuringSchedulingIgnoredDuringExecution.
|
|
items:
|
|
description: A null or empty node selector term matches no objects.
|
|
The requirements of them are ANDed. The TopologySelectorTerm type
|
|
implements a subset of the NodeSelectorTerm.
|
|
properties:
|
|
matchExpressions:
|
|
description: A list of node selector requirements by node's
|
|
labels.
|
|
items:
|
|
description: A node selector requirement is a selector that
|
|
contains values, a key, and an operator that relates the
|
|
key and values.
|
|
properties:
|
|
key:
|
|
description: The label key that the selector applies to.
|
|
type: string
|
|
operator:
|
|
description: Represents a key's relationship to a set
|
|
of values. Valid operators are In, NotIn, Exists, DoesNotExist.
|
|
Gt, and Lt.
|
|
type: string
|
|
values:
|
|
description: An array of string values. If the operator
|
|
is In or NotIn, the values array must be non-empty.
|
|
If the operator is Exists or DoesNotExist, the values
|
|
array must be empty. If the operator is Gt or Lt, the
|
|
values array must have a single element, which will
|
|
be interpreted as an integer. This array is replaced
|
|
during a strategic merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
matchFields:
|
|
description: A list of node selector requirements by node's
|
|
fields.
|
|
items:
|
|
description: A node selector requirement is a selector that
|
|
contains values, a key, and an operator that relates the
|
|
key and values.
|
|
properties:
|
|
key:
|
|
description: The label key that the selector applies to.
|
|
type: string
|
|
operator:
|
|
description: Represents a key's relationship to a set
|
|
of values. Valid operators are In, NotIn, Exists, DoesNotExist.
|
|
Gt, and Lt.
|
|
type: string
|
|
values:
|
|
description: An array of string values. If the operator
|
|
is In or NotIn, the values array must be non-empty.
|
|
If the operator is Exists or DoesNotExist, the values
|
|
array must be empty. If the operator is Gt or Lt, the
|
|
values array must have a single element, which will
|
|
be interpreted as an integer. This array is replaced
|
|
during a strategic merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
type: object
|
|
type: array
|
|
pause:
|
|
description: 'Pause is to pause the operator for the cluster. Deprecated:
|
|
Not used any more, operator is always running.'
|
|
type: boolean
|
|
resources:
|
|
description: 'Resources is to set the resource requirements of the
|
|
storageos containers. Deprecated: Set resource requests for individual
|
|
containers via ContainerResources field in spec.'
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute resources
|
|
allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Requests describes the minimum amount of compute
|
|
resources required. If Requests is omitted for a container,
|
|
it defaults to Limits if that is explicitly specified, otherwise
|
|
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
secretRefName:
|
|
description: SecretRefName is the name of the secret object that contains
|
|
all the sensitive cluster configurations.
|
|
type: string
|
|
secretRefNamespace:
|
|
description: 'SecretRefNamespace is the namespace of the secret reference.
|
|
Deprecated: StorageOS uses namespace of storageosclusters.storageos.com
|
|
resource.'
|
|
type: string
|
|
service:
|
|
description: Service is the Service configuration for the cluster
|
|
nodes.
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
externalPort:
|
|
type: integer
|
|
internalPort:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- name
|
|
- type
|
|
type: object
|
|
sharedDir:
|
|
description: 'SharedDir is the shared directory to be used when the
|
|
kubelet is running in a container. Typically: "/var/lib/kubelet/plugins/kubernetes.io~storageos".
|
|
If not set, defaults will be used.'
|
|
type: string
|
|
snapshots:
|
|
description: Snapshots feature configuration.
|
|
properties:
|
|
volumeSnapshotClassName:
|
|
description: VolumeSnapshotClassName is the name of default VolumeSnapshotClass
|
|
created for StorageOS volumes.
|
|
type: string
|
|
type: object
|
|
storageClassName:
|
|
description: StorageClassName is the name of default StorageClass
|
|
created for StorageOS volumes.
|
|
type: string
|
|
tlsEtcdSecretRefName:
|
|
description: TLSEtcdSecretRefName is the name of the secret object
|
|
that contains the etcd TLS certs. This secret is shared with etcd,
|
|
therefore it's not part of the main storageos secret.
|
|
type: string
|
|
tlsEtcdSecretRefNamespace:
|
|
description: 'TLSEtcdSecretRefNamespace is the namespace of the etcd
|
|
TLS secret object. Deprecated: StorageOS uses namespace of storageosclusters.storageos.com
|
|
resource.'
|
|
type: string
|
|
tolerations:
|
|
description: Tolerations is to set the placement of storageos pods
|
|
using pod toleration.
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates any
|
|
taint that matches the triple <key,value,effect> using the matching
|
|
operator <operator>.
|
|
properties:
|
|
effect:
|
|
description: Effect indicates the taint effect to match. Empty
|
|
means match all taint effects. When specified, allowed values
|
|
are NoSchedule, PreferNoSchedule and NoExecute.
|
|
type: string
|
|
key:
|
|
description: Key is the taint key that the toleration applies
|
|
to. Empty means match all taint keys. If the key is empty,
|
|
operator must be Exists; this combination means to match all
|
|
values and all keys.
|
|
type: string
|
|
operator:
|
|
description: Operator represents a key's relationship to the
|
|
value. Valid operators are Exists and Equal. Defaults to Equal.
|
|
Exists is equivalent to wildcard for value, so that a pod
|
|
can tolerate all taints of a particular category.
|
|
type: string
|
|
tolerationSeconds:
|
|
description: TolerationSeconds represents the period of time
|
|
the toleration (which must be of effect NoExecute, otherwise
|
|
this field is ignored) tolerates the taint. By default, it
|
|
is not set, which means tolerate the taint forever (do not
|
|
evict). Zero and negative values will be treated as 0 (evict
|
|
immediately) by the system.
|
|
format: int64
|
|
type: integer
|
|
value:
|
|
description: Value is the taint value the toleration matches
|
|
to. If the operator is Exists, the value should be empty,
|
|
otherwise just a regular string.
|
|
type: string
|
|
type: object
|
|
type: array
|
|
required:
|
|
- kvBackend
|
|
- secretRefName
|
|
type: object
|
|
status:
|
|
description: StorageOSClusterStatus defines the observed state of StorageOSCluster
|
|
properties:
|
|
conditions:
|
|
description: Conditions is a list of status of all the components
|
|
of StorageOS.
|
|
items:
|
|
description: "Condition contains details for one aspect of the current
|
|
state of this API Resource. --- This struct is intended for direct
|
|
use as an array at the field path .status.conditions. For example,
|
|
type FooStatus struct{ // Represents the observations of a foo's
|
|
current state. // Known .status.conditions.type are: \"Available\",
|
|
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
|
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
|
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
|
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
|
properties:
|
|
lastTransitionTime:
|
|
description: lastTransitionTime is the last time the condition
|
|
transitioned from one status to another. This should be when
|
|
the underlying condition changed. If that is not known, then
|
|
using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: message is a human readable message indicating
|
|
details about the transition. This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: observedGeneration represents the .metadata.generation
|
|
that the condition was set based upon. For instance, if .metadata.generation
|
|
is currently 12, but the .status.conditions[x].observedGeneration
|
|
is 9, the condition is out of date with respect to the current
|
|
state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: reason contains a programmatic identifier indicating
|
|
the reason for the condition's last transition. Producers
|
|
of specific condition types may define expected values and
|
|
meanings for this field, and whether the values are considered
|
|
a guaranteed API. The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
--- Many .condition.type values are consistent across resources
|
|
like Available, but because arbitrary conditions can be useful
|
|
(see .node.status.conditions), the ability to deconflict is
|
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
members:
|
|
description: Members is the list of StorageOS nodes in the cluster.
|
|
properties:
|
|
ready:
|
|
description: Ready are the storageos cluster members that are
|
|
ready to serve requests. The member names are the same as the
|
|
node IPs.
|
|
items:
|
|
type: string
|
|
type: array
|
|
unready:
|
|
description: Unready are the storageos cluster nodes not ready
|
|
to serve requests.
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
nodeHealthStatus:
|
|
additionalProperties:
|
|
description: NodeHealth contains health status of a node.
|
|
properties:
|
|
directfsInitiator:
|
|
type: string
|
|
director:
|
|
type: string
|
|
kv:
|
|
type: string
|
|
kvWrite:
|
|
type: string
|
|
nats:
|
|
type: string
|
|
presentation:
|
|
type: string
|
|
rdb:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
nodes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
phase:
|
|
description: Phase is the phase of the StorageOS cluster.
|
|
type: string
|
|
ready:
|
|
description: Ready is the ready status of the StorageOS control-plane
|
|
pods.
|
|
type: string
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|