...

Text file src/edge-infra.dev/test/fixtures/crds/gcp/compute.cnrm.cloud.google.com_computedisks.yaml

Documentation: edge-infra.dev/test/fixtures/crds/gcp

     1---
     2apiVersion: apiextensions.k8s.io/v1
     3kind: CustomResourceDefinition
     4metadata:
     5  annotations:
     6    controller-gen.kubebuilder.io/version: (unknown)
     7  name: computedisks.compute.cnrm.cloud.google.com
     8spec:
     9  group: compute.cnrm.cloud.google.com
    10  names:
    11    kind: ComputeDisk
    12    listKind: ComputeDiskList
    13    plural: computedisks
    14    singular: computedisk
    15  scope: Namespaced
    16  versions:
    17  - name: v1beta1
    18    schema:
    19      openAPIV3Schema:
    20        description: ComputeDisk is the Schema for the compute API
    21        properties:
    22          apiVersion:
    23            description: |-
    24              APIVersion defines the versioned schema of this representation of an object.
    25              Servers should convert recognized schemas to the latest internal value, and
    26              may reject unrecognized values.
    27              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    28            type: string
    29          kind:
    30            description: |-
    31              Kind is a string value representing the REST resource this object represents.
    32              Servers may infer this from the endpoint the client submits requests to.
    33              Cannot be updated.
    34              In CamelCase.
    35              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    36            type: string
    37          metadata:
    38            type: object
    39          spec:
    40            properties:
    41              asyncPrimaryDisk:
    42                description: Immutable. A nested object resource.
    43                properties:
    44                  diskRef:
    45                    description: Immutable. Primary disk for asynchronous disk replication.
    46                    properties:
    47                      external:
    48                        description: The external name of the referenced resource
    49                        type: string
    50                      kind:
    51                        description: Kind of the referent.
    52                        type: string
    53                      name:
    54                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
    55                        type: string
    56                      namespace:
    57                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
    58                        type: string
    59                    type: object
    60                required:
    61                - diskRef
    62                type: object
    63              description:
    64                description: |-
    65                  Immutable. An optional description of this resource. Provide this property when
    66                  you create the resource.
    67                type: string
    68              diskEncryptionKey:
    69                description: |-
    70                  Immutable. Encrypts the disk using a customer-supplied encryption key.
    71
    72
    73                  After you encrypt a disk with a customer-supplied key, you must
    74                  provide the same key if you use the disk later (e.g. to create a disk
    75                  snapshot or an image, or to attach the disk to a virtual machine).
    76
    77
    78                  Customer-supplied encryption keys do not protect access to metadata of
    79                  the disk.
    80
    81
    82                  If you do not provide an encryption key when creating the disk, then
    83                  the disk will be encrypted using an automatically generated key and
    84                  you do not need to provide a key to use the disk later.
    85                properties:
    86                  kmsKeyRef:
    87                    description: |-
    88                      The encryption key used to encrypt the disk. Your project's Compute
    89                      Engine System service account
    90                      ('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com')
    91                      must have 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this
    92                      feature. See
    93                      https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
    94                    properties:
    95                      external:
    96                        description: The external name of the referenced resource
    97                        type: string
    98                      kind:
    99                        description: Kind of the referent.
   100                        type: string
   101                      name:
   102                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   103                        type: string
   104                      namespace:
   105                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   106                        type: string
   107                    type: object
   108                  kmsKeyServiceAccountRef:
   109                    description: |-
   110                      The service account used for the encryption request for the given KMS key.
   111                      If absent, the Compute Engine Service Agent service account is used.
   112                    properties:
   113                      external:
   114                        description: The external name of the referenced resource
   115                        type: string
   116                      kind:
   117                        description: Kind of the referent.
   118                        type: string
   119                      name:
   120                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   121                        type: string
   122                      namespace:
   123                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   124                        type: string
   125                    type: object
   126                  rawKey:
   127                    description: |-
   128                      Immutable. Specifies a 256-bit customer-supplied encryption key, encoded in
   129                      RFC 4648 base64 to either encrypt or decrypt this resource.
   130                    properties:
   131                      value:
   132                        description: Value of the field. Cannot be used if 'valueFrom'
   133                          is specified.
   134                        type: string
   135                      valueFrom:
   136                        description: Source for the field's value. Cannot be used
   137                          if 'value' is specified.
   138                        properties:
   139                          secretKeyRef:
   140                            description: Reference to a value with the given key in
   141                              the given Secret in the resource's namespace.
   142                            properties:
   143                              external:
   144                                description: The external name of the referenced resource
   145                                type: string
   146                              kind:
   147                                description: Kind of the referent.
   148                                type: string
   149                              name:
   150                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   151                                type: string
   152                              namespace:
   153                                description: 'Namespace of the referent. More info:
   154                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   155                                type: string
   156                            type: object
   157                        type: object
   158                    type: object
   159                  rsaEncryptedKey:
   160                    description: |-
   161                      Immutable. Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
   162                      customer-supplied encryption key to either encrypt or decrypt
   163                      this resource. You can provide either the rawKey or the rsaEncryptedKey.
   164                    properties:
   165                      value:
   166                        description: Value of the field. Cannot be used if 'valueFrom'
   167                          is specified.
   168                        type: string
   169                      valueFrom:
   170                        description: Source for the field's value. Cannot be used
   171                          if 'value' is specified.
   172                        properties:
   173                          secretKeyRef:
   174                            description: Reference to a value with the given key in
   175                              the given Secret in the resource's namespace.
   176                            properties:
   177                              external:
   178                                description: The external name of the referenced resource
   179                                type: string
   180                              kind:
   181                                description: Kind of the referent.
   182                                type: string
   183                              name:
   184                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   185                                type: string
   186                              namespace:
   187                                description: 'Namespace of the referent. More info:
   188                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   189                                type: string
   190                            type: object
   191                        type: object
   192                    type: object
   193                  sha256:
   194                    description: |-
   195                      The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
   196                      encryption key that protects this resource.
   197                    type: string
   198                type: object
   199              guestOsFeatures:
   200                description: |-
   201                  Immutable. A list of features to enable on the guest operating system.
   202                  Applicable only for bootable disks.
   203                items:
   204                  properties:
   205                    type:
   206                      description: 'Immutable. The type of supported feature. Read
   207                        [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features)
   208                        to see a list of available options. Possible values: ["MULTI_IP_SUBNET",
   209                        "SECURE_BOOT", "SEV_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE",
   210                        "WINDOWS", "GVNIC", "SEV_LIVE_MIGRATABLE", "SEV_SNP_CAPABLE",
   211                        "SUSPEND_RESUME_COMPATIBLE", "TDX_CAPABLE"].'
   212                      type: string
   213                  required:
   214                  - type
   215                  type: object
   216                type: array
   217              imageRef:
   218                description: The image from which to initialize this disk.
   219                properties:
   220                  external:
   221                    description: The external name of the referenced resource
   222                    type: string
   223                  kind:
   224                    description: Kind of the referent.
   225                    type: string
   226                  name:
   227                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   228                    type: string
   229                  namespace:
   230                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   231                    type: string
   232                type: object
   233              interface:
   234                description: DEPRECATED. This field is no longer in use, disk interfaces
   235                  will be automatically determined on attachment. To resolve this
   236                  issue, remove this field from your config. Immutable. Specifies
   237                  the disk interface to use for attaching this disk, which is either
   238                  SCSI or NVME. The default is SCSI.
   239                type: string
   240              licenses:
   241                description: Immutable. Any applicable license URI.
   242                items:
   243                  type: string
   244                type: array
   245              location:
   246                description: 'Location represents the geographical location of the
   247                  ComputeDisk. Specify a region name or a zone name. Reference: GCP
   248                  definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)'
   249                type: string
   250              multiWriter:
   251                description: Immutable. Indicates whether or not the disk can be read/write
   252                  attached to more than one instance.
   253                type: boolean
   254              physicalBlockSizeBytes:
   255                description: |-
   256                  Immutable. Physical block size of the persistent disk, in bytes. If not present
   257                  in a request, a default value is used. Currently supported sizes
   258                  are 4096 and 16384, other sizes may be added in the future.
   259                  If an unsupported value is requested, the error message will list
   260                  the supported values for the caller's project.
   261                type: integer
   262              projectRef:
   263                description: The project that this resource belongs to.
   264                properties:
   265                  external:
   266                    description: The external name of the referenced resource
   267                    type: string
   268                  kind:
   269                    description: Kind of the referent.
   270                    type: string
   271                  name:
   272                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   273                    type: string
   274                  namespace:
   275                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   276                    type: string
   277                type: object
   278              provisionedIops:
   279                description: Immutable. Indicates how many IOPS must be provisioned
   280                  for the disk.
   281                type: integer
   282              replicaZones:
   283                description: Immutable. URLs of the zones where the disk should be
   284                  replicated to.
   285                items:
   286                  type: string
   287                type: array
   288              resourceID:
   289                description: Immutable. Optional. The name of the resource. Used for
   290                  creation and acquisition. When unset, the value of `metadata.name`
   291                  is used as the default.
   292                type: string
   293              resourcePolicies:
   294                items:
   295                  properties:
   296                    external:
   297                      description: The external name of the referenced resource
   298                      type: string
   299                    kind:
   300                      description: Kind of the referent.
   301                      type: string
   302                    name:
   303                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   304                      type: string
   305                    namespace:
   306                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   307                      type: string
   308                  type: object
   309                type: array
   310              size:
   311                description: |-
   312                  Size of the persistent disk, specified in GB. You can specify this
   313                  field when creating a persistent disk using the 'image' or
   314                  'snapshot' parameter, or specify it alone to create an empty
   315                  persistent disk.
   316
   317
   318                  If you specify this field along with 'image' or 'snapshot',
   319                  the value must not be less than the size of the image
   320                  or the size of the snapshot.
   321
   322
   323                  Upsizing the disk is mutable, but downsizing the disk
   324                  requires re-creating the resource.
   325                type: integer
   326              snapshotRef:
   327                description: The source snapshot used to create this disk.
   328                properties:
   329                  external:
   330                    description: The external name of the referenced resource
   331                    type: string
   332                  kind:
   333                    description: Kind of the referent.
   334                    type: string
   335                  name:
   336                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   337                    type: string
   338                  namespace:
   339                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   340                    type: string
   341                type: object
   342              sourceDiskRef:
   343                description: The source disk used to create this disk.
   344                properties:
   345                  external:
   346                    description: The external name of the referenced resource
   347                    type: string
   348                  kind:
   349                    description: Kind of the referent.
   350                    type: string
   351                  name:
   352                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   353                    type: string
   354                  namespace:
   355                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   356                    type: string
   357                type: object
   358              sourceImageEncryptionKey:
   359                description: |-
   360                  Immutable. The customer-supplied encryption key of the source image. Required if
   361                  the source image is protected by a customer-supplied encryption key.
   362                properties:
   363                  kmsKeyRef:
   364                    description: |-
   365                      The encryption key used to encrypt the disk. Your project's Compute
   366                      Engine System service account
   367                      ('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com')
   368                      must have 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this
   369                      feature. See
   370                      https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
   371                    properties:
   372                      external:
   373                        description: The external name of the referenced resource
   374                        type: string
   375                      kind:
   376                        description: Kind of the referent.
   377                        type: string
   378                      name:
   379                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   380                        type: string
   381                      namespace:
   382                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   383                        type: string
   384                    type: object
   385                  kmsKeyServiceAccountRef:
   386                    description: |-
   387                      The service account used for the encryption request for the given KMS key.
   388                      If absent, the Compute Engine Service Agent service account is used.
   389                    properties:
   390                      external:
   391                        description: The external name of the referenced resource
   392                        type: string
   393                      kind:
   394                        description: Kind of the referent.
   395                        type: string
   396                      name:
   397                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   398                        type: string
   399                      namespace:
   400                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   401                        type: string
   402                    type: object
   403                  rawKey:
   404                    description: |-
   405                      Immutable. Specifies a 256-bit customer-supplied encryption key, encoded in
   406                      RFC 4648 base64 to either encrypt or decrypt this resource.
   407                    type: string
   408                  sha256:
   409                    description: |-
   410                      The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
   411                      encryption key that protects this resource.
   412                    type: string
   413                type: object
   414              sourceSnapshotEncryptionKey:
   415                description: |-
   416                  Immutable. The customer-supplied encryption key of the source snapshot. Required
   417                  if the source snapshot is protected by a customer-supplied encryption
   418                  key.
   419                properties:
   420                  kmsKeyRef:
   421                    description: |-
   422                      The encryption key used to encrypt the disk. Your project's Compute
   423                      Engine System service account
   424                      ('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com')
   425                      must have 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this
   426                      feature. See
   427                      https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
   428                    properties:
   429                      external:
   430                        description: The external name of the referenced resource
   431                        type: string
   432                      kind:
   433                        description: Kind of the referent.
   434                        type: string
   435                      name:
   436                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   437                        type: string
   438                      namespace:
   439                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   440                        type: string
   441                    type: object
   442                  kmsKeyServiceAccountRef:
   443                    description: |-
   444                      The service account used for the encryption request for the given KMS key.
   445                      If absent, the Compute Engine Service Agent service account is used.
   446                    properties:
   447                      external:
   448                        description: The external name of the referenced resource
   449                        type: string
   450                      kind:
   451                        description: Kind of the referent.
   452                        type: string
   453                      name:
   454                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   455                        type: string
   456                      namespace:
   457                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   458                        type: string
   459                    type: object
   460                  rawKey:
   461                    description: |-
   462                      Immutable. Specifies a 256-bit customer-supplied encryption key, encoded in
   463                      RFC 4648 base64 to either encrypt or decrypt this resource.
   464                    type: string
   465                  sha256:
   466                    description: |-
   467                      The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
   468                      encryption key that protects this resource.
   469                    type: string
   470                type: object
   471              type:
   472                description: |-
   473                  Immutable. URL of the disk type resource describing which disk type to use to
   474                  create the disk. Provide this when creating the disk.
   475                type: string
   476            required:
   477            - location
   478            type: object
   479          status:
   480            properties:
   481              conditions:
   482                description: |-
   483                  Conditions represent the latest available observations of the
   484                  ComputeDisk's current state.
   485                items:
   486                  properties:
   487                    lastTransitionTime:
   488                      description: Last time the condition transitioned from one status
   489                        to another.
   490                      type: string
   491                    message:
   492                      description: Human-readable message indicating details about
   493                        last transition.
   494                      type: string
   495                    reason:
   496                      description: |-
   497                        Unique, one-word, CamelCase reason for the condition's last
   498                        transition.
   499                      type: string
   500                    status:
   501                      description: Status is the status of the condition. Can be True,
   502                        False, Unknown.
   503                      type: string
   504                    type:
   505                      description: Type is the type of the condition.
   506                      type: string
   507                  type: object
   508                type: array
   509              creationTimestamp:
   510                description: Creation timestamp in RFC3339 text format.
   511                type: string
   512              labelFingerprint:
   513                description: |-
   514                  The fingerprint used for optimistic locking of this resource.  Used
   515                  internally during updates.
   516                type: string
   517              lastAttachTimestamp:
   518                description: Last attach timestamp in RFC3339 text format.
   519                type: string
   520              lastDetachTimestamp:
   521                description: Last detach timestamp in RFC3339 text format.
   522                type: string
   523              observedGeneration:
   524                description: ObservedGeneration is the generation of the resource
   525                  that was most recently observed by the Config Connector controller.
   526                  If this is equal to metadata.generation, then that means that the
   527                  current reported status reflects the most recent desired state of
   528                  the resource.
   529                type: integer
   530              selfLink:
   531                type: string
   532              sourceDiskId:
   533                description: |-
   534                  The ID value of the disk used to create this image. This value may
   535                  be used to determine whether the image was taken from the current
   536                  or a previous instance of a given disk name.
   537                type: string
   538              sourceImageId:
   539                description: |-
   540                  The ID value of the image used to create this disk. This value
   541                  identifies the exact image that was used to create this persistent
   542                  disk. For example, if you created the persistent disk from an image
   543                  that was later deleted and recreated under the same name, the source
   544                  image ID would identify the exact version of the image that was used.
   545                type: string
   546              sourceSnapshotId:
   547                description: |-
   548                  The unique ID of the snapshot used to create this disk. This value
   549                  identifies the exact snapshot that was used to create this persistent
   550                  disk. For example, if you created the persistent disk from a snapshot
   551                  that was later deleted and recreated under the same name, the source
   552                  snapshot ID would identify the exact version of the snapshot that was
   553                  used.
   554                type: string
   555              users:
   556                description: |-
   557                  Links to the users of the disk (attached instances) in form:
   558                  project/zones/zone/instances/instance.
   559                items:
   560                  type: string
   561                type: array
   562            type: object
   563        type: object
   564    served: true
   565    storage: true

View as plain text