Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the infrastructure v1alpha1 API group +kubebuilder:object:generate=true +groupName=infrastructure.forge.build
Index ¶
- Constants
- Variables
- func BuildTagKey(name string) string
- type AttachedDiskSpec
- type BuildParams
- type CustomerEncryptionKey
- type DiskType
- type GCPBuild
- type GCPBuildList
- type GCPBuildSpec
- type GCPBuildStatus
- type InstanceStatus
- type KeyType
- type Labels
- func (in Labels) AddLabels(other Labels) Labels
- func (in Labels) DeepCopy() Labels
- func (in Labels) DeepCopyInto(out *Labels)
- func (in Labels) Difference(other Labels) Labels
- func (in Labels) Equals(other Labels) bool
- func (in Labels) HasOwned(build string) bool
- func (in Labels) ToComputeFilter() string
- type LoadBalancer
- type LoadBalancerSpec
- type LoadBalancerType
- type ManagedKey
- type MetadataItem
- type Network
- type NetworkSpec
- type ResourceLifecycle
- type ServiceAccount
- type SubnetSpec
- type Subnets
- type SuppliedKey
Constants ¶
const ( // BuildFinalizer allows ReconcileGCPBuild to clean up GCP resources associated with GCPBuild before // removing it from the apiserver. BuildFinalizer = "gcpbuild.infrastructure.forge.build" // GCPBuildKind the kind of a GCPBuild Object. GCPBuildKind string = "GCPBuild" )
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 // forge-provider-gcp owned components from other tooling that // uses NameKubernetesClusterPrefix. NameGCPProviderPrefix = "forge-gcp" // NameGCPProviderOwned is the tag name we use to differentiate // forge-provider-gcp owned components from other tooling that // uses NameKubernetesClusterPrefix. NameGCPProviderOwned = NameGCPProviderPrefix + "build-" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "infrastructure.forge.build", Version: "v1alpha1"} // 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 )
var ( // External creates a Global External Proxy Load Balancer // to manage traffic to backends in multiple regions. This is the default Load // Balancer and will be created if no LoadBalancerType is defined. External = LoadBalancerType("External") // Internal creates a Regional Internal Passthrough Load // Balancer to manage traffic to backends in the configured region. Internal = LoadBalancerType("Internal") // InternalExternal creates both External and Internal Load Balancers to provide // separate endpoints for managing both external and internal traffic. InternalExternal = LoadBalancerType("InternalExternal") )
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 BuildTagKey ¶
BuildTagKey generates the key for resources associated with a build.
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). // 4. "pd-balanced" - Balanced Persistent Disk // 5. "hyperdisk-balanced" - Hyperdisk Balanced // 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"` // EncryptionKey defines the KMS key to be used to encrypt the disk. // +optional EncryptionKey *CustomerEncryptionKey `json:"encryptionKey,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. BuildName string // ResourceID is the unique identifier of the resource to be tagged. ResourceID 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 CustomerEncryptionKey ¶
type CustomerEncryptionKey struct { // KeyType is the type of encryption key. Must be either Managed, aka Customer-Managed Encryption Key (CMEK) or // Supplied, aka Customer-Supplied EncryptionKey (CSEK). // +kubebuilder:validation:Enum=Managed;Supplied KeyType KeyType `json:"keyType"` // 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. For example: // "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com. // The maximum length is based on the Service Account ID (max 30), Project (max 30), and a valid gcloud email // suffix ("iam.gserviceaccount.com"). // +kubebuilder:validation:MaxLength=85 // +kubebuilder:validation:Pattern=`[-_[A-Za-z0-9]+@[-_[A-Za-z0-9]+.iam.gserviceaccount.com` // +optional KMSKeyServiceAccount *string `json:"kmsKeyServiceAccount,omitempty"` // ManagedKey references keys managed by the Cloud Key Management Service. This should be set when KeyType is Managed. // +optional ManagedKey *ManagedKey `json:"managedKey,omitempty"` // SuppliedKey provides the key used to create or manage a disk. This should be set when KeyType is Managed. // +optional SuppliedKey *SuppliedKey `json:"suppliedKey,omitempty"` }
CustomerEncryptionKey supports both Customer-Managed or Customer-Supplied encryption keys .
func (*CustomerEncryptionKey) DeepCopy ¶
func (in *CustomerEncryptionKey) DeepCopy() *CustomerEncryptionKey
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomerEncryptionKey.
func (*CustomerEncryptionKey) DeepCopyInto ¶
func (in *CustomerEncryptionKey) DeepCopyInto(out *CustomerEncryptionKey)
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 GCPBuild ¶
type GCPBuild struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec GCPBuildSpec `json:"spec,omitempty"` Status GCPBuildStatus `json:"status,omitempty"` }
GCPBuild is the Schema for the gcpbuilds API
func (*GCPBuild) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPBuild.
func (*GCPBuild) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GCPBuild) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GCPBuildList ¶
type GCPBuildList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []GCPBuild `json:"items"` }
GCPBuildList contains a list of GCPBuild
func (*GCPBuildList) DeepCopy ¶
func (in *GCPBuildList) DeepCopy() *GCPBuildList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPBuildList.
func (*GCPBuildList) DeepCopyInto ¶
func (in *GCPBuildList) DeepCopyInto(out *GCPBuildList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GCPBuildList) DeepCopyObject ¶
func (in *GCPBuildList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GCPBuildSpec ¶
type GCPBuildSpec struct { // Embedded ConnectionSpec to define default connection credentials. buildv1.ConnectionSpec `json:",inline"` // 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"` // The GCP Region the cluster lives in. Zone string `json:"zone"` // InstanceType is the type of instance to create. Example: n1.standard-2 InstanceType string `json:"instanceType"` // 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"` // 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"` // InstanceID is the unique identifier as specified by the cloud provider. // +optional InstanceID *string `json:"InstanceID,omitempty"` // Bootstrap is a reference to a local struct which encapsulates // fields to configure the Machine’s bootstrapping mechanism. // +optional Bootstrap clusterv1.Bootstrap `json:"bootstrap,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 GcpBuild 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 // 3. "pd-balanced" - Balanced Persistent Disk // 4. "hyperdisk-balanced" - Hyperdisk Balanced // 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"` // CredentialsRef is a reference to a Secret that contains the credentials to use for provisioning this cluster. If not // supplied then the credentials of the controller will be used. // +optional CredentialsRef *corev1.SecretReference `json:"credentialsRef,omitempty"` }
GCPBuildSpec defines the desired state of GCPBuild
func (*GCPBuildSpec) DeepCopy ¶
func (in *GCPBuildSpec) DeepCopy() *GCPBuildSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPBuildSpec.
func (*GCPBuildSpec) DeepCopyInto ¶
func (in *GCPBuildSpec) DeepCopyInto(out *GCPBuildSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GCPBuildStatus ¶
type GCPBuildStatus struct { // Ready indicates that the GCPBuild is ready. // +optional // +kubebuilder:default=false Ready bool `json:"ready"` // MachineReady indicates that the associated machine is ready to accept connection. // +optional // +kubebuilder:default=false MachineReady bool `json:"machineReady"` // CleanUpReady indicates that the Infrastructure is cleaned up or not. // +optional // +kubebuilder:default=false CleanedUP bool `json:"cleanedUP,omitempty"` // Network status of network. Network Network `json:"network,omitempty"` // InstanceStatus is the status of the GCP instance for this machine. // +optional InstanceStatus *InstanceStatus `json:"instanceState,omitempty"` // ArtifactRef The Reference of image that has been built. // +optional ArtifactRef *string `json:"artifactRef,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 ProxmoxCluster // can be added as events to the ProxmoxCluster object and/or logged in the // controller's output. // +optional FailureReason *string `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 ProxmoxMachines // can be added as events to the ProxmoxCluster object and/or logged in the // controller's output. // +optional FailureMessage *string `json:"failureMessage,omitempty"` // Conditions defines current service state of the ProxmoxCluster. // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
GCPBuildStatus defines the observed state of GCPBuild
func (*GCPBuildStatus) DeepCopy ¶
func (in *GCPBuildStatus) DeepCopy() *GCPBuildStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPBuildStatus.
func (*GCPBuildStatus) DeepCopyInto ¶
func (in *GCPBuildStatus) DeepCopyInto(out *GCPBuildStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceStatus ¶
type InstanceStatus string
InstanceStatus describes the state of an GCP instance.
type Labels ¶
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 ¶
AddLabels adds (and overwrites) the current labels with the ones passed in.
func (Labels) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Labels.
func (Labels) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Labels) Difference ¶
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) HasOwned ¶
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 ¶
ToComputeFilter returns the string representation of the labels as a filter to be used in google compute sdk calls.
type LoadBalancer ¶
type LoadBalancer struct { // Name is the name of the Load Balancer. If not set a default name // will be used. For an Internal Load Balancer service the default // name is "api-internal". // +kubebuilder:validation:Optional // +kubebuilder:validation:Pattern=`(^[1-9][0-9]{0,31}$)|(^[a-z][a-z0-9-]{4,28}[a-z0-9]$)` // +optional Name *string `json:"name,omitempty"` // Subnet is the name of the subnet to use for a regional Load Balancer. A subnet is // required for the Load Balancer, if not defined the first configured subnet will be // used. Subnet *string `json:"subnet,omitempty"` }
LoadBalancer specifies the configuration of a LoadBalancer.
func (*LoadBalancer) DeepCopy ¶
func (in *LoadBalancer) DeepCopy() *LoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
func (*LoadBalancer) DeepCopyInto ¶
func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerSpec ¶
type LoadBalancerSpec struct { // APIServerInstanceGroupTagOverride overrides the default setting for the // tag used when creating the API Server Instance Group. // +kubebuilder:validation:Optional // +kubebuilder:validation:MaxLength=16 // +kubebuilder:validation:Pattern=`(^[1-9][0-9]{0,31}$)|(^[a-z][a-z0-9-]{4,28}[a-z0-9]$)` // +optional APIServerInstanceGroupTagOverride *string `json:"apiServerInstanceGroupTagOverride,omitempty"` // LoadBalancerType defines the type of Load Balancer that should be created. // If not set, a Global External Proxy Load Balancer will be created by default. // +optional LoadBalancerType *LoadBalancerType `json:"loadBalancerType,omitempty"` // InternalLoadBalancer is the configuration for an Internal Passthrough Network Load Balancer. // +optional InternalLoadBalancer *LoadBalancer `json:"internalLoadBalancer,omitempty"` }
LoadBalancerSpec contains configuration for one or more LoadBalancers.
func (*LoadBalancerSpec) DeepCopy ¶
func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSpec.
func (*LoadBalancerSpec) DeepCopyInto ¶
func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerType ¶
type LoadBalancerType string
LoadBalancerType defines the Load Balancer that should be created.
type ManagedKey ¶
type ManagedKey struct { // KMSKeyName is the name of the encryption key that is stored in Google Cloud KMS. For example: // "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/key_region/cryptoKeys/key // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=`projects\/[-_[A-Za-z0-9]+\/locations\/[-_[A-Za-z0-9]+\/keyRings\/[-_[A-Za-z0-9]+\/cryptoKeys\/[-_[A-Za-z0-9]+` // +kubebuilder:validation:MaxLength=160 KMSKeyName string `json:"kmsKeyName,omitempty"` }
ManagedKey is a reference to a key managed by the Cloud Key Management Service.
func (*ManagedKey) DeepCopy ¶
func (in *ManagedKey) DeepCopy() *ManagedKey
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedKey.
func (*ManagedKey) DeepCopyInto ¶
func (in *ManagedKey) DeepCopyInto(out *ManagedKey)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"` // APIInternalAddress is the IPV4 regional address assigned to the // internal Load Balancer. // +optional APIInternalAddress *string `json:"apiInternalIpAddress,omitempty"` // APIInternalHealthCheck is the full reference to the health check // created for the internal Load Balancer. // +optional APIInternalHealthCheck *string `json:"apiInternalHealthCheck,omitempty"` // APIInternalBackendService is the full reference to the backend service // created for the internal Load Balancer. // +optional APIInternalBackendService *string `json:"apiInternalBackendService,omitempty"` // APIInternalForwardingRule is the full reference to the forwarding rule // created for the internal Load Balancer. // +optional APIInternalForwardingRule *string `json:"apiInternalForwardingRule,omitempty"` }
Network encapsulates GCP networking resources.
func (*Network) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
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"` // HostProject is the name of the project hosting the shared VPC network resources. // +optional HostProject *string `json:"hostProject,omitempty"` // Mtu: Maximum Transmission Unit in bytes. The minimum value for this field is // 1300 and the maximum value is 8896. The suggested value is 1500, which is // the default MTU used on the Internet, or 8896 if you want to use Jumbo // frames. If unspecified, the value defaults to 1460. // More info: https://pkg.go.dev/google.golang.org/api/compute/v1#Network // +kubebuilder:validation:Minimum:=1300 // +kubebuilder:validation:Maximum:=8896 // +kubebuilder:default:=1460 // +optional Mtu int64 `json:"mtu,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnets.
func (Subnets) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Subnets) FilterByRegion ¶
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.
type SuppliedKey ¶
type SuppliedKey struct { // RawKey specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 // base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. // For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" // +optional RawKey []byte `json:"rawKey,omitempty"` // RSAEncryptedKey specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption // key to either encrypt or decrypt this resource. You can provide either the rawKey or the // rsaEncryptedKey. // For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHi // z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDi // D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" // The key must meet the following requirements before you can provide it to Compute Engine: // 1. The key is wrapped using a RSA public key certificate provided by Google. // 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. // Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem // +optional RSAEncryptedKey []byte `json:"rsaEncryptedKey,omitempty"` }
SuppliedKey contains a key for disk encryption. Either RawKey or RSAEncryptedKey must be provided. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1
func (*SuppliedKey) DeepCopy ¶
func (in *SuppliedKey) DeepCopy() *SuppliedKey
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuppliedKey.
func (*SuppliedKey) DeepCopyInto ¶
func (in *SuppliedKey) DeepCopyInto(out *SuppliedKey)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.