Documentation
¶
Overview ¶
Package powervs contains Power VS-specific structures for installer configuration and management. +k8s:deepcopy-gen=package
Index ¶
- Constants
- Variables
- func AllKnownSysTypes() sets.Set[string]
- func AvailableSysTypes(region string, zone string) ([]string, error)
- func AvailableVPCZones(region string) ([]string, error)
- func COSRegionForPowerVSRegion(region string) (string, error)
- func COSRegionForVPCRegion(vpcRegion string) (string, error)
- func RegionFromZone(zone string) string
- func RegionShortNames() []string
- func VPCRegionForPowerVSRegion(region string) (string, error)
- func ValidateCOSRegion(region string) bool
- func ValidateVPCRegion(region string) bool
- func ValidateZone(zone string) bool
- func ZoneNames() []string
- type MachinePool
- type Metadata
- type Platform
- type Region
- type Zone
Constants ¶
const Name string = "powervs"
Name is name for the Power VS platform.
Variables ¶
var Regions = map[string]Region{ "dal": { Description: "Dallas, USA", VPCRegion: "us-south", COSRegion: "us-south", Zones: map[string]Zone{ "dal10": { SysTypes: []string{"s922", "s1022", "e980", "e1080"}, }, "dal12": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"us-south-1", "us-south-2", "us-south-3"}, }, "eu-de": { Description: "Frankfurt, Germany", VPCRegion: "eu-de", COSRegion: "eu-de", Zones: map[string]Zone{ "eu-de-1": { SysTypes: []string{"s922", "s1022", "e980"}, }, "eu-de-2": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"eu-de-1", "eu-de-2", "eu-de-3"}, }, "lon": { Description: "London, UK", VPCRegion: "eu-gb", COSRegion: "eu-gb", Zones: map[string]Zone{ "lon06": { SysTypes: []string{"s922", "e980"}, }, "lon04": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"eu-gb-1", "eu-gb-2", "eu-gb-3"}, }, "mad": { Description: "Madrid, Spain", VPCRegion: "eu-es", COSRegion: "eu-de", Zones: map[string]Zone{ "mad02": { SysTypes: []string{"s922", "s1022", "e980"}, }, "mad04": { SysTypes: []string{"s1022", "e980", "e1080"}, }, }, VPCZones: []string{"eu-es-1", "eu-es-2"}, }, "osa": { Description: "Osaka, Japan", VPCRegion: "jp-osa", COSRegion: "jp-osa", Zones: map[string]Zone{ "osa21": { SysTypes: []string{"s922", "s1022", "e980"}, }, }, VPCZones: []string{"jp-osa-1", "jp-osa-2", "jp-osa-3"}, }, "sao": { Description: "São Paulo, Brazil", VPCRegion: "br-sao", COSRegion: "br-sao", Zones: map[string]Zone{ "sao01": { SysTypes: []string{"s922", "e980"}, }, "sao04": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"br-sao-1", "br-sao-2", "br-sao-3"}, }, "syd": { Description: "Sydney, Australia", VPCRegion: "au-syd", COSRegion: "au-syd", Zones: map[string]Zone{ "syd04": { SysTypes: []string{"s922", "e980"}, }, "syd05": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"au-syd-1", "au-syd-2", "au-syd-3"}, }, "tor": { Description: "Toronto, Canada", VPCRegion: "ca-tor", COSRegion: "ca-tor", Zones: map[string]Zone{ "tor01": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"ca-tor-1", "ca-tor-2", "ca-tor-3"}, }, "us-east": { Description: "Washington DC, USA", VPCRegion: "us-east", COSRegion: "us-east", Zones: map[string]Zone{ "us-east": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"us-east-1", "us-east-2", "us-east-3"}, }, "us-south": { Description: "Dallas, USA", VPCRegion: "us-south", COSRegion: "us-south", Zones: map[string]Zone{ "us-south": { SysTypes: []string{"s922", "e980"}, }, }, VPCZones: []string{"us-south-1", "us-south-2", "us-south-3"}, }, "wdc": { Description: "Washington DC, USA", VPCRegion: "us-east", COSRegion: "us-east", Zones: map[string]Zone{ "wdc06": { SysTypes: []string{"s922", "e980"}, }, "wdc07": { SysTypes: []string{"s922", "s1022", "e980", "e1080"}, }, }, VPCZones: []string{"us-east-1", "us-east-2", "us-east-3"}, }, }
Regions holds the regions for IBM Power VS, and descriptions used during the survey.
Functions ¶
func AllKnownSysTypes ¶
AllKnownSysTypes returns aggregated known system types from all regions.
func AvailableSysTypes ¶
AvailableSysTypes returns the default system type for the zone.
func AvailableVPCZones ¶ added in v0.90.0
AvailableVPCZones returns the known VPC zones for a specified region.
func COSRegionForPowerVSRegion ¶ added in v0.9.153
COSRegionForPowerVSRegion returns the IBM COS region for the specified PowerVS region.
func COSRegionForVPCRegion ¶ added in v0.9.153
COSRegionForVPCRegion returns the corresponding COS region for the given VPC region.
func RegionFromZone ¶
RegionFromZone returns the region name for a given zone name.
func RegionShortNames ¶
func RegionShortNames() []string
RegionShortNames returns the list of region names
func VPCRegionForPowerVSRegion ¶
VPCRegionForPowerVSRegion returns the VPC region for the specified PowerVS region.
func ValidateCOSRegion ¶ added in v0.9.153
ValidateCOSRegion validates that given COS region is known/tested.
func ValidateVPCRegion ¶
ValidateVPCRegion validates that given VPC region is known/tested.
func ValidateZone ¶
ValidateZone validates that the given zone is known/tested.
Types ¶
type MachinePool ¶
type MachinePool struct {
// VolumeIDs is the list of volumes attached to the instance.
//
// +optional
VolumeIDs []string `json:"volumeIDs,omitempty"`
// memoryGiB is the size of a virtual machine's memory, in GiB.
//
// +optional
MemoryGiB int32 `json:"memoryGiB,omitempty"`
// Processors defines the processing units for the instance.
//
// +optional
Processors intstr.IntOrString `json:"processors,omitempty"`
// ProcType defines the processor sharing model for the instance.
// Must be one of {Capped, Dedicated, Shared}.
//
// +kubebuilder:validation:Enum:="Dedicated";"Shared";"Capped";""
// +optional
ProcType machinev1.PowerVSProcessorType `json:"procType,omitempty"`
// SMTLevel specifies the level of SMT to set the control plane and worker nodes to.
//
// +optional
SMTLevel string `json:"smtLevel,omitempty"`
// SysType defines the system type for instance.
//
// +optional
SysType string `json:"sysType,omitempty"`
}
MachinePool stores the configuration for a machine pool installed on IBM Power VS.
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 stores values from required into a
type Metadata ¶
type Metadata struct {
BaseDomain string `json:"BaseDomain"`
CISInstanceCRN string `json:"cisInstanceCRN"`
DNSInstanceCRN string `json:"dnsInstanceCRN"`
PowerVSResourceGroup string `json:"powerVSResourceGroup"`
Region string `json:"region"`
VPCRegion string `json:"vpcRegion"`
Zone string `json:"zone"`
ServiceInstanceGUID string `json:"serviceInstanceGUID"`
ServiceEndpoints []configv1.PowerVSServiceEndpoint `json:"serviceEndpoints,omitempty"`
TransitGateway string `json:"transitGatewayName"`
VPC string `json:"vpcName"`
}
Metadata contains Power VS metadata (e.g. for uninstalling the cluster).
func (*Metadata) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Platform ¶
type Platform struct {
// PowerVSResourceGroup is the resource group in which Power VS resources will be created.
PowerVSResourceGroup string `json:"powervsResourceGroup"`
// Region specifies the IBM Cloud colo region where the cluster will be created.
Region string `json:"region,omitempty"`
// Zone specifies the IBM Cloud colo region where the cluster will be created.
// At this time, only single-zone clusters are supported.
Zone string `json:"zone"`
// VPCRegion specifies the IBM Cloud region in which to create VPC resources.
// Leave unset to allow installer to select the closest VPC region.
//
// +optional
VPCRegion string `json:"vpcRegion,omitempty"`
// UserID is the login for the user's IBM Cloud account.
UserID string `json:"userID"`
// vpcName is the name or id of a pre-created VPC inside IBM Cloud.
//
// +optional
VPC string `json:"vpcName,omitempty"`
// VPCSubnets specifies existing subnets (by ID) where cluster
// resources will be created. Leave unset to have the installer
// create subnets in a new VPC on your behalf.
//
// +optional
VPCSubnets []string `json:"vpcSubnets,omitempty"`
// ClusterOSImage is a pre-created Power VS boot image that overrides the
// default image for cluster nodes.
//
// +optional
ClusterOSImage string `json:"clusterOSImage,omitempty"`
// DefaultMachinePlatform is the default configuration used when
// installing on Power VS for machine pools which do not define their own
// platform configuration.
//
// +optional
DefaultMachinePlatform *MachinePool `json:"defaultMachinePlatform,omitempty"`
// ServiceInstanceGUID is the GUID of the Power IAAS instance created from the IBM Cloud Catalog
// before the cluster is completed. Leave unset to allow the installer to create a service
// instance during cluster creation.
//
// +optional
ServiceInstanceGUID string `json:"serviceInstanceGUID,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.PowerVSServiceEndpoint `json:"serviceEndpoints,omitempty"`
// tgName is the name or id of a pre-created TransitGateway inside IBM Cloud.
//
// +optional
TransitGateway string `json:"tgName,omitempty"`
}
Platform stores all the global configuration that all machinesets use.
func (*Platform) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Platform.
func (*Platform) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Region ¶
type Region struct {
Description string
VPCRegion string
COSRegion string
Zones map[string]Zone
VPCZones []string
}
Region describes resources associated with a region in Power VS. We're using a few items from the IBM Cloud VPC offering. The region names for VPC are different so another function of this is to correlate those.
func (*Region) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Region.
func (*Region) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Zone ¶
type Zone struct {
SysTypes []string
}
Zone holds the sysTypes for a zone in a IBM Power VS region.
func (*Zone) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Zone.
func (*Zone) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.