Group container.gcp.crossplane.io

Version v1alpha1

Kind NodePool

A NodePool is a managed resource that represents a Google Kubernetes Engine node pool.


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

Type string

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

Type string

Type object

A NodePoolSpec defines the desired state of a NodePool.

Type object

Required Fields forProvider providerRef

ClaimReference specifies the resource claim to which this managed resource will be bound. ClaimReference is set automatically during dynamic provisioning. Crossplane does not currently support setting this field manually, per https://github.com/crossplane/crossplane-runtime/issues/19

Type object

API version of the referent.

Type string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

Type string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

Type string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

Type string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

Type string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

Type string

uid

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

Type string

ClassReference specifies the resource class that was used to dynamically provision this managed resource, if any. Crossplane does not currently support setting this field manually, per https://github.com/crossplane/crossplane-runtime/issues/20

Type object

API version of the referent.

Type string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

Type string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

Type string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

Type string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

Type string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

Type string

uid

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

Type string

NodePoolParameters define the desired state of a Google Kubernetes Engine node pool.

Type object

Autoscaling: Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.

Type object

Autoprovisioned: Can this node pool be deleted automatically.

Type boolean

Enabled: Is autoscaling enabled for this node pool.

Type boolean

MaxNodeCount: Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.

Type integer

MinNodeCount: Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.

Type integer

Cluster: The resource link for the GKE cluster to which the NodePool will attach. Must be of format projects/projectID/locations/clusterLocation/clusters/clusterName. Must be supplied if ClusterRef is not.

Type string

ClusterRef sets the Cluster field by resolving the resource link of the referenced Crossplane GKECluster managed resource.

Type object

Required Fields name

Name of the referenced object.

Type string

ClusterSelector selects a reference to resolve the resource link of the referenced Crossplane GKECluster managed resource.

Type object

MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.

Type boolean

MatchLabels ensures an object with matching labels is selected.

Type object

AdditionalProperties allowed.

Type string

Config: The node configuration of the pool.

Type object

Accelerators: A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs.

Type array

AcceleratorConfig represents a Hardware Accelerator request.

Type object

AcceleratorCount: The number of the accelerator cards exposed to an instance.

Type integer

AcceleratorType: The accelerator type resource name. List of supported accelerators [here](/compute/docs/gpus/#Introduction)

Type string

DiskSizeGb: Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.

Type integer

DiskType: Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd') If unspecified, the default disk type is 'pd-standard'

Type string

ImageType: The image type to use for this node. Note that for a given image type, the latest version of it will be used.

Type string

Labels: The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/overview/working-with-objects /labels/

Type object

AdditionalProperties allowed.

Type string

LocalSsdCount: The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_l imits for more information.

Type integer

MachineType: The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.

Type string

Metadata: The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: "cluster-location" "cluster-name" "cluster-uid" "configure-sh" "containerd-configure-sh" "enable-oslogin" "gci-ensure-gke-docker" "gci-update-strategy" "instance-template" "kube-env" "startup-script" "user-data" "disable-address-manager" "windows-startup-script-ps1" "common-psm1" "k8s-node-setup-psm1" "install-ssh-psm1" "user-profile-psm1" "serial-port-logging-enable" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.

Type object

AdditionalProperties allowed.

Type string

MinCpuPlatform: Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify- min-cpu-platform)

Type string

OauthScopes: The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.

Type array

Type string

Preemptible: Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.

Type boolean

SandboxConfig: Sandbox configuration for this node.

Type object

Required Fields sandboxType

SandboxType: Type of the sandbox to use for the node (e.g. 'gvisor')

Type string

ServiceAccount: The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.

Type string

ShieldedInstanceConfig: Shielded Instance options.

Type object

EnableIntegrityMonitoring: Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created.

Type boolean

EnableSecureBoot: Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.

Type boolean

Tags: The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.

Type array

Type string

Taints: List of kubernetes taints to be applied to each node. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/configuration/taint-and-toler ation/

Type array

NodeTaint is a Kubernetes taint is comprised of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. For more information, including usage and the valid values, see: https://kubernetes.io/docs/concepts/configuration/taint-and-toler ation/

Type object

Effect: Effect for taint. Possible values: "EFFECT_UNSPECIFIED" - Not set "NO_SCHEDULE" - NoSchedule "PREFER_NO_SCHEDULE" - PreferNoSchedule "NO_EXECUTE" - NoExecute

Type string

key

Key: Key for taint.

Type string

Value: Value for taint.

Type string

WorkloadMetadataConfig: The workload metadata configuration for this node.

Type object

Required Fields nodeMetadata

NodeMetadata: NodeMetadata is the configuration for how to expose metadata to the workloads running on the node. Possible values: "UNSPECIFIED" - Not set. "SECURE" - Prevent workloads not in hostGKECluster from accessing certain VM metadata, specifically kube-env, which contains Kubelet credentials, and the instance identity token. Metadata concealment is a temporary security solution available while the bootstrapping process for cluster nodes is being redesigned with significant security improvements. This feature is scheduled to be deprecated in the future and later removed. "EXPOSE" - Expose all VM metadata to pods. "GKE_METADATA_SERVER" - Run the GKE Metadata Server on this node. The GKE Metadata Server exposes a metadata API to workloads that is compatible with the V1 Compute Metadata APIs exposed by the Compute Engine and App Engine Metadata Servers. This feature can only be enabled if Workload Identity is enabled at the cluster level.

Type string

InitialNodeCount: The initial node count for the pool. You must ensure that your Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a> is sufficient for this number of instances. You must also have available firewall and routes quota.

Type integer

Locations: The list of Google Compute Engine [zones](/compute/docs/zones#available) in which the NodePool's nodes should be located.

Type array

Type string

Management: NodeManagement configuration for this NodePool.

Type object

AutoRepair: Whether the nodes will be automatically repaired.

Type boolean

AutoUpgrade: Whether the nodes will be automatically upgraded.

Type boolean

MaxPodsConstraint: The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.

Type object

Required Fields maxPodsPerNode

MaxPodsPerNode: Constraint enforced on the max num of pods per node.

Type integer

Version: The version of the Kubernetes of this node.

Type string

ProviderReference specifies the provider that will be used to create, observe, update, and delete this managed resource.

Type object

API version of the referent.

Type string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

Type string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

Type string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

Type string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

Type string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

Type string

uid

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

Type string

ReclaimPolicy specifies what will happen to this managed resource when its resource claim is deleted, and what will happen to the underlying external resource when the managed resource is deleted. The "Delete" policy causes the managed resource to be deleted when its bound resource claim is deleted, and in turn causes the external resource to be deleted when its managed resource is deleted. The "Retain" policy causes the managed resource to be retained, in binding phase "Released", when its resource claim is deleted, and in turn causes the external resource to be retained when its managed resource is deleted. The "Retain" policy is used when no policy is specified.

Type string

Permitted Values [Retain Delete]

WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.

Type object

Required Fields name namespace

Name of the secret.

Type string

Namespace of the secret.

Type string

A NodePoolStatus represents the observed state of a NodePool.

Type object

NodePoolObservation is used to show the observed state of the GKE Node Pool resource on GCP.

Type object

Conditions: Which conditions caused the current node pool state.

Type array

StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).

Type object

Code: Machine-friendly representation of the condition Possible values: "UNKNOWN" - UNKNOWN indicates a generic condition. "GCE_STOCKOUT" - GCE_STOCKOUT indicates a Google Compute Engine stockout. "GKE_SERVICE_ACCOUNT_DELETED" - GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot service account. "GCE_QUOTA_EXCEEDED" - Google Compute Engine quota was exceeded. "SET_BY_OPERATOR" - Cluster state was manually changed by an SRE due to a system logic error. More codes TBA

Type string

Message: Human-friendly representation of the condition

Type string

InstanceGroupUrls: The resource URLs of the [managed instance groups](/compute/docs/instance-groups/creating-groups-of-mana ged-instances) associated with this node pool.

Type array

Type string

Management: NodeManagement configuration for this NodePool.

Type object

UpgradeOptions: Specifies the Auto Upgrade knobs for the node pool.

Type object

AutoUpgradeStartTime: This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.

Type string

Description: This field is set when upgrades are about to commence with the description of the upgrade.

Type string

PodIpv4CidrSize: The pod CIDR block size per node in this node pool.

Type integer

Status: The status of the nodes in this pool instance. Possible values: "STATUS_UNSPECIFIED" - Not set. "PROVISIONING" - The PROVISIONING state indicates the node pool is being created. "RUNNING" - The RUNNING state indicates the node pool has been created and is fully usable. "RUNNING_WITH_ERROR" - The RUNNING_WITH_ERROR state indicates the node pool has been created and is partially usable. Some error state has occurred and some functionality may be impaired. Customer may need to reissue a request or trigger a new update. "RECONCILING" - The RECONCILING state indicates that some work is actively being done on the node pool, such as upgrading node software. Details can be found in the `statusMessage` field. "STOPPING" - The STOPPING state indicates the node pool is being deleted. "ERROR" - The ERROR state indicates the node pool may be unusable. Details can be found in the `statusMessage` field.

Type string

StatusMessage: Additional information about the current status of this node pool instance, if available.

Type string

Phase represents the binding phase of a managed resource or claim. Unbindable resources cannot be bound, typically because they are currently unavailable, or still being created. Unbound resource are available for binding, and Bound resources have successfully bound to another resource.

Type string

Permitted Values [Unbindable Unbound Bound Released]

Conditions of the resource.

Type array

A Condition that may apply to a resource.

Type object

LastTransitionTime is the last time this condition transitioned from one status to another.

Type string

A Message containing details about this condition's last transition from one status to another, if any.

Type string

A Reason for this condition's last transition from one status to another.

Type string

Status of this condition; is it currently True, False, or Unknown?

Type string

Type of this condition. At most one of each condition type may apply to a resource at any point in time.

Type string