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{"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 ¶ added in v0.9.153
AllKnownSysTypes returns aggregated known system types from all regions.
func AvailableSysTypes ¶ added in v0.9.153
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"` }
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"` }
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.