...

Text file src/github.com/openshift/api/operator/v1/0000_90_cluster_csi_driver_01_config.crd.yaml

Documentation: github.com/openshift/api/operator/v1

     1apiVersion: apiextensions.k8s.io/v1
     2kind: CustomResourceDefinition
     3metadata:
     4  annotations:
     5    api-approved.openshift.io: https://github.com/openshift/api/pull/701
     6    include.release.openshift.io/ibm-cloud-managed: "true"
     7    include.release.openshift.io/self-managed-high-availability: "true"
     8    include.release.openshift.io/single-node-developer: "true"
     9  name: clustercsidrivers.operator.openshift.io
    10spec:
    11  group: operator.openshift.io
    12  names:
    13    kind: ClusterCSIDriver
    14    plural: clustercsidrivers
    15    singular: clustercsidriver
    16  scope: Cluster
    17  versions:
    18    - name: v1
    19      schema:
    20        openAPIV3Schema:
    21          description: "ClusterCSIDriver object allows management and configuration of a CSI driver operator installed by default in OpenShift. Name of the object must be name of the CSI driver it operates. See CSIDriverName type for list of allowed values. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
    22          properties:
    23            apiVersion:
    24              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'
    25              type: string
    26            kind:
    27              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'
    28              type: string
    29            metadata:
    30              properties:
    31                name:
    32                  enum:
    33                    - ebs.csi.aws.com
    34                    - efs.csi.aws.com
    35                    - disk.csi.azure.com
    36                    - file.csi.azure.com
    37                    - filestore.csi.storage.gke.io
    38                    - pd.csi.storage.gke.io
    39                    - cinder.csi.openstack.org
    40                    - csi.vsphere.vmware.com
    41                    - manila.csi.openstack.org
    42                    - csi.ovirt.org
    43                    - csi.kubevirt.io
    44                    - csi.sharedresource.openshift.io
    45                    - diskplugin.csi.alibabacloud.com
    46                    - vpc.block.csi.ibm.io
    47                    - powervs.csi.ibm.com
    48                  type: string
    49              type: object
    50            spec:
    51              description: spec holds user settable values for configuration
    52              properties:
    53                driverConfig:
    54                  description: driverConfig can be used to specify platform specific driver configuration. When omitted, this means no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time.
    55                  properties:
    56                    aws:
    57                      description: aws is used to configure the AWS CSI driver.
    58                      properties:
    59                        kmsKeyARN:
    60                          description: kmsKeyARN sets the cluster default storage class to encrypt volumes with a user-defined KMS key, rather than the default KMS key used by AWS. The value may be either the ARN or Alias ARN of a KMS key.
    61                          pattern: ^arn:(aws|aws-cn|aws-us-gov):kms:[a-z0-9-]+:[0-9]{12}:(key|alias)\/.*$
    62                          type: string
    63                      type: object
    64                    azure:
    65                      description: azure is used to configure the Azure CSI driver.
    66                      properties:
    67                        diskEncryptionSet:
    68                          description: diskEncryptionSet sets the cluster default storage class to encrypt volumes with a customer-managed encryption set, rather than the default platform-managed keys.
    69                          properties:
    70                            name:
    71                              description: name is the name of the disk encryption set that will be set on the default storage class. The value should consist of only alphanumberic characters, underscores (_), hyphens, and be at most 80 characters in length.
    72                              maxLength: 80
    73                              pattern: ^[a-zA-Z0-9\_-]+$
    74                              type: string
    75                            resourceGroup:
    76                              description: resourceGroup defines the Azure resource group that contains the disk encryption set. The value should consist of only alphanumberic characters, underscores (_), parentheses, hyphens and periods. The value should not end in a period and be at most 90 characters in length.
    77                              maxLength: 90
    78                              pattern: ^[\w\.\-\(\)]*[\w\-\(\)]$
    79                              type: string
    80                            subscriptionID:
    81                              description: 'subscriptionID defines the Azure subscription that contains the disk encryption set. The value should meet the following conditions: 1. It should be a 128-bit number. 2. It should be 36 characters (32 hexadecimal characters and 4 hyphens) long. 3. It should be displayed in five groups separated by hyphens (-). 4. The first group should be 8 characters long. 5. The second, third, and fourth groups should be 4 characters long. 6. The fifth group should be 12 characters long. An Example SubscrionID: f2007bbf-f802-4a47-9336-cf7c6b89b378'
    82                              maxLength: 36
    83                              pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$
    84                              type: string
    85                          required:
    86                            - name
    87                            - resourceGroup
    88                            - subscriptionID
    89                          type: object
    90                      type: object
    91                    driverType:
    92                      description: 'driverType indicates type of CSI driver for which the driverConfig is being applied to. Valid values are: AWS, Azure, GCP, vSphere and omitted. Consumers should treat unknown values as a NO-OP.'
    93                      enum:
    94                        - ""
    95                        - AWS
    96                        - Azure
    97                        - GCP
    98                        - vSphere
    99                      type: string
   100                    gcp:
   101                      description: gcp is used to configure the GCP CSI driver.
   102                      properties:
   103                        kmsKey:
   104                          description: kmsKey sets the cluster default storage class to encrypt volumes with customer-supplied encryption keys, rather than the default keys managed by GCP.
   105                          properties:
   106                            keyRing:
   107                              description: keyRing is the name of the KMS Key Ring which the KMS Key belongs to. The value should correspond to an existing KMS key ring and should consist of only alphanumeric characters, hyphens (-) and underscores (_), and be at most 63 characters in length.
   108                              maxLength: 63
   109                              minLength: 1
   110                              pattern: ^[a-zA-Z0-9\_-]+$
   111                              type: string
   112                            location:
   113                              description: location is the GCP location in which the Key Ring exists. The value must match an existing GCP location, or "global". Defaults to global, if not set.
   114                              pattern: ^[a-zA-Z0-9\_-]+$
   115                              type: string
   116                            name:
   117                              description: name is the name of the customer-managed encryption key to be used for disk encryption. The value should correspond to an existing KMS key and should consist of only alphanumeric characters, hyphens (-) and underscores (_), and be at most 63 characters in length.
   118                              maxLength: 63
   119                              minLength: 1
   120                              pattern: ^[a-zA-Z0-9\_-]+$
   121                              type: string
   122                            projectID:
   123                              description: projectID is the ID of the Project in which the KMS Key Ring exists. It must be 6 to 30 lowercase letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited.
   124                              maxLength: 30
   125                              minLength: 6
   126                              pattern: ^[a-z][a-z0-9-]+[a-z0-9]$
   127                              type: string
   128                          required:
   129                            - keyRing
   130                            - name
   131                            - projectID
   132                          type: object
   133                      type: object
   134                    vSphere:
   135                      description: vsphere is used to configure the vsphere CSI driver.
   136                      properties:
   137                        topologyCategories:
   138                          description: topologyCategories indicates tag categories with which vcenter resources such as hostcluster or datacenter were tagged with. If cluster Infrastructure object has a topology, values specified in Infrastructure object will be used and modifications to topologyCategories will be rejected.
   139                          items:
   140                            type: string
   141                          type: array
   142                      type: object
   143                  required:
   144                    - driverType
   145                  type: object
   146                logLevel:
   147                  default: Normal
   148                  description: "logLevel is an intent based logging for an overall component.  It does not give fine grained control, but it is a simple way to manage coarse grained logging choices that operators have to interpret for their operands. \n Valid values are: \"Normal\", \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
   149                  enum:
   150                    - ""
   151                    - Normal
   152                    - Debug
   153                    - Trace
   154                    - TraceAll
   155                  type: string
   156                managementState:
   157                  description: managementState indicates whether and how the operator should manage the component
   158                  pattern: ^(Managed|Unmanaged|Force|Removed)$
   159                  type: string
   160                observedConfig:
   161                  description: observedConfig holds a sparse config that controller has observed from the cluster state.  It exists in spec because it is an input to the level for the operator
   162                  nullable: true
   163                  type: object
   164                  x-kubernetes-preserve-unknown-fields: true
   165                operatorLogLevel:
   166                  default: Normal
   167                  description: "operatorLogLevel is an intent based logging for the operator itself.  It does not give fine grained control, but it is a simple way to manage coarse grained logging choices that operators have to interpret for themselves. \n Valid values are: \"Normal\", \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
   168                  enum:
   169                    - ""
   170                    - Normal
   171                    - Debug
   172                    - Trace
   173                    - TraceAll
   174                  type: string
   175                storageClassState:
   176                  description: StorageClassState determines if CSI operator should create and manage storage classes. If this field value is empty or Managed - CSI operator will continuously reconcile storage class and create if necessary. If this field value is Unmanaged - CSI operator will not reconcile any previously created storage class. If this field value is Removed - CSI operator will delete the storage class it created previously. When omitted, this means the user has no opinion and the platform chooses a reasonable default, which is subject to change over time. The current default behaviour is Managed.
   177                  enum:
   178                    - ""
   179                    - Managed
   180                    - Unmanaged
   181                    - Removed
   182                  type: string
   183                unsupportedConfigOverrides:
   184                  description: unsupportedConfigOverrides overrides the final configuration that was computed by the operator. Red Hat does not support the use of this field. Misuse of this field could lead to unexpected behavior or conflict with other configuration options. Seek guidance from the Red Hat support before using this field. Use of this property blocks cluster upgrades, it must be removed before upgrading your cluster.
   185                  nullable: true
   186                  type: object
   187                  x-kubernetes-preserve-unknown-fields: true
   188              type: object
   189            status:
   190              description: status holds observed values from the cluster. They may not be overridden.
   191              properties:
   192                conditions:
   193                  description: conditions is a list of conditions and their status
   194                  items:
   195                    description: OperatorCondition is just the standard condition fields.
   196                    properties:
   197                      lastTransitionTime:
   198                        format: date-time
   199                        type: string
   200                      message:
   201                        type: string
   202                      reason:
   203                        type: string
   204                      status:
   205                        type: string
   206                      type:
   207                        type: string
   208                    type: object
   209                  type: array
   210                generations:
   211                  description: generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.
   212                  items:
   213                    description: GenerationStatus keeps track of the generation for a given resource so that decisions about forced updates can be made.
   214                    properties:
   215                      group:
   216                        description: group is the group of the thing you're tracking
   217                        type: string
   218                      hash:
   219                        description: hash is an optional field set for resources without generation that are content sensitive like secrets and configmaps
   220                        type: string
   221                      lastGeneration:
   222                        description: lastGeneration is the last generation of the workload controller involved
   223                        format: int64
   224                        type: integer
   225                      name:
   226                        description: name is the name of the thing you're tracking
   227                        type: string
   228                      namespace:
   229                        description: namespace is where the thing you're tracking is
   230                        type: string
   231                      resource:
   232                        description: resource is the resource type of the thing you're tracking
   233                        type: string
   234                    type: object
   235                  type: array
   236                observedGeneration:
   237                  description: observedGeneration is the last generation change you've dealt with
   238                  format: int64
   239                  type: integer
   240                readyReplicas:
   241                  description: readyReplicas indicates how many replicas are ready and at the desired state
   242                  format: int32
   243                  type: integer
   244                version:
   245                  description: version is the level this availability applies to
   246                  type: string
   247              type: object
   248          required:
   249            - spec
   250          type: object
   251      served: true
   252      storage: true
   253      subresources:
   254        status: {}

View as plain text