Documentation
¶
Overview ¶
Package ibmcloud contains IBM Cloud-specific structures for installer configuration and management. +k8s:deepcopy-gen=package
Index ¶
Constants ¶
const ( // IBMCloudServiceCISVar is the variable name used by the IBM Cloud Terraform Provider to override the CIS endpoint. IBMCloudServiceCISVar string = "IBMCLOUD_CIS_API_ENDPOINT" // IBMCloudServiceCOSVar is the variable name used by the IBM Cloud Terraform Provider to override the COS endpoint. IBMCloudServiceCOSVar string = "IBMCLOUD_COS_ENDPOINT" // IBMCloudServiceCOSConfigVar is the variable name used by IBM Cloud Terraform Provider to override the COS Config endpoint. IBMCloudServiceCOSConfigVar string = "IBMCLOUD_COS_CONFIG_ENDPOINT" // IBMCloudServiceDNSServicesVar is the variable name used by the IBM Cloud Terraform Provider to override the DNS Services endpoint. IBMCloudServiceDNSServicesVar string = "IBMCLOUD_PRIVATE_DNS_API_ENDPOINT" // IBMCloudServiceGlobalCatalogVar is the variable name used by the IBM Cloud Terraform Provider to override the Global Catalog endpoint. IBMCloudServiceGlobalCatalogVar string = "IBMCLOUD_RESOURCE_CATALOG_API_ENDPOINT" // IBMCloudServiceGlobalSearchVar is the variable name used by the IBM Cloud Terraform Provider to override the Global Search endpoint. IBMCloudServiceGlobalSearchVar string = "IBMCLOUD_GS_API_ENDPOINT" //nolint:gosec // not hardcoded creds // IBMCloudServiceGlobalTaggingVar is the variable name used by the IBM Cloud Terraform Provider to override the Global Tagging endpoint. IBMCloudServiceGlobalTaggingVar string = "IBMCLOUD_GT_API_ENDPOINT" //nolint:gosec // not hardcoded creds // IBMCloudServiceHyperProtectVar is the variable name used by the IBM Cloud Terraform Provider to override the Hyper Protect endpoint. IBMCloudServiceHyperProtectVar string = "IBMCLOUD_HPCS_API_ENDPOINT" // IBMCloudServiceIAMVar is the variable name used by the IBM Cloud Terraform Provider to override the IAM endpoint. IBMCloudServiceIAMVar string = "IBMCLOUD_IAM_API_ENDPOINT" // IBMCloudServiceKeyProtectVar is the variable name used by the IBM Cloud Terraform Provider to override the Key Protect endpoint. IBMCloudServiceKeyProtectVar string = "IBMCLOUD_KP_API_ENDPOINT" //nolint:gosec // not hardcoded creds // IBMCloudServiceResourceControllerVar is the variable name used by the IBM Cloud Terraform Provider to override the Resource Controller endpoint. IBMCloudServiceResourceControllerVar string = "IBMCLOUD_RESOURCE_CONTROLLER_API_ENDPOINT" // IBMCloudServiceResourceManagerVar is the variable name used by the IBM Cloud Terraform Provider to override the Resource Manager endpoint. IBMCloudServiceResourceManagerVar string = "IBMCLOUD_RESOURCE_MANAGEMENT_API_ENDPOINT" // IBMCloudServiceVPCVar is the variable name used by the IBM Cloud Terraform Provider to override the VPC endpoint. IBMCloudServiceVPCVar string = "IBMCLOUD_IS_NG_API_ENDPOINT" // IBMCloudInfrastructureSecurityGroupTargetReference is the name of a generic IBM Cloud Infrastructure Security Group target. IBMCloudInfrastructureSecurityGroupTargetReference string = "*vpcv1.SecurityGroupTargetReference" )
const Name string = "ibmcloud"
Name is name for the ibmcloud platform.
Variables ¶
var ( // IBMCloudServiceOverrides is a set of IBM Cloud services allowed to have their endpoints overridden mapped to their override variable. IBMCloudServiceOverrides = map[configv1.IBMCloudServiceName]string{ configv1.IBMCloudServiceCIS: IBMCloudServiceCISVar, configv1.IBMCloudServiceCOS: IBMCloudServiceCOSVar, configv1.IBMCloudServiceCOSConfig: IBMCloudServiceCOSConfigVar, configv1.IBMCloudServiceDNSServices: IBMCloudServiceDNSServicesVar, configv1.IBMCloudServiceGlobalCatalog: IBMCloudServiceGlobalCatalogVar, configv1.IBMCloudServiceGlobalSearch: IBMCloudServiceGlobalSearchVar, configv1.IBMCloudServiceGlobalTagging: IBMCloudServiceGlobalTaggingVar, configv1.IBMCloudServiceHyperProtect: IBMCloudServiceHyperProtectVar, configv1.IBMCloudServiceIAM: IBMCloudServiceIAMVar, configv1.IBMCloudServiceKeyProtect: IBMCloudServiceKeyProtectVar, configv1.IBMCloudServiceResourceController: IBMCloudServiceResourceControllerVar, configv1.IBMCloudServiceResourceManager: IBMCloudServiceResourceManagerVar, configv1.IBMCloudServiceVPC: IBMCloudServiceVPCVar, } )
Functions ¶
func CheckServiceEndpointOverride ¶
func CheckServiceEndpointOverride(service configv1.IBMCloudServiceName, serviceEndpoints []configv1.IBMCloudServiceEndpoint) string
CheckServiceEndpointOverride checks whether a service has an override endpoint.
Types ¶
type BootVolume ¶
type BootVolume struct {
// EncryptionKey is the CRN referencing a Key Protect or Hyper Protect
// Crypto Services key to use for volume encryption. If not specified, a
// provider managed encryption key will be used.
// +optional
EncryptionKey string `json:"encryptionKey,omitempty"`
}
BootVolume stores the configuration for an individual machine's boot volume.
func (*BootVolume) DeepCopy ¶
func (in *BootVolume) DeepCopy() *BootVolume
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootVolume.
func (*BootVolume) DeepCopyInto ¶
func (in *BootVolume) DeepCopyInto(out *BootVolume)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DedicatedHost ¶
type DedicatedHost struct {
// Name is the name of the dedicated host to provision the machine on. If
// specified, machines will be created on pre-existing dedicated host.
// +optional
Name string `json:"name,omitempty"`
// Profile is the profile ID for the dedicated host. If specified, new
// dedicated host will be created for machines.
// +optional
Profile string `json:"profile,omitempty"`
}
DedicatedHost stores the configuration for the machine's dedicated host platform.
func (*DedicatedHost) DeepCopy ¶
func (in *DedicatedHost) DeepCopy() *DedicatedHost
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedHost.
func (*DedicatedHost) DeepCopyInto ¶
func (in *DedicatedHost) DeepCopyInto(out *DedicatedHost)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointsJSON ¶
type EndpointsJSON struct {
// IBMCloudEndpointCIS contains endpoint mapping for IBM Cloud CIS.
IBMCloudEndpointCIS *EndpointsVisibility `json:"IBMCLOUD_CIS_API_ENDPOINT,omitempty"`
// IBMCloudEndpointCOS contains endpoint mapping for IBM Cloud COS.
IBMCloudEndpointCOS *EndpointsVisibility `json:"IBMCLOUD_COS_ENDPOINT,omitempty"`
// IBMCloudEndpointCOSConfig contains endpoint mapping for IBM Cloud COS Config.
IBMCloudEndpointCOSConfig *EndpointsVisibility `json:"IBMCLOUD_COS_CONFIG_ENDPOINT,omitempty"`
// IBMCloudEndpointDNSServices contains endpoint mapping for IBM Cloud DNS Services.
IBMCloudEndpointDNSServices *EndpointsVisibility `json:"IBMCLOUD_PRIVATE_DNS_API_ENDPOINT,omitempty"`
// IBMCloudEndpointGlobalCatalog contains endpoint mapping for IBM Cloud Global Catalog.
IBMCloudEndpointGlobalCatalog *EndpointsVisibility `json:"IBMCLOUD_RESOURCE_CATALOG_API_ENDPOINT,omitempty"`
// IBMCloudEndpointGlobalSearch contains endpoint mapping for IBM Cloud Global Search.
IBMCloudEndpointGlobalSearch *EndpointsVisibility `json:"IBMCLOUD_GS_API_ENDPOINT,omitempty"`
// IBMCloudEndpointGlobalTagging contains endpoint mapping for IBM Cloud Global Tagging.
IBMCloudEndpointGlobalTagging *EndpointsVisibility `json:"IBMCLOUD_GT_API_ENDPOINT,omitempty"`
// IBMCloudEndpointHyperProtect contains endpoint mapping for IBM Cloud Hyper Protect.
IBMCloudEndpointHyperProtect *EndpointsVisibility `json:"IBMCLOUD_HPCS_API_ENDPOINT,omitempty"`
// IBMCloudEndpointIAM contains endpoint mapping for IBM Cloud IAM.
IBMCloudEndpointIAM *EndpointsVisibility `json:"IBMCLOUD_IAM_API_ENDPOINT,omitempty"`
// IBMCloudEndpointKeyProtect contains endpoint mapping for IBM Cloud Key Protect.
IBMCloudEndpointKeyProtect *EndpointsVisibility `json:"IBMCLOUD_KP_API_ENDPOINT,omitempty"`
// IBMCloudEndpointResourceController contains endpoint mapping for IBM Cloud Resource Controller.
IBMCloudEndpointResourceController *EndpointsVisibility `json:"IBMCLOUD_RESOURCE_CONTROLLER_API_ENDPOINT,omitempty"`
// IBMCloudEndpointResourceManager contains endpoint mapping for IBM Cloud Resource Manager.
IBMCloudEndpointResourceManager *EndpointsVisibility `json:"IBMCLOUD_RESOURCE_MANAGEMENT_API_ENDPOINT,omitempty"`
// IBMCloudEndpointVPC contains endpoint mapping for IBM Cloud VPC.
IBMCloudEndpointVPC *EndpointsVisibility `json:"IBMCLOUD_IS_NG_API_ENDPOINT,omitempty"`
}
EndpointsJSON represents the JSON format to override IBM Cloud Terraform provider utilized service endpoints. https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/guides/custom-service-endpoints#file-structure-for-endpoints-file
func (*EndpointsJSON) DeepCopy ¶
func (in *EndpointsJSON) DeepCopy() *EndpointsJSON
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsJSON.
func (*EndpointsJSON) DeepCopyInto ¶
func (in *EndpointsJSON) DeepCopyInto(out *EndpointsJSON)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EndpointsVisibility ¶
type EndpointsVisibility struct {
// Private is a string-string map of a region name to endpoint URL
// To prevent maintaining a list of supported regions here, we simply use a map instead of a struct
Private map[string]string `json:"private"`
// Public is a string-string map of a region name to endpoint URL
// To prevent maintaining a list of supported regions here, we simply use a map instead of a struct
Public map[string]string `json:"public"`
}
EndpointsVisibility contains region mapped endpoint for a service.
func (*EndpointsVisibility) DeepCopy ¶
func (in *EndpointsVisibility) DeepCopy() *EndpointsVisibility
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsVisibility.
func (*EndpointsVisibility) DeepCopyInto ¶
func (in *EndpointsVisibility) DeepCopyInto(out *EndpointsVisibility)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachinePool ¶
type MachinePool struct {
// InstanceType is the VSI machine profile.
InstanceType string `json:"type,omitempty"`
// Zones is the list of availability zones used for machines in the pool.
// +optional
Zones []string `json:"zones,omitempty"`
// BootVolume is the configuration for the machine's boot volume.
// +optional
BootVolume *BootVolume `json:"bootVolume,omitempty"`
// DedicatedHosts is the configuration for the machine's dedicated host and profile.
// +optional
DedicatedHosts []DedicatedHost `json:"dedicatedHosts,omitempty"`
}
MachinePool stores the configuration for a machine pool installed on IBM Cloud.
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.
func (*MachinePool) Set ¶
func (a *MachinePool) Set(required *MachinePool)
Set sets the values from `required` to `a`.
type Metadata ¶
type Metadata struct {
AccountID string `json:"accountID"`
BaseDomain string `json:"baseDomain"`
CISInstanceCRN string `json:"cisInstanceCRN,omitempty"`
DNSInstanceID string `json:"dnsInstanceID,omitempty"`
Region string `json:"region,omitempty"`
ResourceGroupName string `json:"resourceGroupName,omitempty"`
ServiceEndpoints []configv1.IBMCloudServiceEndpoint `json:"serviceEndpoints,omitempty"`
Subnets []string `json:"subnets,omitempty"`
VPC string `json:"vpc,omitempty"`
}
Metadata contains IBM Cloud 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.
func (*Metadata) GetRegionAndEndpointsFlag ¶
GetRegionAndEndpointsFlag will return the IBM Cloud region and any service endpoint overrides formatted as the IBM Cloud CAPI command line argument.
type Platform ¶
type Platform struct {
// Region specifies the IBM Cloud region where the cluster will be
// created.
Region string `json:"region"`
// ResourceGroupName is the name of an already existing resource group where the
// cluster should be installed. If empty, a new resource group will be created
// for the cluster.
// +optional
ResourceGroupName string `json:"resourceGroupName,omitempty"`
// NetworkResourceGroupName is the name of an already existing resource group
// where an existing VPC and set of Subnets exist, to be used during cluster
// creation.
// +optional
NetworkResourceGroupName string `json:"networkResourceGroupName,omitempty"`
// VPCName is the name of an already existing VPC to be used during cluster
// creation.
// +optional
VPCName string `json:"vpcName,omitempty"`
// ControlPlaneSubnets are the names of already existing subnets where the
// cluster control plane nodes should be created.
// +optional
ControlPlaneSubnets []string `json:"controlPlaneSubnets,omitempty"`
// ComputeSubnets are the names of already existing subnets where the cluster
// compute nodes should be created.
// +optional
ComputeSubnets []string `json:"computeSubnets,omitempty"`
// DefaultMachinePlatform is the default configuration used when installing
// on IBM Cloud for machine pools which do not define their own platform
// configuration.
// +optional
DefaultMachinePlatform *MachinePool `json:"defaultMachinePlatform,omitempty"`
// ServiceEndpoints is a list which contains custom endpoints to override default
// service endpoints of IBM Cloud Services.
// There must only be one ServiceEndpoint for a service (no duplicates).
// +optional
ServiceEndpoints []configv1.IBMCloudServiceEndpoint `json:"serviceEndpoints,omitempty"`
}
Platform stores all the global configuration that all machinesets use.
func (*Platform) ClusterResourceGroupName ¶
ClusterResourceGroupName returns the name of the resource group for the cluster.
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.
func (*Platform) GetVPCName ¶
GetVPCName returns the user provided name of the VPC for the cluster.