machinecontroller

package
v1.7.3 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2024 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CRDNames added in v1.3.0

func CRDNames() []string

func CreateMachineDeployments added in v1.0.0

func CreateMachineDeployments(s *state.State) error

CreateMachineDeployments creates MachineDeployments that create appropriate worker machines

func DestroyWorkers added in v0.7.0

func DestroyWorkers(s *state.State) error

DestroyWorkers destroys all MachineDeployment, MachineSet and Machine objects

func GenerateMachineDeploymentsManifest added in v1.0.0

func GenerateMachineDeploymentsManifest(s *state.State) (string, error)

GenerateMachineDeploymentsManifest generates YAML manifests containing all MachineDeployments present in the state.

func WaitDestroy added in v1.0.0

func WaitDestroy(s *state.State) error

WaitDestroy waits for all Machines to be deleted

func WaitReady added in v0.5.0

func WaitReady(s *state.State) error

WaitReady waits for machine-controller and its webhook to become ready

Types

type AWSSpec added in v0.7.0

type AWSSpec struct {
	AMI                string                 `json:"ami"`
	AssignPublicIP     *bool                  `json:"assignPublicIP"`
	AvailabilityZone   string                 `json:"availabilityZone"`
	DiskIops           *int                   `json:"diskIops,omitempty"`
	DiskSize           *int                   `json:"diskSize"`
	DiskType           string                 `json:"diskType"`
	EBSVolumeEncrypted bool                   `json:"ebsVolumeEncrypted"`
	InstanceProfile    string                 `json:"instanceProfile"`
	InstanceType       *string                `json:"instanceType"`
	IsSpotInstance     *bool                  `json:"isSpotInstance,omitempty"`
	SpotInstanceConfig *AWSSpotInstanceConfig `json:"spotInstanceConfig,omitempty"`
	Region             string                 `json:"region"`
	SecurityGroupIDs   []string               `json:"securityGroupIDs"`
	SubnetID           string                 `json:"subnetId"`
	Tags               map[string]string      `json:"tags"`
	VPCID              string                 `json:"vpcId"`
}

AWSSpec holds cloudprovider spec for AWS

type AWSSpotInstanceConfig added in v1.5.0

type AWSSpotInstanceConfig struct {
	MaxPrice             string `json:"maxPrice,omitempty"`
	PersistentRequest    bool   `json:"persistentRequest,omitempty"`
	InterruptionBehavior string `json:"interruptionBehavior,omitempty"`
}

type AzureImagePlan added in v1.0.0

type AzureImagePlan struct {
	Name      string `json:"name,omitempty"`
	Publisher string `json:"publisher,omitempty"`
	Product   string `json:"product,omitempty"`
}

type AzureImageReference added in v1.4.4

type AzureImageReference struct {
	Publisher string `json:"publisher,omitempty"`
	Offer     string `json:"offer,omitempty"`
	Sku       string `json:"sku,omitempty"`
	Version   string `json:"version,omitempty"`
}

type AzureSpec added in v0.9.0

type AzureSpec struct {
	Location              string               `json:"location"`
	ResourceGroup         string               `json:"resourceGroup"`
	VNetResourceGroup     string               `json:"vnetResourceGroup"`
	VMSize                string               `json:"vmSize"`
	VNetName              string               `json:"vnetName"`
	SubnetName            string               `json:"subnetName"`
	LoadBalancerSku       string               `json:"loadBalancerSku"`
	RouteTableName        string               `json:"routeTableName"`
	AvailabilitySet       string               `json:"availabilitySet"`
	AssignAvailabilitySet *bool                `json:"assignAvailabilitySet,omitempty"`
	SecurityGroupName     string               `json:"securityGroupName"`
	Zones                 []string             `json:"zones"`
	ImagePlan             *AzureImagePlan      `json:"imagePlan"`
	ImageReference        *AzureImageReference `json:"imageReference,omitempty"`

	ImageID        string            `json:"imageID"`
	OSDiskSize     int               `json:"osDiskSize"`
	OSDiskSKU      *string           `json:"osDiskSKU,omitempty"`
	DataDiskSize   int               `json:"dataDiskSize"`
	DataDiskSKU    *string           `json:"dataDiskSKU,omitempty"`
	AssignPublicIP bool              `json:"assignPublicIP"`
	Tags           map[string]string `json:"tags"`
}

AzureSpec holds cloudprovider spec for Azure

type DigitalOceanSpec added in v0.7.0

type DigitalOceanSpec struct {
	Region            string   `json:"region"`
	Size              string   `json:"size"`
	Backups           bool     `json:"backups"`
	IPv6              bool     `json:"ipv6"`
	PrivateNetworking bool     `json:"private_networking"`
	Monitoring        bool     `json:"monitoring"`
	Tags              []string `json:"tags"`
}

DigitalOceanSpec holds cloudprovider spec for DigitalOcean

type EquinixMetalSpec added in v1.4.0

type EquinixMetalSpec struct {
	ProjectID    string   `json:"projectID"`
	BillingCycle string   `json:"billingCycle"`
	Metro        string   `json:"metro"`
	Facilities   []string `json:"facilities"`
	InstanceType string   `json:"instanceType"`
	Tags         []string `json:"tags,omitempty"`
}

EquinixMetalSpec holds cloudprovider spec for Equinix Metal

type GCESpec added in v0.7.0

type GCESpec struct {
	DiskSize              int               `json:"diskSize"`
	DiskType              string            `json:"diskType"`
	MachineType           string            `json:"machineType"`
	Network               string            `json:"network"`
	Subnetwork            string            `json:"subnetwork"`
	Zone                  string            `json:"zone"`
	Preemptible           bool              `json:"preemptible"`
	AssignPublicIPAddress *bool             `json:"assignPublicIPAddress"`
	Labels                map[string]string `json:"labels"`
	Tags                  []string          `json:"tags"`
	MultiZone             *bool             `json:"multizone"`
	Regional              *bool             `json:"regional"`
	CustomImage           string            `json:"customImage,omitempty"`
}

GCESpec holds cloudprovider spec for GCE

type HetznerSpec added in v0.7.0

type HetznerSpec struct {
	ServerType string            `json:"serverType"`
	Datacenter string            `json:"datacenter"`
	Location   string            `json:"location"`
	Image      string            `json:"image"`
	Networks   []string          `json:"networks"`
	Labels     map[string]string `json:"labels,omitempty"`
}

HetznerSpec holds cloudprovider spec for Hetzner

type NutanixSpec added in v1.4.0

type NutanixSpec struct {
	ClusterName string  `json:"clusterName"`
	ProjectName *string `json:"projectName,omitempty"`
	SubnetName  string  `json:"subnetName"`
	ImageName   string  `json:"imageName"`

	// VM sizing configuration
	CPUs           int64  `json:"cpus"`
	CPUCores       *int64 `json:"cpuCores,omitempty"`
	CPUPassthrough *bool  `json:"cpuPassthrough,omitempty"`
	MemoryMB       int64  `json:"memoryMB"`
	DiskSize       *int64 `json:"diskSize,omitempty"`

	// Metadata related configuration
	Categories map[string]string `json:"categories,omitempty"`
}

NutanixSpec holds cloudprovider spec for Nutanix

type OpenStackSpec added in v0.7.0

type OpenStackSpec struct {
	Image                 string            `json:"image"`
	Flavor                string            `json:"flavor"`
	SecurityGroups        []string          `json:"securityGroups"`
	FloatingIPPool        string            `json:"floatingIPPool"`
	AvailabilityZone      string            `json:"availabilityZone"`
	Network               string            `json:"network"`
	Subnet                string            `json:"subnet"`
	RootDiskSizeGB        *int              `json:"rootDiskSizeGB,omitempty"`
	NodeVolumeAttachLimit *uint             `json:"nodeVolumeAttachLimit,omitempty"`
	TrustDevicePath       bool              `json:"trustDevicePath"`
	Tags                  map[string]string `json:"tags"`
}

OpenStackSpec holds cloudprovider spec for OpenStack

type PacketSpec added in v0.7.0

type PacketSpec struct {
	ProjectID    string   `json:"projectID"`
	BillingCycle string   `json:"billingCycle"`
	Facilities   []string `json:"facilities"`
	InstanceType string   `json:"instanceType"`
	Tags         []string `json:"tags,omitempty"`
}

PacketSpec holds cloudprovider spec for Packet TODO: Remove after deprecation period.

type VMWareCloudDirectorSpec added in v1.5.0

type VMWareCloudDirectorSpec struct {
	// Provider configuration.
	Organization  string `json:"organization"`
	VDC           string `json:"vdc"`
	AllowInsecure bool   `json:"allowInsecure"`

	// VM configuration.
	VApp            string  `json:"vapp"`
	Template        string  `json:"template"`
	Catalog         string  `json:"catalog"`
	PlacementPolicy *string `json:"placementPolicy,omitempty"`

	// Network configuration.
	Network          string `json:"network"`
	IPAllocationMode string `json:"ipAllocationMode"`

	// Compute configuration.
	CPUs         int64   `json:"cpus"`
	CPUCores     int64   `json:"cpuCores"`
	MemoryMB     int64   `json:"memoryMB"`
	SizingPolicy *string `json:"sizingPolicy,omitempty"`

	// Storage configuration.
	DiskSizeGB     *int64  `json:"diskSizeGB,omitempty"`
	StorageProfile *string `json:"storageProfile,omitempty"`
	DiskIOPS       *int64  `json:"diskIOPS,omitempty"`
	DiskBusType    *string `json:"diskBusType,omitempty"`

	// Metadata configuration.
	Metadata *map[string]string `json:"metadata,omitempty"`
}

VMWareCloudDirectorSpec represents VMware Cloud Director specific configuration.

type VSphereSpec added in v0.8.0

type VSphereSpec struct {
	AllowInsecure    bool   `json:"allowInsecure"`
	Cluster          string `json:"cluster"`
	CPUs             int    `json:"cpus"`
	Datacenter       string `json:"datacenter"`
	Datastore        string `json:"datastore"`
	DatastoreCluster string `json:"datastoreCluster"`
	DiskSizeGB       *int   `json:"diskSizeGB,omitempty"`
	Folder           string `json:"folder"`
	ResourcePool     string `json:"resourcePool"`
	MemoryMB         int    `json:"memoryMB"`
	TemplateVMName   string `json:"templateVMName"`
	VMNetName        string `json:"vmNetName,omitempty"`
}

VSphereSpec holds cloudprovider spec for vSphere

Jump to

Keyboard shortcuts

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