...
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