v1beta2

package
v0.4.8-rc2 Latest Latest
Warning

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

Go to latest
Published: Oct 12, 2022 License: Apache-2.0 Imports: 19 Imported by: 5

Documentation

Overview

Package v1beta2 contains API Schema definitions for the infrastructure v1beta2 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Package v1beta2 contains API Schema definitions for the infrastructure v1beta2 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Index

Constants

View Source
const (
	FailureDomainFinalizer = "cloudstackfailuredomain.infrastructure.cluster.x-k8s.io"
	FailureDomainLabelName = "cloudstackfailuredomain.infrastructure.cluster.x-k8s.io/name"
	NetworkTypeIsolated    = "Isolated"
	NetworkTypeShared      = "Shared"
)
View Source
const (
	// The presence of a finalizer prevents CAPI from deleting the corresponding CAPI data.
	MachineFinalizer = "cloudstackmachine.infrastructure.cluster.x-k8s.io"
	ProAffinity      = "pro"
	AntiAffinity     = "anti"
	NoAffinity       = "no"
)
View Source
const (
	AffinityGroupFinalizer = "affinitygroup.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	ClusterFinalizer = "cloudstackcluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// The presence of a finalizer prevents CAPI from deleting the corresponding CAPI data.
	IsolatedNetworkFinalizer = "cloudstackisolatednetwork.infrastructure.cluster.x-k8s.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta2"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var K8sClient client.Client

Functions

func FailureDomainHashedMetaName

func FailureDomainHashedMetaName(fdName, clusterName string) string

FailureDomainHashedMetaName returns an MD5 name generated from the FailureDomain and Cluster name. FailureDomains must have a unique name even when potentially sharing a namespace with other clusters. In the future we may remove the ability to run multiple clusters in a single namespace, but today this is a consequence of being upstream of EKS-A which does run multiple clusters in a single namepace.

func FailureDomainsEqual

func FailureDomainsEqual(fd1, fd2 CloudStackFailureDomainSpec) bool

FailureDomainsEqual is a manual deep equal on failure domains.

func ValidateFailureDomainUpdates

func ValidateFailureDomainUpdates(oldFDs, newFDs []CloudStackFailureDomainSpec) *field.Error

ValidateFailureDomainUpdates verifies that at least one failure domain has not been deleted, and failure domains that are held over have not been modified.

Types

type CloudStackAffinityGroup

type CloudStackAffinityGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CloudStackAffinityGroupSpec   `json:"spec,omitempty"`
	Status CloudStackAffinityGroupStatus `json:"status,omitempty"`
}

CloudStackAffinityGroup is the Schema for the cloudstackaffinitygroups API

func (*CloudStackAffinityGroup) Hub

func (*CloudStackAffinityGroup) Hub()

Hub marks CloudStackAffinityGroup as a conversion hub.

type CloudStackAffinityGroupList

type CloudStackAffinityGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackAffinityGroup `json:"items"`
}

CloudStackAffinityGroupList contains a list of CloudStackAffinityGroup

func (*CloudStackAffinityGroupList) Hub

Hub marks CloudStackAffinityGroupList as a conversion hub.

type CloudStackAffinityGroupSpec

type CloudStackAffinityGroupSpec struct {
	// Mutually exclusive parameter with AffinityGroupIDs.
	// Can be "host affinity" or "host anti-affinity". Will create an affinity group per machine set.
	Type string `json:"type,omitempty"`

	// Name.
	Name string `json:"name,omitempty"`

	// ID.
	//+optional
	ID string `json:"id,omitempty"`

	// FailureDomainName -- the name of the FailureDomain the machine is placed in.
	// +optional
	// +k8s:conversion-gen=false
	FailureDomainName string `json:"failureDomainName,omitempty"`
}

CloudStackAffinityGroupSpec defines the desired state of CloudStackAffinityGroup

type CloudStackAffinityGroupStatus

type CloudStackAffinityGroupStatus struct {
	// Reflects the readiness of the CS Affinity Group.
	Ready bool `json:"ready"`
}

CloudStackAffinityGroupStatus defines the observed state of CloudStackAffinityGroup

type CloudStackCluster

type CloudStackCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec CloudStackClusterSpec `json:"spec,omitempty"`

	// The actual cluster state reported by CloudStack.
	Status CloudStackClusterStatus `json:"status,omitempty"`
}

CloudStackCluster is the Schema for the cloudstackclusters API

func (*CloudStackCluster) Default

func (r *CloudStackCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*CloudStackCluster) Hub

func (*CloudStackCluster) Hub()

Hub marks CloudStackCluster as a conversion hub.

func (*CloudStackCluster) SetupWebhookWithManager

func (r *CloudStackCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*CloudStackCluster) ValidateCreate

func (r *CloudStackCluster) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*CloudStackCluster) ValidateDelete

func (r *CloudStackCluster) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*CloudStackCluster) ValidateUpdate

func (r *CloudStackCluster) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type CloudStackClusterList

type CloudStackClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackCluster `json:"items"`
}

CloudStackClusterList contains a list of CloudStackCluster

func (*CloudStackClusterList) Hub

func (*CloudStackClusterList) Hub()

Hub marks CloudStackClusterList as a conversion hub.

type CloudStackClusterSpec

type CloudStackClusterSpec struct {
	FailureDomains []CloudStackFailureDomainSpec `json:"failureDomains"`

	// The kubernetes control plane endpoint.
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`
}

CloudStackClusterSpec defines the desired state of CloudStackCluster.

type CloudStackClusterStatus

type CloudStackClusterStatus struct {

	// CAPI recognizes failure domains as a method to spread machines.
	// CAPC sets failure domains to indicate functioning CloudStackFailureDomains.
	// +optional
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`

	// Reflects the readiness of the CS cluster.
	Ready bool `json:"ready"`
}

The status of the CloudStackCluster object.

type CloudStackFailureDomain

type CloudStackFailureDomain struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CloudStackFailureDomainSpec   `json:"spec"`
	Status CloudStackFailureDomainStatus `json:"status,omitempty"`
}

CloudStackFailureDomain is the Schema for the cloudstackfailuredomains API

func (*CloudStackFailureDomain) Hub

func (*CloudStackFailureDomain) Hub()

Hub marks CloudStackFailureDomain as a conversion hub.

type CloudStackFailureDomainList

type CloudStackFailureDomainList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackFailureDomain `json:"items"`
}

CloudStackFailureDomainList contains a list of CloudStackFailureDomain

func (*CloudStackFailureDomainList) Hub

Hub marks CloudStackFailureDomainList as a conversion hub.

type CloudStackFailureDomainSpec

type CloudStackFailureDomainSpec struct {
	// The failure domain unique name.
	Name string `json:"name"`

	// The ACS Zone for this failure domain.
	Zone CloudStackZoneSpec `json:"zone"`

	// CloudStack account.
	// +optional
	Account string `json:"account,omitempty"`

	// CloudStack domain.
	// +optional
	Domain string `json:"domain,omitempty"`

	// Apache CloudStack Endpoint secret reference.
	ACSEndpoint corev1.SecretReference `json:"acsEndpoint"`
}

CloudStackFailureDomainSpec defines the desired state of CloudStackFailureDomain

type CloudStackFailureDomainStatus

type CloudStackFailureDomainStatus struct {
	// Reflects the readiness of the CloudStack Failure Domain.
	Ready bool `json:"ready"`
}

CloudStackFailureDomainStatus defines the observed state of CloudStackFailureDomain

type CloudStackIsolatedNetwork

type CloudStackIsolatedNetwork struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CloudStackIsolatedNetworkSpec   `json:"spec,omitempty"`
	Status CloudStackIsolatedNetworkStatus `json:"status,omitempty"`
}

CloudStackIsolatedNetwork is the Schema for the cloudstackisolatednetworks API

func (*CloudStackIsolatedNetwork) Hub

Hub marks CloudStackIsolatedNetwork as a conversion hub.

func (*CloudStackIsolatedNetwork) Network

func (n *CloudStackIsolatedNetwork) Network() *Network

type CloudStackIsolatedNetworkList

type CloudStackIsolatedNetworkList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackIsolatedNetwork `json:"items"`
}

CloudStackIsolatedNetworkList contains a list of CloudStackIsolatedNetwork

func (*CloudStackIsolatedNetworkList) Hub

Hub marks CloudStackIsolatedNetworkList as a conversion hub.

type CloudStackIsolatedNetworkSpec

type CloudStackIsolatedNetworkSpec struct {
	// Name.
	//+optional
	Name string `json:"name,omitempty"`

	// ID.
	//+optional
	ID string `json:"id,omitempty"`

	// The kubernetes control plane endpoint.
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`

	//+k8s:conversion-gen=false
	// FailureDomainName -- the FailureDomain the network is placed in.
	FailureDomainName string `json:"failureDomainName"`
}

CloudStackIsolatedNetworkSpec defines the desired state of CloudStackIsolatedNetwork

type CloudStackIsolatedNetworkStatus

type CloudStackIsolatedNetworkStatus struct {
	// The CS public IP ID to use for the k8s endpoint.
	PublicIPID string `json:"publicIPID,omitempty"`

	// The ID of the lb rule used to assign VMs to the lb.
	LBRuleID string `json:"loadBalancerRuleID,omitempty"`

	// Ready indicates the readiness of this provider resource.
	Ready bool `json:"ready"`
}

CloudStackIsolatedNetworkStatus defines the observed state of CloudStackIsolatedNetwork

type CloudStackMachine

type CloudStackMachine struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CloudStackMachineSpec   `json:"spec,omitempty"`
	Status CloudStackMachineStatus `json:"status,omitempty"`
}

CloudStackMachine is the Schema for the cloudstackmachines API

func (*CloudStackMachine) Default

func (r *CloudStackMachine) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*CloudStackMachine) Hub

func (*CloudStackMachine) Hub()

Hub marks CloudStackMachine as a conversion hub.

func (*CloudStackMachine) SetupWebhookWithManager

func (r *CloudStackMachine) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*CloudStackMachine) ValidateCreate

func (r *CloudStackMachine) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*CloudStackMachine) ValidateDelete

func (r *CloudStackMachine) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*CloudStackMachine) ValidateUpdate

func (r *CloudStackMachine) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type CloudStackMachineList

type CloudStackMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackMachine `json:"items"`
}

CloudStackMachineList contains a list of CloudStackMachine

func (*CloudStackMachineList) Hub

func (*CloudStackMachineList) Hub()

Hub marks CloudStackMachineList as a conversion hub.

type CloudStackMachineSpec

type CloudStackMachineSpec struct {
	// Name.
	//+optional
	Name string `json:"name,omitempty"`

	// ID.
	//+optional
	ID string `json:"id,omitempty"`

	// Instance ID. Should only be useful to modify an existing instance.
	InstanceID *string `json:"instanceID,omitempty"`

	// CloudStack compute offering.
	Offering CloudStackResourceIdentifier `json:"offering"`

	// CloudStack template to use.
	Template CloudStackResourceIdentifier `json:"template"`

	// CloudStack disk offering to use.
	// +optional
	DiskOffering CloudStackResourceDiskOffering `json:"diskOffering,omitempty"`

	// CloudStack ssh key to use.
	// +optional
	SSHKey string `json:"sshKey"`

	// Optional details map for deployVirtualMachine
	Details map[string]string `json:"details,omitempty"`

	// Optional affinitygroupids for deployVirtualMachine
	// +optional
	AffinityGroupIDs []string `json:"affinityGroupIDs,omitempty"`

	// Mutually exclusive parameter with AffinityGroupIDs.
	// Defaults to `no`. Can be `pro` or `anti`. Will create an affinity group per machine set.
	// +optional
	Affinity string `json:"affinity,omitempty"`

	// Mutually exclusive parameter with AffinityGroupIDs.
	// Is a reference to a CloudStack affinity group CRD.
	// +optional
	AffinityGroupRef *corev1.ObjectReference `json:"cloudstackAffinityRef,omitempty"`

	// The CS specific unique identifier. Of the form: fmt.Sprintf("cloudstack:///%s", CS Machine ID)
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// FailureDomainName -- the name of the FailureDomain the machine is placed in.
	// +optional
	// +k8s:conversion-gen=false
	FailureDomainName string `json:"failureDomainName,omitempty"`
}

CloudStackMachineSpec defines the desired state of CloudStackMachine

type CloudStackMachineStateChecker

type CloudStackMachineStateChecker struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CloudStackMachineStateCheckerSpec   `json:"spec,omitempty"`
	Status CloudStackMachineStateCheckerStatus `json:"status,omitempty"`
}

CloudStackMachineStateChecker is the Schema for the cloudstackmachinestatecheckers API

func (*CloudStackMachineStateChecker) Hub

Hub marks CloudStackMachineStateChecker as a conversion hub.

type CloudStackMachineStateCheckerList

type CloudStackMachineStateCheckerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackMachineStateChecker `json:"items"`
}

CloudStackMachineStateCheckerList contains a list of CloudStackMachineStateChecker

func (*CloudStackMachineStateCheckerList) Hub

Hub marks CloudStackMachineStateCheckerList as a conversion hub.

type CloudStackMachineStateCheckerSpec

type CloudStackMachineStateCheckerSpec struct {
	// CloudStack machine instance ID
	InstanceID string `json:"instanceID,omitempty"`
}

CloudStackMachineStateCheckerSpec

type CloudStackMachineStateCheckerStatus

type CloudStackMachineStateCheckerStatus struct {
	// Reflects the readiness of the Machine State Checker.
	Ready bool `json:"ready"`
}

CloudStackMachineStateCheckerStatus defines the observed state of CloudStackMachineStateChecker

type CloudStackMachineStatus

type CloudStackMachineStatus struct {
	// Addresses contains a CloudStack VM instance's IP addresses.
	Addresses []corev1.NodeAddress `json:"addresses,omitempty"`

	// InstanceState is the state of the CloudStack instance for this machine.
	// +optional
	InstanceState string `json:"instanceState,omitempty"`

	// InstanceStateLastUpdated is the time the instance state was last updated.
	// +optional
	InstanceStateLastUpdated metav1.Time `json:"instanceStateLastUpdated,omitempty"`

	// Ready indicates the readiness of the provider resource.
	Ready bool `json:"ready"`
}

Type pulled mostly from the CloudStack API.

func (*CloudStackMachineStatus) TimeSinceLastStateChange

func (s *CloudStackMachineStatus) TimeSinceLastStateChange() time.Duration

TimeSinceLastStateChange returns the amount of time that's elapsed since the state was last updated. If the state hasn't ever been updated, it returns a negative value.

type CloudStackMachineTemplate

type CloudStackMachineTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec CloudStackMachineTemplateSpec `json:"spec,omitempty"`
}

CloudStackMachineTemplate is the Schema for the cloudstackmachinetemplates API

func (*CloudStackMachineTemplate) Default

func (r *CloudStackMachineTemplate) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*CloudStackMachineTemplate) Hub

Hub marks CloudStackMachineTemplate as a conversion hub.

func (*CloudStackMachineTemplate) SetupWebhookWithManager

func (r *CloudStackMachineTemplate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*CloudStackMachineTemplate) ValidateCreate

func (r *CloudStackMachineTemplate) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*CloudStackMachineTemplate) ValidateDelete

func (r *CloudStackMachineTemplate) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*CloudStackMachineTemplate) ValidateUpdate

func (r *CloudStackMachineTemplate) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type CloudStackMachineTemplateList

type CloudStackMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CloudStackMachineTemplate `json:"items"`
}

CloudStackMachineTemplateList contains a list of CloudStackMachineTemplate

func (*CloudStackMachineTemplateList) Hub

Hub marks CloudStackMachineTemplateList as a conversion hub.

type CloudStackMachineTemplateResource

type CloudStackMachineTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	// +nullable
	ObjectMeta metav1.ObjectMeta     `json:"metadata,omitempty"`
	Spec       CloudStackMachineSpec `json:"spec"`
}

type CloudStackMachineTemplateSpec

type CloudStackMachineTemplateSpec struct {
	Spec CloudStackMachineTemplateResource `json:"template"`
}

CloudStackMachineTemplateSpec defines the desired state of CloudStackMachineTemplate

type CloudStackResourceDiskOffering

type CloudStackResourceDiskOffering struct {
	CloudStackResourceIdentifier `json:",inline"`
	// Desired disk size. Used if disk offering is customizable as indicated by the ACS field 'Custom Disk Size'.
	// +optional
	CustomSize int64 `json:"customSizeInGB"`
	// mount point the data disk uses to mount. The actual partition, mkfs and mount are done by cloud-init generated by kubeadmConfig.
	MountPath string `json:"mountPath"`
	// device name of data disk, for example /dev/vdb
	Device string `json:"device"`
	// filesystem used by data disk, for example, ext4, xfs
	Filesystem string `json:"filesystem"`
	// label of data disk, used by mkfs as label parameter
	Label string `json:"label"`
}

type CloudStackResourceIdentifier

type CloudStackResourceIdentifier struct {
	// Cloudstack resource ID.
	// +optional
	ID string `json:"id,omitempty"`

	// Cloudstack resource Name
	// +optional
	Name string `json:"name,omitempty"`
}

type CloudStackZoneSpec

type CloudStackZoneSpec struct {
	// Name.
	//+optional
	Name string `json:"name,omitempty"`

	// ID.
	//+optional
	ID string `json:"id,omitempty"`

	// The network within the Zone to use.
	Network Network `json:"network"`
}

CloudStackZoneSpec specifies a Zone's details.

type Network

type Network struct {
	// Cloudstack Network ID the cluster is built in.
	// +optional
	ID string `json:"id,omitempty"`

	// Cloudstack Network Type the cluster is built in.
	// + optional
	Type string `json:"type,omitempty"`

	// Cloudstack Network Name the cluster is built in.
	Name string `json:"name"`
}

Jump to

Keyboard shortcuts

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