v1beta1

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 29, 2022 License: Apache-2.0 Imports: 16 Imported by: 24

Documentation

Overview

Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Index

Constants

View Source
const (
	// ResourceLifecycleOwned is the value we use when tagging resources to indicate
	// that the resource is considered owned and managed by the cluster,
	// and in particular that the lifecycle is tied to the lifecycle of the cluster.
	ResourceLifecycleOwned = ResourceLifecycle("owned")

	// NameGCPProviderPrefix is the tag prefix we use to differentiate
	// cluster-api-provider-gcp owned components from other tooling that
	// uses NameKubernetesClusterPrefix.
	NameGCPProviderPrefix = "capg-"

	// NameGCPProviderOwned is the tag name we use to differentiate
	// cluster-api-provider-gcp owned components from other tooling that
	// uses NameKubernetesClusterPrefix.
	NameGCPProviderOwned = NameGCPProviderPrefix + "cluster-"

	// NameGCPClusterAPIRole is the tag name we use to mark roles for resources
	// dedicated to this cluster api provider implementation.
	NameGCPClusterAPIRole = NameGCPProviderPrefix + "role"

	// APIServerRoleTagValue describes the value for the apiserver role.
	APIServerRoleTagValue = "apiserver"
)
View Source
const (
	// ClusterFinalizer allows ReconcileGCPCluster to clean up GCP resources associated with GCPCluster before
	// removing it from the apiserver.
	ClusterFinalizer = "gcpcluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer allows ReconcileGCPMachine to clean up GCP resources associated with GCPMachine before
	// removing it from the apiserver.
	MachineFinalizer = "gcpmachine.infrastructure.cluster.x-k8s.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	// InstanceStatusProvisioning is the string representing an instance in a provisioning state.
	InstanceStatusProvisioning = InstanceStatus("PROVISIONING")

	// InstanceStatusRepairing is the string representing an instance in a repairing state.
	InstanceStatusRepairing = InstanceStatus("REPAIRING")

	// InstanceStatusRunning is the string representing an instance in a pending state.
	InstanceStatusRunning = InstanceStatus("RUNNING")

	// InstanceStatusStaging is the string representing an instance in a staging state.
	InstanceStatusStaging = InstanceStatus("STAGING")

	// InstanceStatusStopped is the string representing an instance
	// that has been stopped and can be restarted.
	InstanceStatusStopped = InstanceStatus("STOPPED")

	// InstanceStatusStopping is the string representing an instance
	// that is in the process of being stopped and can be restarted.
	InstanceStatusStopping = InstanceStatus("STOPPING")

	// InstanceStatusSuspended is the string representing an instance
	// that is suspended.
	InstanceStatusSuspended = InstanceStatus("SUSPENDED")

	// InstanceStatusSuspending is the string representing an instance
	// that is in the process of being suspended.
	InstanceStatusSuspending = InstanceStatus("SUSPENDING")

	// InstanceStatusTerminated is the string representing an instance that has been terminated.
	InstanceStatusTerminated = InstanceStatus("TERMINATED")
)

Functions

func ClusterTagKey

func ClusterTagKey(name string) string

ClusterTagKey generates the key for resources associated with a cluster.

Types

type AttachedDiskSpec

type AttachedDiskSpec struct {
	// DeviceType is a device type of the attached disk.
	// Supported types of non-root attached volumes:
	// 1. "pd-standard" - Standard (HDD) persistent disk
	// 2. "pd-ssd" - SSD persistent disk
	// 3. "local-ssd" - Local SSD disk (https://cloud.google.com/compute/docs/disks/local-ssd).
	// Default is "pd-standard".
	// +optional
	DeviceType *DiskType `json:"deviceType,omitempty"`
	// Size is the size of the disk in GBs.
	// Defaults to 30GB. For "local-ssd" size is always 375GB.
	// +optional
	Size *int64 `json:"size,omitempty"`
}

AttachedDiskSpec degined GCP machine disk.

func (*AttachedDiskSpec) DeepCopy

func (in *AttachedDiskSpec) DeepCopy() *AttachedDiskSpec

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

func (*AttachedDiskSpec) DeepCopyInto

func (in *AttachedDiskSpec) DeepCopyInto(out *AttachedDiskSpec)

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

type BuildParams

type BuildParams struct {
	// Lifecycle determines the resource lifecycle.
	Lifecycle ResourceLifecycle

	// ClusterName is the cluster associated with the resource.
	ClusterName string

	// ResourceID is the unique identifier of the resource to be tagged.
	ResourceID string

	// Role is the role associated to the resource.
	// +optional
	Role *string

	// Any additional tags to be added to the resource.
	// +optional
	Additional Labels
}

BuildParams is used to build tags around an gcp resource.

func (*BuildParams) DeepCopy

func (in *BuildParams) DeepCopy() *BuildParams

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

func (*BuildParams) DeepCopyInto

func (in *BuildParams) DeepCopyInto(out *BuildParams)

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

type DiskType

type DiskType string

DiskType is a type to use to define with disk type will be used.

const (
	// PdStandardDiskType defines the name for the standard disk.
	PdStandardDiskType DiskType = "pd-standard"
	// PdSsdDiskType defines the name for the ssd disk.
	PdSsdDiskType DiskType = "pd-ssd"
	// LocalSsdDiskType defines the name for the local ssd disk.
	LocalSsdDiskType DiskType = "local-ssd"
)

type Filter

type Filter struct {
	// Name of the filter. Filter names are case-sensitive.
	Name string `json:"name"`

	// Values includes one or more filter values. Filter values are case-sensitive.
	Values []string `json:"values"`
}

Filter is a filter used to identify an GCP resource.

func (*Filter) DeepCopy

func (in *Filter) DeepCopy() *Filter

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

func (*Filter) DeepCopyInto

func (in *Filter) DeepCopyInto(out *Filter)

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

type GCPCluster

type GCPCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   GCPClusterSpec   `json:"spec,omitempty"`
	Status GCPClusterStatus `json:"status,omitempty"`
}

GCPCluster is the Schema for the gcpclusters API.

func (*GCPCluster) DeepCopy

func (in *GCPCluster) DeepCopy() *GCPCluster

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

func (*GCPCluster) DeepCopyInto

func (in *GCPCluster) DeepCopyInto(out *GCPCluster)

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

func (*GCPCluster) DeepCopyObject

func (in *GCPCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPCluster) Default

func (c *GCPCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*GCPCluster) Hub

func (*GCPCluster) Hub()

Hub marks GCPCluster as a conversion hub.

func (*GCPCluster) SetupWebhookWithManager

func (c *GCPCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager sets up and registers the webhook with the manager.

func (*GCPCluster) ValidateCreate

func (c *GCPCluster) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*GCPCluster) ValidateDelete

func (c *GCPCluster) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*GCPCluster) ValidateUpdate

func (c *GCPCluster) ValidateUpdate(oldRaw runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type GCPClusterList

type GCPClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []GCPCluster `json:"items"`
}

GCPClusterList contains a list of GCPCluster.

func (*GCPClusterList) DeepCopy

func (in *GCPClusterList) DeepCopy() *GCPClusterList

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

func (*GCPClusterList) DeepCopyInto

func (in *GCPClusterList) DeepCopyInto(out *GCPClusterList)

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

func (*GCPClusterList) DeepCopyObject

func (in *GCPClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPClusterList) Hub

func (*GCPClusterList) Hub()

Hub marks GCPClusterList as a conversion hub.

type GCPClusterSpec

type GCPClusterSpec struct {
	// Project is the name of the project to deploy the cluster to.
	Project string `json:"project"`

	// The GCP Region the cluster lives in.
	Region string `json:"region"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`

	// NetworkSpec encapsulates all things related to GCP network.
	// +optional
	Network NetworkSpec `json:"network"`

	// FailureDomains is an optional field which is used to assign selected availability zones to a cluster
	// FailureDomains if empty, defaults to all the zones in the selected region and if specified would override
	// the default zones.
	// +optional
	FailureDomains []string `json:"failureDomains,omitempty"`

	// AdditionalLabels is an optional set of tags to add to GCP resources managed by the GCP provider, in addition to the
	// ones added by default.
	// +optional
	AdditionalLabels Labels `json:"additionalLabels,omitempty"`
}

GCPClusterSpec defines the desired state of GCPCluster.

func (*GCPClusterSpec) DeepCopy

func (in *GCPClusterSpec) DeepCopy() *GCPClusterSpec

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

func (*GCPClusterSpec) DeepCopyInto

func (in *GCPClusterSpec) DeepCopyInto(out *GCPClusterSpec)

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

type GCPClusterStatus

type GCPClusterStatus struct {
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`
	Network        Network                  `json:"network,omitempty"`

	// Bastion Instance `json:"bastion,omitempty"`
	Ready bool `json:"ready"`
}

GCPClusterStatus defines the observed state of GCPCluster.

func (*GCPClusterStatus) DeepCopy

func (in *GCPClusterStatus) DeepCopy() *GCPClusterStatus

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

func (*GCPClusterStatus) DeepCopyInto

func (in *GCPClusterStatus) DeepCopyInto(out *GCPClusterStatus)

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

type GCPClusterTemplate

type GCPClusterTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec GCPClusterTemplateSpec `json:"spec,omitempty"`
}

GCPClusterTemplate is the Schema for the gcpclustertemplates API.

func (*GCPClusterTemplate) DeepCopy

func (in *GCPClusterTemplate) DeepCopy() *GCPClusterTemplate

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

func (*GCPClusterTemplate) DeepCopyInto

func (in *GCPClusterTemplate) DeepCopyInto(out *GCPClusterTemplate)

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

func (*GCPClusterTemplate) DeepCopyObject

func (in *GCPClusterTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPClusterTemplate) Default

func (r *GCPClusterTemplate) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*GCPClusterTemplate) Hub added in v1.1.0

func (*GCPClusterTemplate) Hub()

Hub marks GCPClusterTemplate as a conversion hub.

func (*GCPClusterTemplate) SetupWebhookWithManager

func (r *GCPClusterTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*GCPClusterTemplate) ValidateCreate

func (r *GCPClusterTemplate) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*GCPClusterTemplate) ValidateDelete

func (r *GCPClusterTemplate) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*GCPClusterTemplate) ValidateUpdate

func (r *GCPClusterTemplate) ValidateUpdate(oldRaw runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type GCPClusterTemplateList

type GCPClusterTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []GCPClusterTemplate `json:"items"`
}

GCPClusterTemplateList contains a list of GCPClusterTemplate.

func (*GCPClusterTemplateList) DeepCopy

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

func (*GCPClusterTemplateList) DeepCopyInto

func (in *GCPClusterTemplateList) DeepCopyInto(out *GCPClusterTemplateList)

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

func (*GCPClusterTemplateList) DeepCopyObject

func (in *GCPClusterTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPClusterTemplateList) Hub added in v1.1.0

func (*GCPClusterTemplateList) Hub()

Hub marks GCPClusterTemplateList as a conversion hub.

type GCPClusterTemplateResource

type GCPClusterTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`

	Spec GCPClusterSpec `json:"spec"`
}

GCPClusterTemplateResource contains spec for GCPClusterSpec.

func (*GCPClusterTemplateResource) DeepCopy

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

func (*GCPClusterTemplateResource) DeepCopyInto

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

type GCPClusterTemplateSpec

type GCPClusterTemplateSpec struct {
	Template GCPClusterTemplateResource `json:"template"`
}

GCPClusterTemplateSpec defines the desired state of GCPClusterTemplate.

func (*GCPClusterTemplateSpec) DeepCopy

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

func (*GCPClusterTemplateSpec) DeepCopyInto

func (in *GCPClusterTemplateSpec) DeepCopyInto(out *GCPClusterTemplateSpec)

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

type GCPMachine

type GCPMachine struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   GCPMachineSpec   `json:"spec,omitempty"`
	Status GCPMachineStatus `json:"status,omitempty"`
}

GCPMachine is the Schema for the gcpmachines API.

func (*GCPMachine) DeepCopy

func (in *GCPMachine) DeepCopy() *GCPMachine

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

func (*GCPMachine) DeepCopyInto

func (in *GCPMachine) DeepCopyInto(out *GCPMachine)

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

func (*GCPMachine) DeepCopyObject

func (in *GCPMachine) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPMachine) Default

func (m *GCPMachine) Default()

Default implements webhookutil.defaulter so a webhook will be registered for the type.

func (*GCPMachine) Hub

func (*GCPMachine) Hub()

Hub marks GCPMachine as a conversion hub.

func (*GCPMachine) SetupWebhookWithManager

func (m *GCPMachine) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*GCPMachine) ValidateCreate

func (m *GCPMachine) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*GCPMachine) ValidateDelete

func (m *GCPMachine) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*GCPMachine) ValidateUpdate

func (m *GCPMachine) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type GCPMachineList

type GCPMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []GCPMachine `json:"items"`
}

GCPMachineList contains a list of GCPMachine.

func (*GCPMachineList) DeepCopy

func (in *GCPMachineList) DeepCopy() *GCPMachineList

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

func (*GCPMachineList) DeepCopyInto

func (in *GCPMachineList) DeepCopyInto(out *GCPMachineList)

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

func (*GCPMachineList) DeepCopyObject

func (in *GCPMachineList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPMachineList) Hub

func (*GCPMachineList) Hub()

Hub marks GCPMachineList as a conversion hub.

type GCPMachineSpec

type GCPMachineSpec struct {
	// InstanceType is the type of instance to create. Example: n1.standard-2
	InstanceType string `json:"instanceType"`

	// Subnet is a reference to the subnetwork to use for this instance. If not specified,
	// the first subnetwork retrieved from the Cluster Region and Network is picked.
	// +optional
	Subnet *string `json:"subnet,omitempty"`

	// ProviderID is the unique identifier as specified by the cloud provider.
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// ImageFamily is the full reference to a valid image family to be used for this machine.
	// +optional
	ImageFamily *string `json:"imageFamily,omitempty"`

	// Image is the full reference to a valid image to be used for this machine.
	// Takes precedence over ImageFamily.
	// +optional
	Image *string `json:"image,omitempty"`

	// AdditionalLabels is an optional set of tags to add to an instance, in addition to the ones added by default by the
	// GCP provider. If both the GCPCluster and the GCPMachine specify the same tag name with different values, the
	// GCPMachine's value takes precedence.
	// +optional
	AdditionalLabels Labels `json:"additionalLabels,omitempty"`

	// AdditionalMetadata is an optional set of metadata to add to an instance, in addition to the ones added by default by the
	// GCP provider.
	// +listType=map
	// +listMapKey=key
	// +optional
	AdditionalMetadata []MetadataItem `json:"additionalMetadata,omitempty"`

	// PublicIP specifies whether the instance should get a public IP.
	// Set this to true if you don't have a NAT instances or Cloud Nat setup.
	// +optional
	PublicIP *bool `json:"publicIP,omitempty"`

	// AdditionalNetworkTags is a list of network tags that should be applied to the
	// instance. These tags are set in addition to any network tags defined
	// at the cluster level or in the actuator.
	// +optional
	AdditionalNetworkTags []string `json:"additionalNetworkTags,omitempty"`

	// RootDeviceSize is the size of the root volume in GB.
	// Defaults to 30.
	// +optional
	RootDeviceSize int64 `json:"rootDeviceSize,omitempty"`

	// RootDeviceType is the type of the root volume.
	// Supported types of root volumes:
	// 1. "pd-standard" - Standard (HDD) persistent disk
	// 2. "pd-ssd" - SSD persistent disk
	// Default is "pd-standard".
	// +optional
	RootDeviceType *DiskType `json:"rootDeviceType,omitempty"`

	// AdditionalDisks are optional non-boot attached disks.
	// +optional
	AdditionalDisks []AttachedDiskSpec `json:"additionalDisks,omitempty"`

	// ServiceAccount specifies the service account email and which scopes to assign to the machine.
	// Defaults to: email: "default", scope: []{compute.CloudPlatformScope}
	// +optional
	ServiceAccount *ServiceAccount `json:"serviceAccounts,omitempty"`

	// Preemptible defines if instance is preemptible
	// +optional
	Preemptible bool `json:"preemptible,omitempty"`

	// IPForwarding Allows this instance to send and receive packets with non-matching destination or source IPs.
	// This is required if you plan to use this instance to forward routes. Defaults to enabled.
	// +kubebuilder:validation:Enum=Enabled;Disabled
	// +kubebuilder:default=Enabled
	// +optional
	IPForwarding *IPForwarding `json:"ipForwarding,omitempty"`
}

GCPMachineSpec defines the desired state of GCPMachine.

func (*GCPMachineSpec) DeepCopy

func (in *GCPMachineSpec) DeepCopy() *GCPMachineSpec

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

func (*GCPMachineSpec) DeepCopyInto

func (in *GCPMachineSpec) DeepCopyInto(out *GCPMachineSpec)

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

type GCPMachineStatus

type GCPMachineStatus struct {
	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// Addresses contains the GCP instance associated addresses.
	Addresses []corev1.NodeAddress `json:"addresses,omitempty"`

	// InstanceStatus is the status of the GCP instance for this machine.
	// +optional
	InstanceStatus *InstanceStatus `json:"instanceState,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`
}

GCPMachineStatus defines the observed state of GCPMachine.

func (*GCPMachineStatus) DeepCopy

func (in *GCPMachineStatus) DeepCopy() *GCPMachineStatus

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

func (*GCPMachineStatus) DeepCopyInto

func (in *GCPMachineStatus) DeepCopyInto(out *GCPMachineStatus)

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

type GCPMachineTemplate

type GCPMachineTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec GCPMachineTemplateSpec `json:"spec,omitempty"`
}

GCPMachineTemplate is the Schema for the gcpmachinetemplates API.

func (*GCPMachineTemplate) DeepCopy

func (in *GCPMachineTemplate) DeepCopy() *GCPMachineTemplate

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

func (*GCPMachineTemplate) DeepCopyInto

func (in *GCPMachineTemplate) DeepCopyInto(out *GCPMachineTemplate)

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

func (*GCPMachineTemplate) DeepCopyObject

func (in *GCPMachineTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPMachineTemplate) Default

func (r *GCPMachineTemplate) Default()

Default implements webhookutil.defaulter so a webhook will be registered for the type.

func (*GCPMachineTemplate) Hub

func (*GCPMachineTemplate) Hub()

Hub marks GCPMachineTemplate as a conversion hub.

func (*GCPMachineTemplate) SetupWebhookWithManager

func (r *GCPMachineTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*GCPMachineTemplate) ValidateCreate

func (r *GCPMachineTemplate) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*GCPMachineTemplate) ValidateDelete

func (r *GCPMachineTemplate) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*GCPMachineTemplate) ValidateUpdate

func (r *GCPMachineTemplate) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type GCPMachineTemplateList

type GCPMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []GCPMachineTemplate `json:"items"`
}

GCPMachineTemplateList contains a list of GCPMachineTemplate.

func (*GCPMachineTemplateList) DeepCopy

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

func (*GCPMachineTemplateList) DeepCopyInto

func (in *GCPMachineTemplateList) DeepCopyInto(out *GCPMachineTemplateList)

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

func (*GCPMachineTemplateList) DeepCopyObject

func (in *GCPMachineTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GCPMachineTemplateList) Hub

func (*GCPMachineTemplateList) Hub()

Hub marks GCPMachineTemplateList as a conversion hub.

type GCPMachineTemplateResource

type GCPMachineTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the specification of the desired behavior of the machine.
	Spec GCPMachineSpec `json:"spec"`
}

GCPMachineTemplateResource describes the data needed to create am GCPMachine from a template.

func (*GCPMachineTemplateResource) DeepCopy

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

func (*GCPMachineTemplateResource) DeepCopyInto

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

type GCPMachineTemplateSpec

type GCPMachineTemplateSpec struct {
	Template GCPMachineTemplateResource `json:"template"`
}

GCPMachineTemplateSpec defines the desired state of GCPMachineTemplate.

func (*GCPMachineTemplateSpec) DeepCopy

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

func (*GCPMachineTemplateSpec) DeepCopyInto

func (in *GCPMachineTemplateSpec) DeepCopyInto(out *GCPMachineTemplateSpec)

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

type IPForwarding added in v1.1.0

type IPForwarding string

IPForwarding represents the IP forwarding configuration for the GCP machine.

const (
	// IPForwardingEnabled enables the IP forwarding configuration for the GCP machine.
	IPForwardingEnabled IPForwarding = "Enabled"
	// IPForwardingDisabled disables the IP forwarding configuration for the GCP machine.
	IPForwardingDisabled IPForwarding = "Disabled"
)

type InstanceStatus

type InstanceStatus string

InstanceStatus describes the state of an GCP instance.

type Labels

type Labels map[string]string

Labels defines a map of tags.

func Build

func Build(params BuildParams) Labels

Build builds tags including the cluster tag and returns them in map form.

func (Labels) AddLabels

func (in Labels) AddLabels(other Labels) Labels

AddLabels adds (and overwrites) the current labels with the ones passed in.

func (Labels) DeepCopy

func (in Labels) DeepCopy() Labels

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

func (Labels) DeepCopyInto

func (in Labels) DeepCopyInto(out *Labels)

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

func (Labels) Difference

func (in Labels) Difference(other Labels) Labels

Difference returns the difference between this map of tags and the other map of tags. Items are considered equals if key and value are equals.

func (Labels) Equals

func (in Labels) Equals(other Labels) bool

Equals returns true if the tags are equal.

func (Labels) GetRole

func (in Labels) GetRole() string

GetRole returns the Cluster API role for the tagged resource.

func (Labels) HasOwned

func (in Labels) HasOwned(cluster string) bool

HasOwned returns true if the tags contains a tag that marks the resource as owned by the cluster from the perspective of this management tooling.

func (Labels) ToComputeFilter

func (in Labels) ToComputeFilter() string

ToComputeFilter returns the string representation of the labels as a filter to be used in google compute sdk calls.

type MetadataItem

type MetadataItem struct {
	// Key is the identifier for the metadata entry.
	Key string `json:"key"`
	// Value is the value of the metadata entry.
	Value *string `json:"value,omitempty"`
}

MetadataItem defines a single piece of metadata associated with an instance.

func (*MetadataItem) DeepCopy

func (in *MetadataItem) DeepCopy() *MetadataItem

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

func (*MetadataItem) DeepCopyInto

func (in *MetadataItem) DeepCopyInto(out *MetadataItem)

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

type Network

type Network struct {
	// SelfLink is the link to the Network used for this cluster.
	SelfLink *string `json:"selfLink,omitempty"`

	// FirewallRules is a map from the name of the rule to its full reference.
	// +optional
	FirewallRules map[string]string `json:"firewallRules,omitempty"`

	// Router is the full reference to the router created within the network
	// it'll contain the cloud nat gateway
	// +optional
	Router *string `json:"router,omitempty"`

	// APIServerAddress is the IPV4 global address assigned to the load balancer
	// created for the API Server.
	// +optional
	APIServerAddress *string `json:"apiServerIpAddress,omitempty"`

	// APIServerHealthCheck is the full reference to the health check
	// created for the API Server.
	// +optional
	APIServerHealthCheck *string `json:"apiServerHealthCheck,omitempty"`

	// APIServerInstanceGroups is a map from zone to the full reference
	// to the instance groups created for the control plane nodes created in the same zone.
	// +optional
	APIServerInstanceGroups map[string]string `json:"apiServerInstanceGroups,omitempty"`

	// APIServerBackendService is the full reference to the backend service
	// created for the API Server.
	// +optional
	APIServerBackendService *string `json:"apiServerBackendService,omitempty"`

	// APIServerTargetProxy is the full reference to the target proxy
	// created for the API Server.
	// +optional
	APIServerTargetProxy *string `json:"apiServerTargetProxy,omitempty"`

	// APIServerForwardingRule is the full reference to the forwarding rule
	// created for the API Server.
	// +optional
	APIServerForwardingRule *string `json:"apiServerForwardingRule,omitempty"`
}

Network encapsulates GCP networking resources.

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

type NetworkSpec

type NetworkSpec struct {
	// Name is the name of the network to be used.
	// +optional
	Name *string `json:"name,omitempty"`

	// AutoCreateSubnetworks: When set to true, the VPC network is created
	// in "auto" mode. When set to false, the VPC network is created in
	// "custom" mode.
	//
	// An auto mode VPC network starts with one subnet per region. Each
	// subnet has a predetermined range as described in Auto mode VPC
	// network IP ranges.
	//
	// Defaults to true.
	// +optional
	AutoCreateSubnetworks *bool `json:"autoCreateSubnetworks,omitempty"`

	// Subnets configuration.
	// +optional
	Subnets Subnets `json:"subnets,omitempty"`

	// Allow for configuration of load balancer backend (useful for changing apiserver port)
	// +optional
	LoadBalancerBackendPort *int32 `json:"loadBalancerBackendPort,omitempty"`
}

NetworkSpec encapsulates all things related to a GCP network.

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

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

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

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

type ResourceLifecycle

type ResourceLifecycle string

ResourceLifecycle configures the lifecycle of a resource.

type ServiceAccount

type ServiceAccount struct {
	// Email: Email address of the service account.
	Email string `json:"email,omitempty"`

	// Scopes: The list of scopes to be made available for this service
	// account.
	Scopes []string `json:"scopes,omitempty"`
}

ServiceAccount describes compute.serviceAccount.

func (*ServiceAccount) DeepCopy

func (in *ServiceAccount) DeepCopy() *ServiceAccount

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

func (*ServiceAccount) DeepCopyInto

func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount)

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

type SubnetSpec

type SubnetSpec struct {
	// Name defines a unique identifier to reference this resource.
	Name string `json:"name,omitempty"`

	// CidrBlock is the range of internal addresses that are owned by this
	// subnetwork. Provide this property when you create the subnetwork. For
	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
	// non-overlapping within a network. Only IPv4 is supported. This field
	// can be set only at resource creation time.
	CidrBlock string `json:"cidrBlock,omitempty"`

	// Description is an optional description associated with the resource.
	// +optional
	Description *string `json:"description,omitempty"`

	// SecondaryCidrBlocks defines secondary CIDR ranges,
	// from which secondary IP ranges of a VM may be allocated
	// +optional
	SecondaryCidrBlocks map[string]string `json:"secondaryCidrBlocks,omitempty"`

	// Region is the name of the region where the Subnetwork resides.
	Region string `json:"region,omitempty"`

	// PrivateGoogleAccess defines whether VMs in this subnet can access
	// Google services without assigning external IP addresses
	// +optional
	PrivateGoogleAccess *bool `json:"privateGoogleAccess,omitempty"`

	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
	// If this field is not explicitly set, it will not appear in get
	// listings. If not set the default behavior is to disable flow logging.
	// +optional
	EnableFlowLogs *bool `json:"enableFlowLogs,omitempty"`

	// Purpose: The purpose of the resource.
	// If unspecified, the purpose defaults to PRIVATE_RFC_1918.
	// The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
	//
	// Possible values:
	//   "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal
	// HTTP(S) Load Balancing.
	//   "PRIVATE" - Regular user created or automatically created subnet.
	//   "PRIVATE_RFC_1918" - Regular user created or automatically created
	// subnet.
	//   "PRIVATE_SERVICE_CONNECT" - Subnetworks created for Private Service
	// Connect in the producer network.
	//   "REGIONAL_MANAGED_PROXY" - Subnetwork used for Regional
	// Internal/External HTTP(S) Load Balancing.
	// +kubebuilder:validation:Enum=INTERNAL_HTTPS_LOAD_BALANCER;PRIVATE_RFC_1918;PRIVATE;PRIVATE_SERVICE_CONNECT;REGIONAL_MANAGED_PROXY
	// +kubebuilder:default=PRIVATE_RFC_1918
	// +optional
	Purpose *string `json:"purpose,omitempty"`
}

SubnetSpec configures an GCP Subnet.

func (*SubnetSpec) DeepCopy

func (in *SubnetSpec) DeepCopy() *SubnetSpec

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

func (*SubnetSpec) DeepCopyInto

func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)

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

func (*SubnetSpec) String

func (s *SubnetSpec) String() string

String returns a string representation of the subnet.

type Subnets

type Subnets []SubnetSpec

Subnets is a slice of Subnet.

func (Subnets) DeepCopy

func (in Subnets) DeepCopy() Subnets

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

func (Subnets) DeepCopyInto

func (in Subnets) DeepCopyInto(out *Subnets)

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

func (Subnets) FilterByRegion

func (s Subnets) FilterByRegion(region string) (res Subnets)

FilterByRegion returns a slice containing all subnets that live in the specified region.

func (Subnets) FindByName

func (s Subnets) FindByName(name string) *SubnetSpec

FindByName returns a single subnet matching the given name or nil.

func (Subnets) ToMap

func (s Subnets) ToMap() map[string]*SubnetSpec

ToMap returns a map from name to subnet.

Jump to

Keyboard shortcuts

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