powervs

package
v0.90.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2024 License: Apache-2.0 Imports: 5 Imported by: 14

Documentation

Overview

Package powervs contains Power VS-specific structures for installer configuration and management.

Index

Constants

View Source
const Name string = "powervs"

Name is name for the Power VS platform.

Variables

View Source
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 added in v0.9.153

func AllKnownSysTypes() sets.Set[string]

AllKnownSysTypes returns aggregated known system types from all regions.

func AvailableSysTypes added in v0.9.153

func AvailableSysTypes(region string) ([]string, error)

AvailableSysTypes returns the default system type for the zone.

func AvailableVPCZones added in v0.90.0

func AvailableVPCZones(region string) ([]string, error)

AvailableVPCZones returns the known VPC zones for a specified region.

func COSRegionForPowerVSRegion added in v0.9.153

func COSRegionForPowerVSRegion(region string) (string, error)

COSRegionForPowerVSRegion returns the IBM COS region for the specified PowerVS region.

func COSRegionForVPCRegion added in v0.9.153

func COSRegionForVPCRegion(vpcRegion string) (string, error)

COSRegionForVPCRegion returns the corresponding COS region for the given VPC region.

func RegionFromZone

func RegionFromZone(zone string) string

RegionFromZone returns the region name for a given zone name.

func RegionShortNames

func RegionShortNames() []string

RegionShortNames returns the list of region names

func VPCRegionForPowerVSRegion

func VPCRegionForPowerVSRegion(region string) (string, error)

VPCRegionForPowerVSRegion returns the VPC region for the specified PowerVS region.

func ValidateCOSRegion added in v0.9.153

func ValidateCOSRegion(region string) bool

ValidateCOSRegion validates that given COS region is known/tested.

func ValidateVPCRegion

func ValidateVPCRegion(region string) bool

ValidateVPCRegion validates that given VPC region is known/tested.

func ValidateZone

func ValidateZone(zone string) bool

ValidateZone validates that the given zone is known/tested.

func ZoneNames

func ZoneNames() []string

ZoneNames returns the list of zone names.

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"`
}

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL