gcp

package
v0.0.0-...-c44aa52 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

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

func CloudControllerUID(infraID string) string

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

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

func (in *Metadata) DeepCopy() *Metadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

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

func (in *OSDisk) DeepCopy() *OSDisk

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSDisk.

func (*OSDisk) DeepCopyInto

func (in *OSDisk) DeepCopyInto(out *OSDisk)

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

func (in *Platform) DeepCopy() *Platform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Platform.

func (*Platform) DeepCopyInto

func (in *Platform) DeepCopyInto(out *Platform)

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateServiceConnectStatus.

func (*PrivateServiceConnectStatus) DeepCopyInto

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

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

func (in *UserTag) DeepCopy() *UserTag

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserTag.

func (*UserTag) DeepCopyInto

func (in *UserTag) DeepCopyInto(out *UserTag)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL