...

Text file src/edge-infra.dev/test/fixtures/crds/gcp/container.cnrm.cloud.google.com_containernodepools.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: containernodepools.container.cnrm.cloud.google.com
     8spec:
     9  group: container.cnrm.cloud.google.com
    10  names:
    11    kind: ContainerNodePool
    12    listKind: ContainerNodePoolList
    13    plural: containernodepools
    14    singular: containernodepool
    15  scope: Namespaced
    16  versions:
    17  - name: v1beta1
    18    schema:
    19      openAPIV3Schema:
    20        description: ContainerNodePool is the Schema for the container 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              autoscaling:
    42                description: Configuration required by cluster autoscaler to adjust
    43                  the size of the node pool to the current cluster usage. To disable
    44                  autoscaling, set minNodeCount and maxNodeCount to 0.
    45                properties:
    46                  locationPolicy:
    47                    description: Location policy specifies the algorithm used when
    48                      scaling-up the node pool. "BALANCED" - Is a best effort policy
    49                      that aims to balance the sizes of available zones. "ANY" - Instructs
    50                      the cluster autoscaler to prioritize utilization of unused reservations,
    51                      and reduces preemption risk for Spot VMs.
    52                    type: string
    53                  maxNodeCount:
    54                    description: Maximum number of nodes per zone in the node pool.
    55                      Must be >= min_node_count. Cannot be used with total limits.
    56                    type: integer
    57                  minNodeCount:
    58                    description: Minimum number of nodes per zone in the node pool.
    59                      Must be >=0 and <= max_node_count. Cannot be used with total
    60                      limits.
    61                    type: integer
    62                  totalMaxNodeCount:
    63                    description: Maximum number of all nodes in the node pool. Must
    64                      be >= total_min_node_count. Cannot be used with per zone limits.
    65                    type: integer
    66                  totalMinNodeCount:
    67                    description: Minimum number of all nodes in the node pool. Must
    68                      be >=0 and <= total_max_node_count. Cannot be used with per
    69                      zone limits.
    70                    type: integer
    71                type: object
    72              clusterRef:
    73                properties:
    74                  external:
    75                    description: The external name of the referenced resource
    76                    type: string
    77                  kind:
    78                    description: Kind of the referent.
    79                    type: string
    80                  name:
    81                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
    82                    type: string
    83                  namespace:
    84                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
    85                    type: string
    86                type: object
    87              initialNodeCount:
    88                description: Immutable. The initial number of nodes for the pool.
    89                  In regional or multi-zonal clusters, this is the number of nodes
    90                  per zone. Changing this will force recreation of the resource.
    91                type: integer
    92              location:
    93                description: Immutable. The location (region or zone) of the cluster.
    94                type: string
    95              management:
    96                description: Node management configuration, wherein auto-repair and
    97                  auto-upgrade is configured.
    98                properties:
    99                  autoRepair:
   100                    description: Whether the nodes will be automatically repaired.
   101                    type: boolean
   102                  autoUpgrade:
   103                    description: Whether the nodes will be automatically upgraded.
   104                    type: boolean
   105                type: object
   106              maxPodsPerNode:
   107                description: Immutable. The maximum number of pods per node in this
   108                  node pool. Note that this does not work on node pools which are
   109                  "route-based" - that is, node pools belonging to clusters that do
   110                  not have IP Aliasing enabled.
   111                type: integer
   112              namePrefix:
   113                description: Immutable. Creates a unique name for the node pool beginning
   114                  with the specified prefix. Conflicts with name.
   115                type: string
   116              networkConfig:
   117                description: Networking configuration for this NodePool. If specified,
   118                  it overrides the cluster-level defaults.
   119                properties:
   120                  createPodRange:
   121                    description: Immutable. Whether to create a new range for pod
   122                      IPs in this node pool. Defaults are provided for pod_range and
   123                      pod_ipv4_cidr_block if they are not specified.
   124                    type: boolean
   125                  enablePrivateNodes:
   126                    description: Whether nodes have internal IP addresses only.
   127                    type: boolean
   128                  podCidrOverprovisionConfig:
   129                    description: Immutable. Configuration for node-pool level pod
   130                      cidr overprovision. If not set, the cluster level setting will
   131                      be inherited.
   132                    properties:
   133                      disabled:
   134                        type: boolean
   135                    required:
   136                    - disabled
   137                    type: object
   138                  podIpv4CidrBlock:
   139                    description: Immutable. The IP address range for pod IPs in this
   140                      node pool. Only applicable if create_pod_range is true. Set
   141                      to blank to have a range chosen with the default size. Set to
   142                      /netmask (e.g. /14) to have a range chosen with a specific netmask.
   143                      Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific
   144                      range to use.
   145                    type: string
   146                  podRange:
   147                    description: Immutable. The ID of the secondary range for pod
   148                      IPs. If create_pod_range is true, this ID is used for the new
   149                      range. If create_pod_range is false, uses an existing secondary
   150                      range with this ID.
   151                    type: string
   152                type: object
   153              nodeConfig:
   154                description: Immutable. The configuration of the nodepool.
   155                properties:
   156                  advancedMachineFeatures:
   157                    description: Immutable. Specifies options for controlling advanced
   158                      machine features.
   159                    properties:
   160                      threadsPerCore:
   161                        description: Immutable. The number of threads per physical
   162                          core. To disable simultaneous multithreading (SMT) set this
   163                          to 1. If unset, the maximum number of threads supported
   164                          per core by the underlying processor is assumed.
   165                        type: integer
   166                    required:
   167                    - threadsPerCore
   168                    type: object
   169                  bootDiskKMSCryptoKeyRef:
   170                    properties:
   171                      external:
   172                        description: The external name of the referenced resource
   173                        type: string
   174                      kind:
   175                        description: Kind of the referent.
   176                        type: string
   177                      name:
   178                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   179                        type: string
   180                      namespace:
   181                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   182                        type: string
   183                    type: object
   184                  diskSizeGb:
   185                    description: Immutable. Size of the disk attached to each node,
   186                      specified in GB. The smallest allowed disk size is 10GB.
   187                    type: integer
   188                  diskType:
   189                    description: Immutable. Type of the disk attached to each node.
   190                      Such as pd-standard, pd-balanced or pd-ssd.
   191                    type: string
   192                  ephemeralStorageConfig:
   193                    description: Immutable. Parameters for the ephemeral storage filesystem.
   194                      If unspecified, ephemeral storage is backed by the boot disk.
   195                    properties:
   196                      localSsdCount:
   197                        description: Immutable. Number of local SSDs to use to back
   198                          ephemeral storage. Uses NVMe interfaces. Each local SSD
   199                          must be 375 or 3000 GB in size, and all local SSDs must
   200                          share the same size.
   201                        type: integer
   202                    required:
   203                    - localSsdCount
   204                    type: object
   205                  ephemeralStorageLocalSsdConfig:
   206                    description: Immutable. Parameters for the ephemeral storage filesystem.
   207                      If unspecified, ephemeral storage is backed by the boot disk.
   208                    properties:
   209                      localSsdCount:
   210                        description: Immutable. Number of local SSDs to use to back
   211                          ephemeral storage. Uses NVMe interfaces. Each local SSD
   212                          must be 375 or 3000 GB in size, and all local SSDs must
   213                          share the same size.
   214                        type: integer
   215                    required:
   216                    - localSsdCount
   217                    type: object
   218                  gcfsConfig:
   219                    description: Immutable. GCFS configuration for this node.
   220                    properties:
   221                      enabled:
   222                        description: Immutable. Whether or not GCFS is enabled.
   223                        type: boolean
   224                    required:
   225                    - enabled
   226                    type: object
   227                  guestAccelerator:
   228                    description: Immutable. List of the type and count of accelerator
   229                      cards attached to the instance.
   230                    items:
   231                      properties:
   232                        count:
   233                          description: Immutable. The number of the accelerator cards
   234                            exposed to an instance.
   235                          type: integer
   236                        gpuPartitionSize:
   237                          description: Immutable. Size of partitions to create on
   238                            the GPU. Valid values are described in the NVIDIA mig
   239                            user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
   240                          type: string
   241                        gpuSharingConfig:
   242                          description: Immutable. Configuration for GPU sharing.
   243                          properties:
   244                            gpuSharingStrategy:
   245                              description: Immutable. The type of GPU sharing strategy
   246                                to enable on the GPU node. Possible values are described
   247                                in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig).
   248                              type: string
   249                            maxSharedClientsPerGpu:
   250                              description: Immutable. The maximum number of containers
   251                                that can share a GPU.
   252                              type: integer
   253                          required:
   254                          - gpuSharingStrategy
   255                          - maxSharedClientsPerGpu
   256                          type: object
   257                        type:
   258                          description: Immutable. The accelerator type resource name.
   259                          type: string
   260                      required:
   261                      - count
   262                      - type
   263                      type: object
   264                    type: array
   265                  gvnic:
   266                    description: Immutable. Enable or disable gvnic in the node pool.
   267                    properties:
   268                      enabled:
   269                        description: Immutable. Whether or not gvnic is enabled.
   270                        type: boolean
   271                    required:
   272                    - enabled
   273                    type: object
   274                  imageType:
   275                    description: The image type to use for this node. Note that for
   276                      a given image type, the latest version of it will be used.
   277                    type: string
   278                  kubeletConfig:
   279                    description: Node kubelet configs.
   280                    properties:
   281                      cpuCfsQuota:
   282                        description: Enable CPU CFS quota enforcement for containers
   283                          that specify CPU limits.
   284                        type: boolean
   285                      cpuCfsQuotaPeriod:
   286                        description: Set the CPU CFS quota period value 'cpu.cfs_period_us'.
   287                        type: string
   288                      cpuManagerPolicy:
   289                        description: Control the CPU management policy on the node.
   290                        type: string
   291                      podPidsLimit:
   292                        description: Controls the maximum number of processes allowed
   293                          to run in a pod.
   294                        type: integer
   295                    required:
   296                    - cpuManagerPolicy
   297                    type: object
   298                  labels:
   299                    additionalProperties:
   300                      type: string
   301                    description: The map of Kubernetes labels (key/value pairs) to
   302                      be applied to each node. These will added in addition to any
   303                      default label(s) that Kubernetes may apply to the node.
   304                    type: object
   305                  linuxNodeConfig:
   306                    description: Parameters that can be configured on Linux nodes.
   307                    properties:
   308                      sysctls:
   309                        additionalProperties:
   310                          type: string
   311                        description: The Linux kernel parameters to be applied to
   312                          the nodes and all pods running on the nodes.
   313                        type: object
   314                    required:
   315                    - sysctls
   316                    type: object
   317                  localNvmeSsdBlockConfig:
   318                    description: Immutable. Parameters for raw-block local NVMe SSDs.
   319                    properties:
   320                      localSsdCount:
   321                        description: Immutable. Number of raw-block local NVMe SSD
   322                          disks to be attached to the node. Each local SSD is 375
   323                          GB in size.
   324                        type: integer
   325                    required:
   326                    - localSsdCount
   327                    type: object
   328                  localSsdCount:
   329                    description: Immutable. The number of local SSD disks to be attached
   330                      to the node.
   331                    type: integer
   332                  loggingVariant:
   333                    description: Type of logging agent that is used as the default
   334                      value for node pools in the cluster. Valid values include DEFAULT
   335                      and MAX_THROUGHPUT.
   336                    type: string
   337                  machineType:
   338                    description: Immutable. The name of a Google Compute Engine machine
   339                      type.
   340                    type: string
   341                  metadata:
   342                    additionalProperties:
   343                      type: string
   344                    description: Immutable. The metadata key/value pairs assigned
   345                      to instances in the cluster.
   346                    type: object
   347                  minCpuPlatform:
   348                    description: Immutable. Minimum CPU platform to be used by this
   349                      instance. The instance may be scheduled on the specified or
   350                      newer CPU platform.
   351                    type: string
   352                  nodeGroupRef:
   353                    description: |-
   354                      Immutable. Setting this field will assign instances
   355                      of this pool to run on the specified node group. This is useful
   356                      for running workloads on sole tenant nodes.
   357                    properties:
   358                      external:
   359                        description: The external name of the referenced resource
   360                        type: string
   361                      kind:
   362                        description: Kind of the referent.
   363                        type: string
   364                      name:
   365                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   366                        type: string
   367                      namespace:
   368                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   369                        type: string
   370                    type: object
   371                  oauthScopes:
   372                    description: Immutable. The set of Google API scopes to be made
   373                      available on all of the node VMs.
   374                    items:
   375                      type: string
   376                    type: array
   377                  preemptible:
   378                    description: Immutable. Whether the nodes are created as preemptible
   379                      VM instances.
   380                    type: boolean
   381                  reservationAffinity:
   382                    description: Immutable. The reservation affinity configuration
   383                      for the node pool.
   384                    properties:
   385                      consumeReservationType:
   386                        description: Immutable. Corresponds to the type of reservation
   387                          consumption.
   388                        type: string
   389                      key:
   390                        description: Immutable. The label key of a reservation resource.
   391                        type: string
   392                      values:
   393                        description: Immutable. The label values of the reservation
   394                          resource.
   395                        items:
   396                          type: string
   397                        type: array
   398                    required:
   399                    - consumeReservationType
   400                    type: object
   401                  resourceLabels:
   402                    additionalProperties:
   403                      type: string
   404                    description: The GCE resource labels (a map of key/value pairs)
   405                      to be applied to the node pool.
   406                    type: object
   407                  sandboxConfig:
   408                    description: Immutable. Sandbox configuration for this node.
   409                    properties:
   410                      sandboxType:
   411                        description: Type of the sandbox to use for the node (e.g.
   412                          'gvisor').
   413                        type: string
   414                    required:
   415                    - sandboxType
   416                    type: object
   417                  serviceAccountRef:
   418                    properties:
   419                      external:
   420                        description: The external name of the referenced resource
   421                        type: string
   422                      kind:
   423                        description: Kind of the referent.
   424                        type: string
   425                      name:
   426                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   427                        type: string
   428                      namespace:
   429                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   430                        type: string
   431                    type: object
   432                  shieldedInstanceConfig:
   433                    description: Immutable. Shielded Instance options.
   434                    properties:
   435                      enableIntegrityMonitoring:
   436                        description: Immutable. Defines whether the instance has integrity
   437                          monitoring enabled.
   438                        type: boolean
   439                      enableSecureBoot:
   440                        description: Immutable. Defines whether the instance has Secure
   441                          Boot enabled.
   442                        type: boolean
   443                    type: object
   444                  spot:
   445                    description: Immutable. Whether the nodes are created as spot
   446                      VM instances.
   447                    type: boolean
   448                  tags:
   449                    description: The list of instance tags applied to all nodes.
   450                    items:
   451                      type: string
   452                    type: array
   453                  taint:
   454                    description: Immutable. List of Kubernetes taints to be applied
   455                      to each node.
   456                    items:
   457                      properties:
   458                        effect:
   459                          description: Immutable. Effect for taint.
   460                          type: string
   461                        key:
   462                          description: Immutable. Key for taint.
   463                          type: string
   464                        value:
   465                          description: Immutable. Value for taint.
   466                          type: string
   467                      required:
   468                      - effect
   469                      - key
   470                      - value
   471                      type: object
   472                    type: array
   473                  workloadMetadataConfig:
   474                    description: The workload metadata configuration for this node.
   475                    properties:
   476                      mode:
   477                        description: Mode is the configuration for how to expose metadata
   478                          to workloads running on the node.
   479                        type: string
   480                      nodeMetadata:
   481                        description: DEPRECATED. Deprecated in favor of mode. NodeMetadata
   482                          is the configuration for how to expose metadata to the workloads
   483                          running on the node.
   484                        type: string
   485                    type: object
   486                type: object
   487              nodeCount:
   488                description: The number of nodes per instance group. This field can
   489                  be used to update the number of nodes per instance group but should
   490                  not be used alongside autoscaling.
   491                type: integer
   492              nodeLocations:
   493                description: The list of zones in which the node pool's nodes should
   494                  be located. Nodes must be in the region of their regional cluster
   495                  or in the same region as their cluster's zone for zonal clusters.
   496                  If unspecified, the cluster-level node_locations will be used.
   497                items:
   498                  type: string
   499                type: array
   500              placementPolicy:
   501                description: Immutable. Specifies the node placement policy.
   502                properties:
   503                  type:
   504                    description: Type defines the type of placement policy.
   505                    type: string
   506                required:
   507                - type
   508                type: object
   509              resourceID:
   510                description: Immutable. Optional. The name of the resource. Used for
   511                  creation and acquisition. When unset, the value of `metadata.name`
   512                  is used as the default.
   513                type: string
   514              upgradeSettings:
   515                description: Specify node upgrade settings to change how many nodes
   516                  GKE attempts to upgrade at once. The number of nodes upgraded simultaneously
   517                  is the sum of max_surge and max_unavailable. The maximum number
   518                  of nodes upgraded simultaneously is limited to 20.
   519                properties:
   520                  blueGreenSettings:
   521                    description: Settings for BlueGreen node pool upgrade.
   522                    properties:
   523                      nodePoolSoakDuration:
   524                        description: Time needed after draining entire blue pool.
   525                          After this period, blue pool will be cleaned up.
   526                        type: string
   527                      standardRolloutPolicy:
   528                        description: Standard rollout policy is the default policy
   529                          for blue-green.
   530                        properties:
   531                          batchNodeCount:
   532                            description: Number of blue nodes to drain in a batch.
   533                            type: integer
   534                          batchPercentage:
   535                            description: Percentage of the blue pool nodes to drain
   536                              in a batch.
   537                            type: number
   538                          batchSoakDuration:
   539                            description: Soak time after each batch gets drained.
   540                            type: string
   541                        type: object
   542                    required:
   543                    - standardRolloutPolicy
   544                    type: object
   545                  maxSurge:
   546                    description: The number of additional nodes that can be added
   547                      to the node pool during an upgrade. Increasing max_surge raises
   548                      the number of nodes that can be upgraded simultaneously. Can
   549                      be set to 0 or greater.
   550                    type: integer
   551                  maxUnavailable:
   552                    description: The number of nodes that can be simultaneously unavailable
   553                      during an upgrade. Increasing max_unavailable raises the number
   554                      of nodes that can be upgraded in parallel. Can be set to 0 or
   555                      greater.
   556                    type: integer
   557                  strategy:
   558                    description: Update strategy for the given nodepool.
   559                    type: string
   560                type: object
   561              version:
   562                type: string
   563            required:
   564            - clusterRef
   565            - location
   566            type: object
   567          status:
   568            properties:
   569              conditions:
   570                description: |-
   571                  Conditions represent the latest available observations of the
   572                  ContainerNodePool's current state.
   573                items:
   574                  properties:
   575                    lastTransitionTime:
   576                      description: Last time the condition transitioned from one status
   577                        to another.
   578                      type: string
   579                    message:
   580                      description: Human-readable message indicating details about
   581                        last transition.
   582                      type: string
   583                    reason:
   584                      description: |-
   585                        Unique, one-word, CamelCase reason for the condition's last
   586                        transition.
   587                      type: string
   588                    status:
   589                      description: Status is the status of the condition. Can be True,
   590                        False, Unknown.
   591                      type: string
   592                    type:
   593                      description: Type is the type of the condition.
   594                      type: string
   595                  type: object
   596                type: array
   597              instanceGroupUrls:
   598                description: The resource URLs of the managed instance groups associated
   599                  with this node pool.
   600                items:
   601                  type: string
   602                type: array
   603              managedInstanceGroupUrls:
   604                description: List of instance group URLs which have been assigned
   605                  to this node pool.
   606                items:
   607                  type: string
   608                type: array
   609              observedGeneration:
   610                description: ObservedGeneration is the generation of the resource
   611                  that was most recently observed by the Config Connector controller.
   612                  If this is equal to metadata.generation, then that means that the
   613                  current reported status reflects the most recent desired state of
   614                  the resource.
   615                type: integer
   616              operation:
   617                type: string
   618            type: object
   619        type: object
   620    served: true
   621    storage: true

View as plain text