...
1# Copyright 2020 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15apiVersion: apiextensions.k8s.io/v1
16kind: CustomResourceDefinition
17metadata:
18 annotations:
19 cnrm.cloud.google.com/version: 1.106.0
20 creationTimestamp: null
21 labels:
22 cnrm.cloud.google.com/managed-by-kcc: "true"
23 cnrm.cloud.google.com/stability-level: stable
24 cnrm.cloud.google.com/system: "true"
25 cnrm.cloud.google.com/tf2crd: "true"
26 name: computesnapshots.compute.cnrm.cloud.google.com
27spec:
28 group: compute.cnrm.cloud.google.com
29 names:
30 categories:
31 - gcp
32 kind: ComputeSnapshot
33 plural: computesnapshots
34 shortNames:
35 - gcpcomputesnapshot
36 - gcpcomputesnapshots
37 singular: computesnapshot
38 scope: Namespaced
39 versions:
40 - additionalPrinterColumns:
41 - jsonPath: .metadata.creationTimestamp
42 name: Age
43 type: date
44 - description: When 'True', the most recent reconcile of the resource succeeded
45 jsonPath: .status.conditions[?(@.type=='Ready')].status
46 name: Ready
47 type: string
48 - description: The reason for the value in 'Ready'
49 jsonPath: .status.conditions[?(@.type=='Ready')].reason
50 name: Status
51 type: string
52 - description: The last transition time for the value in 'Status'
53 jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
54 name: Status Age
55 type: date
56 name: v1beta1
57 schema:
58 openAPIV3Schema:
59 properties:
60 apiVersion:
61 description: 'apiVersion defines the versioned schema of this representation
62 of an object. Servers should convert recognized schemas to the latest
63 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
64 type: string
65 kind:
66 description: 'kind is a string value representing the REST resource this
67 object represents. Servers may infer this from the endpoint the client
68 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
69 type: string
70 metadata:
71 type: object
72 spec:
73 properties:
74 chainName:
75 description: |-
76 Immutable. Creates the new snapshot in the snapshot chain labeled with the
77 specified name. The chain name must be 1-63 characters long and
78 comply with RFC1035. This is an uncommon option only for advanced
79 service owners who needs to create separate snapshot chains, for
80 example, for chargeback tracking. When you describe your snapshot
81 resource, this field is visible only if it has a non-empty value.
82 type: string
83 description:
84 description: Immutable. An optional description of this resource.
85 type: string
86 resourceID:
87 description: Immutable. Optional. The name of the resource. Used for
88 creation and acquisition. When unset, the value of `metadata.name`
89 is used as the default.
90 type: string
91 snapshotEncryptionKey:
92 description: |-
93 Immutable. Encrypts the snapshot using a customer-supplied encryption key.
94
95 After you encrypt a snapshot using a customer-supplied key, you must
96 provide the same key if you use the snapshot later. For example, you
97 must provide the encryption key when you create a disk from the
98 encrypted snapshot in a future request.
99
100 Customer-supplied encryption keys do not protect access to metadata of
101 the snapshot.
102
103 If you do not provide an encryption key when creating the snapshot,
104 then the snapshot will be encrypted using an automatically generated
105 key and you do not need to provide a key to use the snapshot later.
106 properties:
107 kmsKeyRef:
108 description: The encryption key that is stored in Google Cloud
109 KMS.
110 oneOf:
111 - not:
112 required:
113 - external
114 required:
115 - name
116 - not:
117 anyOf:
118 - required:
119 - name
120 - required:
121 - namespace
122 required:
123 - external
124 properties:
125 external:
126 description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey`
127 resource.'
128 type: string
129 name:
130 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
131 type: string
132 namespace:
133 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
134 type: string
135 type: object
136 kmsKeyServiceAccountRef:
137 description: |-
138 The service account used for the encryption request for the given KMS key.
139 If absent, the Compute Engine Service Agent service account is used.
140 oneOf:
141 - not:
142 required:
143 - external
144 required:
145 - name
146 - not:
147 anyOf:
148 - required:
149 - name
150 - required:
151 - namespace
152 required:
153 - external
154 properties:
155 external:
156 description: 'Allowed value: The `email` field of an `IAMServiceAccount`
157 resource.'
158 type: string
159 name:
160 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
161 type: string
162 namespace:
163 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
164 type: string
165 type: object
166 rawKey:
167 description: |-
168 Immutable. Specifies a 256-bit customer-supplied encryption key, encoded in
169 RFC 4648 base64 to either encrypt or decrypt this resource.
170 oneOf:
171 - not:
172 required:
173 - valueFrom
174 required:
175 - value
176 - not:
177 required:
178 - value
179 required:
180 - valueFrom
181 properties:
182 value:
183 description: Value of the field. Cannot be used if 'valueFrom'
184 is specified.
185 type: string
186 valueFrom:
187 description: Source for the field's value. Cannot be used
188 if 'value' is specified.
189 properties:
190 secretKeyRef:
191 description: Reference to a value with the given key in
192 the given Secret in the resource's namespace.
193 properties:
194 key:
195 description: Key that identifies the value to be extracted.
196 type: string
197 name:
198 description: Name of the Secret to extract a value
199 from.
200 type: string
201 required:
202 - name
203 - key
204 type: object
205 type: object
206 type: object
207 sha256:
208 description: |-
209 The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
210 encryption key that protects this resource.
211 type: string
212 type: object
213 sourceDiskEncryptionKey:
214 description: |-
215 Immutable. The customer-supplied encryption key of the source snapshot. Required
216 if the source snapshot is protected by a customer-supplied encryption
217 key.
218 properties:
219 kmsKeyServiceAccountRef:
220 description: |-
221 The service account used for the encryption request for the given KMS key.
222 If absent, the Compute Engine Service Agent service account is used.
223 oneOf:
224 - not:
225 required:
226 - external
227 required:
228 - name
229 - not:
230 anyOf:
231 - required:
232 - name
233 - required:
234 - namespace
235 required:
236 - external
237 properties:
238 external:
239 description: 'Allowed value: The `email` field of an `IAMServiceAccount`
240 resource.'
241 type: string
242 name:
243 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
244 type: string
245 namespace:
246 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
247 type: string
248 type: object
249 rawKey:
250 description: |-
251 Immutable. Specifies a 256-bit customer-supplied encryption key, encoded in
252 RFC 4648 base64 to either encrypt or decrypt this resource.
253 oneOf:
254 - not:
255 required:
256 - valueFrom
257 required:
258 - value
259 - not:
260 required:
261 - value
262 required:
263 - valueFrom
264 properties:
265 value:
266 description: Value of the field. Cannot be used if 'valueFrom'
267 is specified.
268 type: string
269 valueFrom:
270 description: Source for the field's value. Cannot be used
271 if 'value' is specified.
272 properties:
273 secretKeyRef:
274 description: Reference to a value with the given key in
275 the given Secret in the resource's namespace.
276 properties:
277 key:
278 description: Key that identifies the value to be extracted.
279 type: string
280 name:
281 description: Name of the Secret to extract a value
282 from.
283 type: string
284 required:
285 - name
286 - key
287 type: object
288 type: object
289 type: object
290 type: object
291 sourceDiskRef:
292 description: A reference to the disk used to create this snapshot.
293 oneOf:
294 - not:
295 required:
296 - external
297 required:
298 - name
299 - not:
300 anyOf:
301 - required:
302 - name
303 - required:
304 - namespace
305 required:
306 - external
307 properties:
308 external:
309 description: 'Allowed value: The `name` field of a `ComputeDisk`
310 resource.'
311 type: string
312 name:
313 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
314 type: string
315 namespace:
316 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
317 type: string
318 type: object
319 storageLocations:
320 description: Immutable. Cloud Storage bucket storage location of the
321 snapshot (regional or multi-regional).
322 items:
323 type: string
324 type: array
325 zone:
326 description: Immutable. A reference to the zone where the disk is
327 hosted.
328 type: string
329 required:
330 - sourceDiskRef
331 type: object
332 status:
333 properties:
334 conditions:
335 description: Conditions represent the latest available observation
336 of the resource's current state.
337 items:
338 properties:
339 lastTransitionTime:
340 description: Last time the condition transitioned from one status
341 to another.
342 type: string
343 message:
344 description: Human-readable message indicating details about
345 last transition.
346 type: string
347 reason:
348 description: Unique, one-word, CamelCase reason for the condition's
349 last transition.
350 type: string
351 status:
352 description: Status is the status of the condition. Can be True,
353 False, Unknown.
354 type: string
355 type:
356 description: Type is the type of the condition.
357 type: string
358 type: object
359 type: array
360 creationTimestamp:
361 description: Creation timestamp in RFC3339 text format.
362 type: string
363 diskSizeGb:
364 description: Size of the snapshot, specified in GB.
365 type: integer
366 labelFingerprint:
367 description: |-
368 The fingerprint used for optimistic locking of this resource. Used
369 internally during updates.
370 type: string
371 licenses:
372 description: |-
373 A list of public visible licenses that apply to this snapshot. This
374 can be because the original image had licenses attached (such as a
375 Windows image). snapshotEncryptionKey nested object Encrypts the
376 snapshot using a customer-supplied encryption key.
377 items:
378 type: string
379 type: array
380 observedGeneration:
381 description: ObservedGeneration is the generation of the resource
382 that was most recently observed by the Config Connector controller.
383 If this is equal to metadata.generation, then that means that the
384 current reported status reflects the most recent desired state of
385 the resource.
386 type: integer
387 selfLink:
388 type: string
389 snapshotId:
390 description: The unique identifier for the resource.
391 type: integer
392 storageBytes:
393 description: |-
394 A size of the storage used by the snapshot. As snapshots share
395 storage, this number is expected to change with snapshot
396 creation/deletion.
397 type: integer
398 type: object
399 required:
400 - spec
401 type: object
402 served: true
403 storage: true
404 subresources:
405 status: {}
406status:
407 acceptedNames:
408 kind: ""
409 plural: ""
410 conditions: []
411 storedVersions: []
View as plain text