powervs

package
v1.4.13 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2023 License: Apache-2.0 Imports: 3 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",
		Zones:       []string{"dal12"},
	},
	"eu-de": {
		Description: "Frankfurt, Germany",
		VPCRegion:   "eu-de",
		Zones: []string{
			"eu-de-1",
			"eu-de-2",
		},
	},
	"lon": {
		Description: "London, UK.",
		VPCRegion:   "eu-gb",
		Zones: []string{
			"lon04",
			"lon06",
		},
	},
	"mon": {
		Description: "Montreal, Canada",
		VPCRegion:   "ca-tor",
		Zones:       []string{"mon01"},
	},
	"osa": {
		Description: "Osaka, Japan",
		VPCRegion:   "jp-osa",
		Zones:       []string{"osa21"},
	},
	"syd": {
		Description: "Sydney, Australia",
		VPCRegion:   "au-syd",
		Zones: []string{
			"syd04",
			"syd05",
		},
	},
	"sao": {
		Description: "São Paulo, Brazil",
		VPCRegion:   "br-sao",
		Zones:       []string{"sao01"},
	},
	"tor": {
		Description: "Toronto, Canada",
		VPCRegion:   "ca-tor",
		Zones:       []string{"tor01"},
	},
	"tok": {
		Description: "Tokyo, Japan",
		VPCRegion:   "jp-tok",
		Zones:       []string{"tok04"},
	},
	"us-east": {
		Description: "Washington DC, USA",
		VPCRegion:   "us-east",
		Zones:       []string{"us-east"},
	},
}

Regions holds the regions for IBM Power VS, and descriptions used during the survey.

Functions

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

	// 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:"serviceInstanceID"`
}

Metadata contains Power VS metadata (e.g. for uninstalling the cluster).

type Platform

type Platform struct {

	// ServiceInstanceID is the ID of the Power IAAS instance created from the IBM Cloud Catalog
	ServiceInstanceID string `json:"serviceInstanceID"`

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

	// PVSNetworkName specifies an existing network within the Power VS Service Instance.
	//
	// +optional
	PVSNetworkName string `json:"pvsNetworkName,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"`

	// CloudConnctionName is the name of an existing Power VS Cloud connection.
	// If empty, one is created by the installer.
	// +optional
	CloudConnectionName string `json:"cloudConnectionName,omitempty"`
}

Platform stores all the global configuration that all machinesets use.

type Region

type Region struct {
	Description string
	VPCRegion   string
	Zones       []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