Documentation
¶
Overview ¶
Package powervs contains Power VS-specific structures for installer configuration and management.
Index ¶
- Constants
- Variables
- func AllKnownSysTypes() sets.Set[string]
- func AvailableSysTypes(region 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
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: []string{"dal10", "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: []string{"eu-de-1", "eu-de-2"}, SysTypes: []string{"s922", "e980"}, VPCZones: []string{"eu-de-2", "eu-de-3"}, }, "lon": { Description: "London, UK", VPCRegion: "eu-gb", COSRegion: "eu-gb", Zones: []string{"lon06"}, 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: []string{"mad02", "mad04"}, SysTypes: []string{"e980", "s1022"}, VPCZones: []string{"eu-es-1", "eu-es-2"}, }, "osa": { Description: "Osaka, Japan", VPCRegion: "jp-osa", COSRegion: "jp-osa", Zones: []string{"osa21"}, SysTypes: []string{"s922", "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: []string{"sao01", "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: []string{"syd04"}, SysTypes: []string{"s922", "e980"}, VPCZones: []string{"au-syd-1", "au-syd-2", "au-syd-3"}, }, "wdc": { Description: "Washington DC, USA", VPCRegion: "us-east", COSRegion: "us-east", Zones: []string{"wdc06", "wdc07"}, SysTypes: []string{"s922", "e980"}, 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) 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"`
TransitGatewayName string `json:"transitGatewayName"`
}
Metadata contains Power VS metadata (e.g. for uninstalling the cluster).
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 of a pre-created VPC inside IBM Cloud.
//
// +optional
VPCName 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 of a pre-created TransitGateway inside IBM Cloud.
//
// +optional
TGName string `json:"tgName,omitempty"`
}
Platform stores all the global configuration that all machinesets use.
type Region ¶
type Region struct {
Description string
VPCRegion string
COSRegion string
Zones []string
SysTypes []string
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.