Documentation
¶
Overview ¶
Package gcp contains API Schema definitions for GCP clusters. +k8s:deepcopy-gen=package
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloudControllerUID ¶
CloudControllerUID generates a UID used by the GCP cloud controller provider to generate certain load balancing resources
Types ¶
type EncryptionKeyReference ¶
type EncryptionKeyReference struct { // KMSKey is a reference to a KMS Key to use for the encryption. // // +optional KMSKey *KMSKeyReference `json:"kmsKey,omitempty"` // KMSKeyServiceAccount is the service account being used for the // encryption request for the given KMS key. If absent, the Compute // Engine default service account is used. // See https://cloud.google.com/compute/docs/access/service-accounts#compute_engine_service_account // for details on the default service account. // // +optional KMSKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"` }
EncryptionKeyReference describes the encryptionKey to use for a disk's encryption.
func (*EncryptionKeyReference) DeepCopy ¶
func (in *EncryptionKeyReference) DeepCopy() *EncryptionKeyReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EncryptionKeyReference.
func (*EncryptionKeyReference) DeepCopyInto ¶
func (in *EncryptionKeyReference) DeepCopyInto(out *EncryptionKeyReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KMSKeyReference ¶
type KMSKeyReference struct { // Name is the name of the customer managed encryption key to be used for the disk encryption. Name string `json:"name"` // KeyRing is the name of the KMS Key Ring which the KMS Key belongs to. KeyRing string `json:"keyRing"` // ProjectID is the ID of the Project in which the KMS Key Ring exists. // Defaults to the VM ProjectID if not set. // // +optional ProjectID string `json:"projectID,omitempty"` // Location is the GCP location in which the Key Ring exists. Location string `json:"location"` }
KMSKeyReference gathers required fields for looking up a GCP KMS Key
func (*KMSKeyReference) DeepCopy ¶
func (in *KMSKeyReference) DeepCopy() *KMSKeyReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KMSKeyReference.
func (*KMSKeyReference) DeepCopyInto ¶
func (in *KMSKeyReference) DeepCopyInto(out *KMSKeyReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachinePool ¶
type MachinePool struct { // Zones is list of availability zones that can be used. Zones []string `json:"zones,omitempty"` // InstanceType defines the GCP instance type. // eg. n1-standard-4 InstanceType string `json:"type"` // OSDisk defines the storage for instances. // // +optional OSDisk OSDisk `json:"osDisk"` // NetworkProjectID specifies which project the network and subnets exist in when // they are not in the main ProjectID. // +optional NetworkProjectID string `json:"networkProjectID,omitempty"` // SecureBoot Defines whether the instance should have secure boot enabled. // Verifies the digital signature of all boot components, and halts the boot process if signature verification fails. // If omitted, the platform chooses a default, which is subject to change over time. Currently that default is "Disabled". // +kubebuilder:validation:Enum=Enabled;Disabled // +optional SecureBoot string `json:"secureBoot,omitempty"` // OnHostMaintenance determines the behavior when a maintenance event occurs that might cause the instance to reboot. // This is required to be set to "Terminate" if you want to provision machine with attached GPUs. // Otherwise, allowed values are "Migrate" and "Terminate". // If omitted, the platform chooses a default, which is subject to change over time, currently that default is "Migrate". // +kubebuilder:validation:Enum=Migrate;Terminate; // +optional OnHostMaintenance string `json:"onHostMaintenance,omitempty"` // ServiceAccount is the email of a gcp service account to be attached to worker nodes // in order to provide the permissions required by the cloud provider. For the default // worker MachinePool, it is the user's responsibility to match this to the value // provided in the install-config. // // +optional ServiceAccount string `json:"serviceAccount,omitempty"` // userTags has additional keys and values that we will add as tags to the providerSpec of // MachineSets that we creates on GCP. Tag key and tag value should be the shortnames of the // tag key and tag value resource. Consumer is responsible for using this only for spokes // where custom tags are supported. UserTags []UserTag `json:"userTags,omitempty"` }
MachinePool stores the configuration for a machine pool installed on GCP.
func (*MachinePool) DeepCopy ¶
func (in *MachinePool) DeepCopy() *MachinePool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachinePool.
func (*MachinePool) DeepCopyInto ¶
func (in *MachinePool) DeepCopyInto(out *MachinePool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Metadata ¶
type Metadata struct { // NetworkProjectID is used for shared VPC setups // +optional NetworkProjectID *string `json:"networkProjectID,omitempty"` }
Metadata contains GCP metadata (e.g. for uninstalling the cluster).
func (*Metadata) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OSDisk ¶
type OSDisk struct { // DiskType defines the type of disk. // The valid values are pd-standard and pd-ssd. // Defaulted internally to pd-ssd. // +kubebuilder:validation:Enum=pd-ssd;pd-standard // +optional DiskType string `json:"diskType,omitempty"` // DiskSizeGB defines the size of disk in GB. // Defaulted internally to 128. // // +kubebuilder:validation:Minimum=16 // +kubebuilder:validation:Maximum=65536 // +optional DiskSizeGB int64 `json:"diskSizeGB,omitempty"` // EncryptionKey defines the KMS key to be used to encrypt the disk. // // +optional EncryptionKey *EncryptionKeyReference `json:"encryptionKey,omitempty"` }
OSDisk defines the disk for machines on GCP.
func (*OSDisk) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSDisk.
func (*OSDisk) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Platform ¶
type Platform struct { // CredentialsSecretRef refers to a secret that contains the GCP account access credentials. // +optional CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"` // Region specifies the GCP region where the cluster will be created. Region string `json:"region"` // PrivateSericeConnect allows users to enable access to the cluster's API server using GCP // Private Service Connect. It includes a forwarding rule paired with a Service Attachment // across GCP accounts and allows clients to connect to services using GCP internal networking // of using public load balancers. // +optional PrivateServiceConnect *PrivateServiceConnect `json:"privateServiceConnect,omitempty"` }
Platform stores all the global configuration that all machinesets use.
func (*Platform) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Platform.
func (*Platform) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlatformStatus ¶
type PlatformStatus struct { // PrivateServiceConnect contains the private service connect resource references // +optional PrivateServiceConnect *PrivateServiceConnectStatus `json:"privateServiceConnect,omitempty"` }
PlatformStatus contains the observed state on GCP platform.
func (*PlatformStatus) DeepCopy ¶
func (in *PlatformStatus) DeepCopy() *PlatformStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformStatus.
func (*PlatformStatus) DeepCopyInto ¶
func (in *PlatformStatus) DeepCopyInto(out *PlatformStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivateServiceConnect ¶
type PrivateServiceConnect struct { // Enabled specifies if Private Service Connect is to be enabled on the cluster. Enabled bool `json:"enabled"` // ServiceAttachment configures the service attachment to be used by the cluster. // +optional ServiceAttachment *ServiceAttachment `json:"serviceAttachment,omitempty"` }
PrivateServiceConnectAccess configures access to the cluster API using GCP Private Service Connect
func (*PrivateServiceConnect) DeepCopy ¶
func (in *PrivateServiceConnect) DeepCopy() *PrivateServiceConnect
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateServiceConnect.
func (*PrivateServiceConnect) DeepCopyInto ¶
func (in *PrivateServiceConnect) DeepCopyInto(out *PrivateServiceConnect)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivateServiceConnectStatus ¶
type PrivateServiceConnectStatus struct { // Endpoint is the selfLink of the endpoint created for the cluster. // +optional Endpoint string `json:"endpoint,omitempty"` // EndpointAddress is the selfLink of the address created for the cluster endpoint. // +optional EndpointAddress string `json:"endpointAddress,omitempty"` // ServiceAttachment is the selfLink of the service attachment created for the clsuter. // +optional ServiceAttachment string `json:"serviceAttachment,omitempty"` // ServiceAttachmentFirewall is the selfLink of the firewall that allows traffic between // the service attachment and the cluster's internal api load balancer. // +optional ServiceAttachmentFirewall string `json:"serviceAttachmentFirewall,omitempty"` // ServiceAttachmentSubnet is the selfLink of the subnet that will contain the service attachment. // +optional ServiceAttachmentSubnet string `json:"serviceAttachmentSubnet,omitempty"` }
PrivateServiceConnectStatus contains the observed state for PrivateServiceConnect resources.
func (*PrivateServiceConnectStatus) DeepCopy ¶
func (in *PrivateServiceConnectStatus) DeepCopy() *PrivateServiceConnectStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateServiceConnectStatus.
func (*PrivateServiceConnectStatus) DeepCopyInto ¶
func (in *PrivateServiceConnectStatus) DeepCopyInto(out *PrivateServiceConnectStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceAttachment ¶
type ServiceAttachment struct { // Subnet configures the subnetwork that contains the service attachment. // +optional Subnet *ServiceAttachmentSubnet `json:"subnet,omitempty"` }
ServiceAttachment configures the service attachment to be used by the cluster
func (*ServiceAttachment) DeepCopy ¶
func (in *ServiceAttachment) DeepCopy() *ServiceAttachment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAttachment.
func (*ServiceAttachment) DeepCopyInto ¶
func (in *ServiceAttachment) DeepCopyInto(out *ServiceAttachment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceAttachmentSubnet ¶
type ServiceAttachmentSubnet struct { // Cidr configures the network cidr of the subnetwork that contains the service attachment. // +optional Cidr string `json:"cidr,omitempty"` }
ServiceAttachmentSubnet configures the subnetwork used by the service attachment
func (*ServiceAttachmentSubnet) DeepCopy ¶
func (in *ServiceAttachmentSubnet) DeepCopy() *ServiceAttachmentSubnet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAttachmentSubnet.
func (*ServiceAttachmentSubnet) DeepCopyInto ¶
func (in *ServiceAttachmentSubnet) DeepCopyInto(out *ServiceAttachmentSubnet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserTag ¶
type UserTag struct { // parentID is the ID of the hierarchical resource where the tags are defined, // e.g. at the Organization or the Project level. To find the Organization ID or Project ID refer to the following pages: // https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id, // https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects. // An OrganizationID must consist of decimal numbers, and cannot have leading zeroes. // A ProjectID must be 6 to 30 characters in length, can only contain lowercase letters, // numbers, and hyphens, and must start with a letter, and cannot end with a hyphen. ParentID string `json:"parentID"` // key is the key part of the tag. A tag key can have a maximum of 63 characters and // cannot be empty. Tag key must begin and end with an alphanumeric character, and // must contain only uppercase, lowercase alphanumeric characters, and the following // special characters `._-`. Key string `json:"key"` // value is the value part of the tag. A tag value can have a maximum of 63 characters // and cannot be empty. Tag value must begin and end with an alphanumeric character, and // must contain only uppercase, lowercase alphanumeric characters, and the following // special characters `_-.@%=+:,*#&(){}[]` and spaces. Value string `json:"value"` }
UserTag is a tag to apply to GCP resources created for the cluster.
func (*UserTag) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserTag.
func (*UserTag) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.