v1beta1

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2024 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Overview

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

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

Index

Constants

View Source
const (
	// VMProvisionedCondition documents the status of the provisioning of a ICSMachine and its underlying ICSVM.
	VMProvisionedCondition clusterv1.ConditionType = "VMProvisioned"

	// WaitingForClusterInfrastructureReason (Severity=Info) documents a ICSMachine waiting for the cluster
	// infrastructure to be ready before starting the provisioning process.
	//
	// NOTE: This reason does not apply to ICSVM (this state happens before the ICSVM is actually created).
	WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure"

	// WaitingForBootstrapDataReason (Severity=Info) documents a ICSMachine waiting for the bootstrap
	// script to be ready before starting the provisioning process.
	//
	// NOTE: This reason does not apply to ICSVM (this state happens before the ICSVM is actually created).
	WaitingForBootstrapDataReason = "WaitingForBootstrapData"

	// WaitingForStaticIPAllocationReason (Severity=Info) documents a ICSVM waiting for the allocation of
	// a static IP address.
	WaitingForStaticIPAllocationReason = "WaitingForStaticIPAllocation"

	// CloningReason documents (Severity=Info) a ICSMachine/ICSVM currently executing the clone operation.
	CloningReason = "Cloning"

	// CloningFailedReason (Severity=Warning) documents a ICSMachine/ICSVM controller detecting
	// an error while provisioning; those kind of errors are usually transient and failed provisioning
	// are automatically re-tried by the controller.
	CloningFailedReason = "CloningFailed"

	// PoweringOnReason documents (Severity=Info) a ICSMachine/ICSVM currently executing the power on sequence.
	PoweringOnReason = "PoweringOn"

	// PoweringOnFailedReason (Severity=Warning) documents a ICSMachine/ICSVM controller detecting
	// an error while powering on; those kind of errors are usually transient and failed provisioning
	// are automatically re-tried by the controller.
	PoweringOnFailedReason = "PoweringOnFailed"

	// TaskFailure (Severity=Warning) documents a ICSMachine/ICS task failure; the reconcile look will automatically
	// retry the operation, but a user intervention might be required to fix the problem.
	TaskFailure = "TaskFailure"

	// WaitingForNetworkAddressesReason (Severity=Info) documents a ICSMachine waiting for the the machine network
	// settings to be reported after machine being powered on.
	//
	// NOTE: This reason does not apply to ICSVM (this state happens after the ICSVM is in ready state).
	WaitingForNetworkAddressesReason = "WaitingForNetworkAddresses"

	// TagsAttachmentFailedReason (Severity=Error) documents a ICSMachine/ICSVM tags attachment failure.
	TagsAttachmentFailedReason = "TagsAttachmentFailed"
)
View Source
const (
	// ICenterAvailableCondition documents the connectivity with icenter
	// for a given resource.
	ICenterAvailableCondition clusterv1.ConditionType = "ICenterAvailable"

	// ICenterUnreachableReason (Severity=Error) documents a controller detecting
	// issues with ICenter reachability.
	ICenterUnreachableReason = "ICenterUnreachable"
)

Conditions and Reasons related to utilizing a ICSIdentity to make connections to a ICenter. Can currently be used by ICSCluster and ICSVM.

View Source
const (
	// ClusterModulesAvailableCondition documents the availability of cluster modules for the ICSCluster object.
	ClusterModulesAvailableCondition clusterv1.ConditionType = "ClusterModulesAvailable"

	// MissingICenterVersionReason (Severity=Warning) documents a controller detecting
	//  the scenario in which the iCenter version is not set in the status of the ICSCluster object.
	MissingICenterVersionReason = "MissingICenterVersion"

	// ICenterVersionIncompatibleReason (Severity=Info) documents the case where the iCenter version of the
	// ICSCluster object does not support cluster modules.
	ICenterVersionIncompatibleReason = "ICenterVersionIncompatible"

	// ClusterModuleSetupFailedReason (Severity=Warning) documents a controller detecting
	// issues when setting up anti-affinity constraints via cluster modules for objects
	// belonging to the cluster.
	ClusterModuleSetupFailedReason = "ClusterModuleSetupFailed"
)
View Source
const (
	// LoadBalancerReadyCondition reports the successful reconciliation of
	// a static control plane endpoint.
	LoadBalancerReadyCondition clusterv1.ConditionType = "LoadBalancerReady"

	// LoadBalancerCreationFailedReason is used when load balancer related
	// resources creation fails.
	LoadBalancerCreationFailedReason = "LoadBalancerCreationFailed"
	// WaitingForLoadBalancerIPReason is used when waiting for load
	// balancer IP to exist.
	WaitingForLoadBalancerIPReason = "WaitingForLoadBalancerIP"
)
View Source
const (
	// CredentialsAvailableCondidtion is used by ICSClusterIdentity when a credential
	// secret is available and unused by other ICSClusterIdentities.
	CredentialsAvailableCondidtion clusterv1.ConditionType = "CredentialsAvailable"

	// SecretNotAvailableReason is used when the secret referenced by the ICSClusterIdentity cannot be found.
	SecretNotAvailableReason = "SecretNotAvailable"

	// SecretOwnerReferenceFailedReason is used for errors while updating the owner reference of the secret.
	SecretOwnerReferenceFailedReason = "SecretOwnerReferenceFailed"

	// SecretAlreadyInUseReason is used when another ICSClusterIdentity is using the secret.
	SecretAlreadyInUseReason = "SecretInUse"
)
View Source
const (
	// Version is the API version.
	Version = "v1beta1"

	// GroupName is the name of the API group.
	GroupName = "infrastructure.cluster.x-k8s.io"
)
View Source
const (
	SSHKey = AuthorizedMode("sshkey")

	PasswordToken = AuthorizedMode("token")
)
View Source
const (
	// VirtualMachineStateNotFound is the string representing a VM that
	// cannot be located.
	VirtualMachineStateNotFound = VirtualMachineState("notfound")

	// VirtualMachineStatePending is the string representing a VM with an in-flight task.
	VirtualMachineStatePending = VirtualMachineState("pending")

	// VirtualMachineStateReady is the string representing a powered-on VM with reported IP addresses.
	VirtualMachineStateReady = VirtualMachineState("ready")
)
View Source
const (
	// VirtualMachinePowerStatePoweredOn is the string representing a VM in powered on state
	VirtualMachinePowerStatePoweredOn = VirtualMachinePowerState("poweredOn")

	// VirtualMachinePowerStatePoweredOff is the string representing a VM in powered off state
	VirtualMachinePowerStatePoweredOff = VirtualMachinePowerState("poweredOff")

	// VirtualMachinePowerStateSuspended is the string representing a VM in suspended state
	VirtualMachinePowerStateSuspended = VirtualMachinePowerState("suspended")
)
View Source
const (
	// ClusterFinalizer allows ReconcileICSCluster to clean up ics
	// resources associated with ICSCluster before removing it from the
	// API server.
	ClusterFinalizer = "icscluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// DataFinalizer allows IPAddressReconciler to clean up resources
	// associated with IPAddress before removing it from the apiserver.
	IPAddressFinalizer = "ipaddress.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer allows ReconcileICSMachine to clean up ICS
	// resources associated with ICSMachine before removing it from the
	// API Server.
	MachineFinalizer = "icsmachine.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// PlacementConstraintMetCondition documents whether the placement constraint is configured correctly or not.
	PlacementConstraintMetCondition clusterv1.ConditionType = "PlacementConstraintMet"
)
View Source
const (
	// VMFinalizer allows the reconciler to clean up resources associated
	// with a ICSVM before removing it from the API Server.
	VMFinalizer = "icsvm.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: "v1beta1"}

	// 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 (
	SecretKind = ICSIdentityKind("Secret")
)

Functions

This section is empty.

Types

type AuthorizedMode added in v1.0.2

type AuthorizedMode string

AuthorizedMode describes the Authorized Type of the user.

type CloneMode

type CloneMode string

CloneMode is the type of clone operation used to clone a VM from a template.

const (
	// FullClone indicates a VM will have no relationship to the source of the
	// clone operation once the operation is complete. This is the safest clone
	// mode, but it is not the fastest.
	FullClone CloneMode = "fullClone"

	// LinkedClone means resulting VMs will be dependent upon the snapshot of
	// the source VM/template from which the VM was cloned. This is the fastest
	// clone mode, but it also prevents expanding a VMs disk beyond the size of
	// the source VM/template.
	LinkedClone CloneMode = "linkedClone"

	ImportVM CloneMode = "importVM"
)

type ClusterModule

type ClusterModule struct {
	// ControlPlane indicates whether the referred object is responsible for control plane nodes.
	// Currently, only the KubeadmControlPlane objects have this flag set to true.
	// Only a single object in the slice can have this value set to true.
	ControlPlane bool `json:"controlPlane"`

	// TargetObjectName points to the object that uses the Cluster Module information to enforce
	// anti-affinity amongst its descendant VM objects.
	TargetObjectName string `json:"targetObjectName"`

	// ModuleUUID is the unique identifier of the `ClusterModule` used by the object.
	ModuleUUID string `json:"moduleUUID"`
}

ClusterModule holds the anti affinity construct `ClusterModule` identifier in use by the VMs owned by the object referred by the TargetObjectName field.

func (*ClusterModule) DeepCopy

func (in *ClusterModule) DeepCopy() *ClusterModule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterModule.

func (*ClusterModule) DeepCopyInto

func (in *ClusterModule) DeepCopyInto(out *ClusterModule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskSpec added in v1.0.2

type DiskSpec struct {
	// DiskSize is the size of a virtual machine's disk, in GiB.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// +optional
	DiskSize int32 `json:"diskSize,omitempty"`

	// BusModel default value: VIRTIO
	// +optional
	BusModel string `json:"busModel,omitempty"`

	// Default RAW, RAW\QCOW2
	// +optional
	VolumeFormat string `json:"volumeFormat,omitempty"`

	// Default THIN, THIN\THICK
	// +optional
	VolumePolicy string `json:"volumePolicy,omitempty"`
}

func (*DiskSpec) DeepCopy added in v1.0.2

func (in *DiskSpec) DeepCopy() *DiskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskSpec.

func (*DiskSpec) DeepCopyInto added in v1.0.2

func (in *DiskSpec) DeepCopyInto(out *DiskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSCluster

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

	Spec   ICSClusterSpec   `json:"spec,omitempty"`
	Status ICSClusterStatus `json:"status,omitempty"`
}

ICSCluster is the Schema for the icsclusters API

func (*ICSCluster) DeepCopy

func (in *ICSCluster) DeepCopy() *ICSCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSCluster.

func (*ICSCluster) DeepCopyInto

func (in *ICSCluster) DeepCopyInto(out *ICSCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSCluster) DeepCopyObject

func (in *ICSCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSCluster) Default

func (r *ICSCluster) Default()

Default satisfies the defaulting webhook interface.

func (*ICSCluster) GetConditions

func (m *ICSCluster) GetConditions() clusterv1.Conditions

func (*ICSCluster) Hub

func (*ICSCluster) Hub()

Hub marks ICSCluster as a conversion hub.

func (*ICSCluster) SetConditions

func (m *ICSCluster) SetConditions(conditions clusterv1.Conditions)

func (*ICSCluster) SetupWebhookWithManager

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

func (*ICSCluster) ValidateCreate

func (r *ICSCluster) ValidateCreate() error

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

func (*ICSCluster) ValidateDelete

func (r *ICSCluster) ValidateDelete() error

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

func (*ICSCluster) ValidateUpdate

func (r *ICSCluster) ValidateUpdate(oldRaw runtime.Object) error

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

type ICSClusterList

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

ICSClusterList contains a list of ICSCluster

func (*ICSClusterList) DeepCopy

func (in *ICSClusterList) DeepCopy() *ICSClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSClusterList.

func (*ICSClusterList) DeepCopyInto

func (in *ICSClusterList) DeepCopyInto(out *ICSClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSClusterList) DeepCopyObject

func (in *ICSClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSClusterList) Hub

func (*ICSClusterList) Hub()

Hub marks ICSClusterList as a conversion hub.

func (*ICSClusterList) SetupWebhookWithManager

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

type ICSClusterSpec

type ICSClusterSpec struct {
	// The name of the cloud to use from the clouds secret
	// +optional
	CloudName string `json:"cloudName"`

	// IdentityRef is a reference to either a Secret that contains
	// the identity to use when reconciling the cluster.
	// +optional
	IdentityRef *ICSIdentityReference `json:"identityRef,omitempty"`

	// Insecure is a flag that controls whether or not to validate the
	// ics server's certificate.
	// +optional
	Insecure *bool `json:"insecure,omitempty"`

	// Enabled defines whether a LoadBalancer should be created.
	// +optional
	EnabledLoadBalancer bool `json:"enabledLoadBalancer,omitempty"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty"`

	// ClusterModules hosts information regarding the anti-affinity ICS constructs
	// for each of the objects responsible for creation of VM objects belonging to the cluster.
	// +optional
	ClusterModules []ClusterModule `json:"clusterModules,omitempty"`
}

ICSClusterSpec defines the desired state of ICSCluster

func (*ICSClusterSpec) DeepCopy

func (in *ICSClusterSpec) DeepCopy() *ICSClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSClusterSpec.

func (*ICSClusterSpec) DeepCopyInto

func (in *ICSClusterSpec) DeepCopyInto(out *ICSClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSClusterStatus

type ICSClusterStatus struct {
	// +optional
	Ready bool `json:"ready,omitempty"`

	// Conditions defines current service state of the ICSCluster.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`

	// ICenterVersion defines the version of the iCenter server defined in the spec.
	ICenterVersion ICenterVersion `json:"iCenterVersion,omitempty"`
}

ICSClusterStatus defines the observed state of ICSCluster

func (*ICSClusterStatus) DeepCopy

func (in *ICSClusterStatus) DeepCopy() *ICSClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSClusterStatus.

func (*ICSClusterStatus) DeepCopyInto

func (in *ICSClusterStatus) DeepCopyInto(out *ICSClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSIdentityKind

type ICSIdentityKind string

type ICSIdentityReference

type ICSIdentityReference struct {
	// Kind of the identity. Can either be Secret
	// +kubebuilder:validation:Enum=Secret
	Kind ICSIdentityKind `json:"kind"`

	// Name of the identity.
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// +optional
	IdentityKey *string `json:"identityKey,omitempty"`
}

func (*ICSIdentityReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSIdentityReference.

func (*ICSIdentityReference) DeepCopyInto

func (in *ICSIdentityReference) DeepCopyInto(out *ICSIdentityReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSMachine

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

	Spec   ICSMachineSpec   `json:"spec,omitempty"`
	Status ICSMachineStatus `json:"status,omitempty"`
}

ICSMachine is the Schema for the icsmachines API

func (*ICSMachine) DeepCopy

func (in *ICSMachine) DeepCopy() *ICSMachine

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachine.

func (*ICSMachine) DeepCopyInto

func (in *ICSMachine) DeepCopyInto(out *ICSMachine)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSMachine) DeepCopyObject

func (in *ICSMachine) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSMachine) Default

func (r *ICSMachine) Default()

Default satisfies the defaulting webhook interface.

func (*ICSMachine) GetConditions

func (m *ICSMachine) GetConditions() clusterv1.Conditions

func (*ICSMachine) Hub

func (*ICSMachine) Hub()

Hub marks ICSMachine as a conversion hub.

func (*ICSMachine) SetConditions

func (m *ICSMachine) SetConditions(conditions clusterv1.Conditions)

func (*ICSMachine) SetupWebhookWithManager

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

func (*ICSMachine) ValidateCreate

func (r *ICSMachine) ValidateCreate() error

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

func (*ICSMachine) ValidateDelete

func (r *ICSMachine) ValidateDelete() error

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

func (*ICSMachine) ValidateUpdate

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

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

type ICSMachineList

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

ICSMachineList contains a list of ICSMachine

func (*ICSMachineList) DeepCopy

func (in *ICSMachineList) DeepCopy() *ICSMachineList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineList.

func (*ICSMachineList) DeepCopyInto

func (in *ICSMachineList) DeepCopyInto(out *ICSMachineList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSMachineList) DeepCopyObject

func (in *ICSMachineList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSMachineList) Hub

func (*ICSMachineList) Hub()

Hub marks ICSMachineList as a conversion hub.

func (*ICSMachineList) SetupWebhookWithManager

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

type ICSMachineSpec

type ICSMachineSpec struct {
	VirtualMachineCloneSpec `json:",inline"`

	// ProviderID is the virtual machine's BIOS UUID formated as
	// ics://12345678-1234-1234-1234-123456789abc
	// +optional
	ProviderID *string `json:"providerID,omitempty"`
}

ICSMachineSpec defines the desired state of ICSMachine

func (*ICSMachineSpec) DeepCopy

func (in *ICSMachineSpec) DeepCopy() *ICSMachineSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineSpec.

func (*ICSMachineSpec) DeepCopyInto

func (in *ICSMachineSpec) DeepCopyInto(out *ICSMachineSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSMachineStatus

type ICSMachineStatus struct {
	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// Addresses contains the ICS instance associated addresses.
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

	// Network returns the network status for each of the machine's configured
	// network interfaces.
	// +optional
	Network []NetworkStatus `json:"network,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Conditions defines current service state of the ICSMachine.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

ICSMachineStatus defines the observed state of ICSMachine

func (*ICSMachineStatus) DeepCopy

func (in *ICSMachineStatus) DeepCopy() *ICSMachineStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineStatus.

func (*ICSMachineStatus) DeepCopyInto

func (in *ICSMachineStatus) DeepCopyInto(out *ICSMachineStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSMachineTemplate

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

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

ICSMachineTemplate is the Schema for the icsmachinetemplates API

func (*ICSMachineTemplate) DeepCopy

func (in *ICSMachineTemplate) DeepCopy() *ICSMachineTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineTemplate.

func (*ICSMachineTemplate) DeepCopyInto

func (in *ICSMachineTemplate) DeepCopyInto(out *ICSMachineTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSMachineTemplate) DeepCopyObject

func (in *ICSMachineTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSMachineTemplate) Hub

func (*ICSMachineTemplate) Hub()

Hub marks ICSMachineTemplate as a conversion hub.

func (*ICSMachineTemplate) SetupWebhookWithManager

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

func (*ICSMachineTemplate) ValidateCreate

func (r *ICSMachineTemplate) ValidateCreate() error

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

func (*ICSMachineTemplate) ValidateDelete

func (r *ICSMachineTemplate) ValidateDelete() error

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

func (*ICSMachineTemplate) ValidateUpdate

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

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

type ICSMachineTemplateList

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

ICSMachineTemplateList contains a list of ICSMachineTemplate

func (*ICSMachineTemplateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineTemplateList.

func (*ICSMachineTemplateList) DeepCopyInto

func (in *ICSMachineTemplateList) DeepCopyInto(out *ICSMachineTemplateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSMachineTemplateList) DeepCopyObject

func (in *ICSMachineTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSMachineTemplateList) Hub

func (*ICSMachineTemplateList) Hub()

Hub marks ICSMachineTemplateList as a conversion hub.

func (*ICSMachineTemplateList) SetupWebhookWithManager

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

type ICSMachineTemplateResource

type ICSMachineTemplateResource struct {
	// Spec is the specification of the desired behavior of the machine.
	Spec ICSMachineSpec `json:"spec"`
}

ICSMachineTemplateResource describes the data needed to create a ICSMachine from a template

func (*ICSMachineTemplateResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineTemplateResource.

func (*ICSMachineTemplateResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSMachineTemplateSpec

type ICSMachineTemplateSpec struct {
	Template ICSMachineTemplateResource `json:"template"`
}

ICSMachineTemplateSpec defines the desired state of ICSMachineTemplate

func (*ICSMachineTemplateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSMachineTemplateSpec.

func (*ICSMachineTemplateSpec) DeepCopyInto

func (in *ICSMachineTemplateSpec) DeepCopyInto(out *ICSMachineTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSVM

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

	Spec   ICSVMSpec   `json:"spec,omitempty"`
	Status ICSVMStatus `json:"status,omitempty"`
}

ICSVM is the Schema for the icsvms API

func (*ICSVM) DeepCopy

func (in *ICSVM) DeepCopy() *ICSVM

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSVM.

func (*ICSVM) DeepCopyInto

func (in *ICSVM) DeepCopyInto(out *ICSVM)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSVM) DeepCopyObject

func (in *ICSVM) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSVM) GetConditions

func (r *ICSVM) GetConditions() clusterv1.Conditions

func (*ICSVM) Hub

func (*ICSVM) Hub()

Hub marks ICSVM as a conversion hub.

func (*ICSVM) SetConditions

func (r *ICSVM) SetConditions(conditions clusterv1.Conditions)

func (*ICSVM) SetupWebhookWithManager

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

func (*ICSVM) ValidateCreate

func (r *ICSVM) ValidateCreate() error

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

func (*ICSVM) ValidateDelete

func (r *ICSVM) ValidateDelete() error

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

func (*ICSVM) ValidateUpdate

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

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

type ICSVMList

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

ICSVMList contains a list of ICSVM

func (*ICSVMList) DeepCopy

func (in *ICSVMList) DeepCopy() *ICSVMList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSVMList.

func (*ICSVMList) DeepCopyInto

func (in *ICSVMList) DeepCopyInto(out *ICSVMList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ICSVMList) DeepCopyObject

func (in *ICSVMList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ICSVMList) Hub

func (*ICSVMList) Hub()

Hub marks ICSVMList as a conversion hub.

func (*ICSVMList) SetupWebhookWithManager

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

type ICSVMSpec

type ICSVMSpec struct {
	VirtualMachineCloneSpec `json:",inline"`

	// BootstrapRef is a reference to a bootstrap provider-specific resource
	// that holds configuration details.
	// This field is optional in case no bootstrap data is required to create
	// a VM.
	// +optional
	BootstrapRef *corev1.ObjectReference `json:"bootstrapRef,omitempty"`

	// BiosUUID is the the VM's BIOS UUID that is assigned at runtime after
	// the VM has been created.
	// This field is required at runtime for other controllers that read
	// this CRD as unstructured data.
	// +optional
	BiosUUID string `json:"biosUUID,omitempty"`

	// UID is the the VM's ID that is assigned at runtime after
	// the VM has been created.
	// This field is required at runtime for other controllers that read
	// this CRD as unstructured data.
	// +optional
	UID string `json:"UID,omitempty"`
}

ICSVMSpec defines the desired state of ICSVM

func (*ICSVMSpec) DeepCopy

func (in *ICSVMSpec) DeepCopy() *ICSVMSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSVMSpec.

func (*ICSVMSpec) DeepCopyInto

func (in *ICSVMSpec) DeepCopyInto(out *ICSVMSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICSVMStatus

type ICSVMStatus struct {
	// Host describes the hostname or IP address of the infrastructure host
	// that the ICSVM is residing on.
	// +optional
	Host string `json:"host,omitempty"`

	// Ready is true when the provider resource is ready.
	// This field is required at runtime for other controllers that read
	// this CRD as unstructured data.
	// +optional
	Ready bool `json:"ready,omitempty"`

	// Addresses is a list of the VM's IP addresses.
	// This field is required at runtime for other controllers that read
	// this CRD as unstructured data.
	// +optional
	Addresses []string `json:"addresses,omitempty"`

	// CloneMode is the type of clone operation used to clone this VM. Since
	// LinkedMode is the default but fails gracefully if the source of the
	// clone has no snapshots, this field may be used to determine the actual
	// type of clone operation used to create this VM.
	// +optional
	CloneMode CloneMode `json:"cloneMode,omitempty"`

	// Snapshot is the name of the snapshot from which the VM was cloned if
	// LinkedMode is enabled.
	// +optional
	Snapshot string `json:"snapshot,omitempty"`

	// TaskRef is a managed object reference to a Task related to the machine.
	// This value is set automatically at runtime and should not be set or
	// modified by users.
	// +optional
	TaskRef string `json:"taskRef,omitempty"`

	// Network returns the network status for each of the machine's configured
	// network interfaces.
	// +optional
	Network []NetworkStatus `json:"network,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the icsvm and will contain a succinct value suitable
	// for vm interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the vm.
	//
	// Any transient errors that occur during the reconciliation of icsvms
	// can be added as events to the icsvm object and/or logged in the
	// controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the icsvm and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the vm.
	//
	// Any transient errors that occur during the reconciliation of icsvms
	// can be added as events to the icsvm object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Conditions defines current service state of the ICSVM.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`

	// ModuleUUID is the unique identifier for the iCenter cluster module construct
	// which is used to configure anti-affinity. Objects with the same ModuleUUID
	// will be anti-affined, meaning that the iCenter DRS will best effort schedule
	// the VMs on separate hosts.
	// +optional
	ModuleUUID *string `json:"moduleUUID,omitempty"`
}

ICSVMStatus defines the observed state of ICSVM

func (*ICSVMStatus) DeepCopy

func (in *ICSVMStatus) DeepCopy() *ICSVMStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ICSVMStatus.

func (*ICSVMStatus) DeepCopyInto

func (in *ICSVMStatus) DeepCopyInto(out *ICSVMStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ICenterVersion

type ICenterVersion string

ICenterVersion conveys the API version of the iCenter instance.

func NewICenterVersion

func NewICenterVersion(version string) ICenterVersion

type IPAddress

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

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

IPAddress is the Schema for the ipaddresses API

func (*IPAddress) DeepCopy

func (in *IPAddress) DeepCopy() *IPAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddress.

func (*IPAddress) DeepCopyInto

func (in *IPAddress) DeepCopyInto(out *IPAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAddress) DeepCopyObject

func (in *IPAddress) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*IPAddress) Hub added in v1.0.2

func (*IPAddress) Hub()

Hub marks IPAddress as a conversion hub.

func (*IPAddress) SetupWebhookWithManager

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

func (*IPAddress) ValidateCreate

func (r *IPAddress) ValidateCreate() error

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

func (*IPAddress) ValidateDelete

func (r *IPAddress) ValidateDelete() error

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

func (*IPAddress) ValidateUpdate

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

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

type IPAddressList

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

IPAddressList contains a list of IPAddress

func (*IPAddressList) DeepCopy

func (in *IPAddressList) DeepCopy() *IPAddressList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressList.

func (*IPAddressList) DeepCopyInto

func (in *IPAddressList) DeepCopyInto(out *IPAddressList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPAddressList) DeepCopyObject

func (in *IPAddressList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*IPAddressList) Hub added in v1.0.2

func (*IPAddressList) Hub()

Hub marks IPAddressList as a conversion hub.

func (*IPAddressList) SetupWebhookWithManager

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

type IPAddressSpec

type IPAddressSpec struct {

	// VM points to the object the ICSVM was created for.
	VMRef corev1.ObjectReference `json:"vmRef"`

	// Template is the ICSMachineTemplate this was generated from.
	TemplateRef corev1.ObjectReference `json:"templateRef,omitempty"`

	// +kubebuilder:validation:Maximum=128
	// Prefix is the mask of the network as integer (max 128)
	Prefix int `json:"prefix,omitempty"`

	// Gateway is the gateway ip address
	Gateway *string `json:"gateway,omitempty"`

	// Address contains the IP address
	Address string `json:"address"`

	// MACAddr is the MAC address used by this device.
	// It is generally a good idea to omit this field and allow a MAC address
	// to be generated.
	// Please note that this value must use the InCloud Sphere OUI to work with the
	// in-tree ics cloud provider.
	// +optional
	MACAddr string `json:"macAddr,omitempty"`

	// DNSServers is the list of dns servers
	DNSServers []string `json:"dnsServers,omitempty"`
}

IPAddressSpec defines the desired state of IPAddress.

func (*IPAddressSpec) DeepCopy

func (in *IPAddressSpec) DeepCopy() *IPAddressSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressSpec.

func (*IPAddressSpec) DeepCopyInto

func (in *IPAddressSpec) DeepCopyInto(out *IPAddressSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkDeviceSpec

type NetworkDeviceSpec struct {
	// NetworkName is the name of the ics network to which the device
	// will be connected.
	NetworkName string `json:"networkName"`

	// NetworkType the type of the ics network to which the device will be connected.
	// +optional
	NetworkType string `json:"networkType,omitempty"`

	// SwitchType the type of the ics switch network to which the device will be connected.
	// +optional
	SwitchType string `json:"switchType,omitempty"`

	// DeviceName may be used to explicitly assign a name to the network device
	// as it exists in the guest operating system.
	// +optional
	DeviceName string `json:"deviceName,omitempty"`

	// DHCP4 is a flag that indicates whether or not to use DHCP for IPv4
	// on this device.
	// If true then IPAddrs should not contain any IPv4 addresses.
	// +optional
	DHCP4 bool `json:"dhcp4,omitempty"`

	// DHCP6 is a flag that indicates whether or not to use DHCP for IPv6
	// on this device.
	// If true then IPAddrs should not contain any IPv6 addresses.
	// +optional
	DHCP6 bool `json:"dhcp6,omitempty"`

	// NetMask the network device network.
	// +optional
	NetMask string `json:"netMask,omitempty"`

	// Gateway4 is the IPv4 gateway used by this device.
	// Required when DHCP4 is false.
	// +optional
	Gateway4 string `json:"gateway4,omitempty"`

	// Gateway4 is the IPv4 gateway used by this device.
	// Required when DHCP6 is false.
	// +optional
	Gateway6 string `json:"gateway6,omitempty"`

	// IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign
	// to this device.
	// Required when DHCP4 and DHCP6 are both false.
	// +optional
	IPAddrs []string `json:"ipAddrs,omitempty"`

	// MTU is the device’s Maximum Transmission Unit size in bytes.
	// +optional
	MTU *int64 `json:"mtu,omitempty"`

	// MACAddr is the MAC address used by this device.
	// It is generally a good idea to omit this field and allow a MAC address
	// to be generated.
	// Please note that this value must use the InCloud Sphere OUI to work with the
	// in-tree ics cloud provider.
	// +optional
	MACAddr string `json:"macAddr,omitempty"`

	// Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS
	// nameservers.
	// Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf).
	// +optional
	Nameservers []string `json:"nameservers,omitempty"`

	// Routes is a list of optional, static routes applied to the device.
	// +optional
	Routes []NetworkRouteSpec `json:"routes,omitempty"`

	// SearchDomains is a list of search domains used when resolving IP
	// addresses with DNS.
	// +optional
	SearchDomains []string `json:"searchDomains,omitempty"`
}

NetworkDeviceSpec defines the network configuration for a virtual machine's network device.

func (*NetworkDeviceSpec) DeepCopy

func (in *NetworkDeviceSpec) DeepCopy() *NetworkDeviceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkDeviceSpec.

func (*NetworkDeviceSpec) DeepCopyInto

func (in *NetworkDeviceSpec) DeepCopyInto(out *NetworkDeviceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkRouteSpec

type NetworkRouteSpec struct {
	// To is an IPv4 or IPv6 address.
	To string `json:"to"`
	// Via is an IPv4 or IPv6 address.
	Via string `json:"via"`
	// Metric is the weight/priority of the route.
	Metric int32 `json:"metric"`
}

NetworkRouteSpec defines a static network route.

func (*NetworkRouteSpec) DeepCopy

func (in *NetworkRouteSpec) DeepCopy() *NetworkRouteSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkRouteSpec.

func (*NetworkRouteSpec) DeepCopyInto

func (in *NetworkRouteSpec) DeepCopyInto(out *NetworkRouteSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkSpec

type NetworkSpec struct {
	// Devices is the list of network devices used by the virtual machine.
	// Make sure at least one network matches the
	//             ClusterSpec.CloudProviderConfiguration.Network.Name
	Devices []NetworkDeviceSpec `json:"devices"`

	// Routes is a list of optional, static routes applied to the virtual
	// machine.
	// +optional
	Routes []NetworkRouteSpec `json:"routes,omitempty"`

	// PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API
	// server endpoint on this machine
	// +optional
	PreferredAPIServerCIDR string `json:"preferredAPIServerCidr,omitempty"`
}

NetworkSpec defines the virtual machine's network configuration.

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkStatus

type NetworkStatus struct {
	// Connected is a flag that indicates whether this network is currently
	// connected to the VM.
	Connected bool `json:"connected,omitempty"`

	// IPAddrs is one or more IP addresses reported by vm-tools.
	// +optional
	IPAddrs []string `json:"ipAddrs,omitempty"`

	// MACAddr is the MAC address of the network device.
	MACAddr string `json:"macAddr"`

	// NetworkName is the name of the network.
	// +optional
	NetworkName string `json:"networkName,omitempty"`
}

NetworkStatus provides information about one of a VM's networks.

func (*NetworkStatus) DeepCopy

func (in *NetworkStatus) DeepCopy() *NetworkStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.

func (*NetworkStatus) DeepCopyInto

func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSHUser added in v1.0.2

type SSHUser struct {
	// Name is the name of the vm system user.
	Name string `json:"name"`

	// AuthorizedType is the authorized type that grant remote access.
	AuthorizedType AuthorizedMode `json:"authorizedType"`

	// AuthorizedKey is one SSH keys that grant remote access.
	AuthorizedKey string `json:"authorizedKey"`
}

SSHUser is granted remote access to a system.

func (*SSHUser) DeepCopy added in v1.0.2

func (in *SSHUser) DeepCopy() *SSHUser

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHUser.

func (*SSHUser) DeepCopyInto added in v1.0.2

func (in *SSHUser) DeepCopyInto(out *SSHUser)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VirtualMachine

type VirtualMachine struct {
	// UID is the VM's ID.
	UID string `json:"UID"`

	// Name is the VM's name.
	Name string `json:"name"`

	// BiosUUID is the VM's BIOS UUID.
	BiosUUID string `json:"biosUUID"`

	// State is the VM's state.
	State VirtualMachineState `json:"state"`

	// Network is the status of the VM's network devices.
	Network []NetworkStatus `json:"network"`
}

VirtualMachine represents data about a ics virtual machine object.

func (*VirtualMachine) DeepCopy

func (in *VirtualMachine) DeepCopy() *VirtualMachine

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachine.

func (*VirtualMachine) DeepCopyInto

func (in *VirtualMachine) DeepCopyInto(out *VirtualMachine)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VirtualMachineCloneSpec

type VirtualMachineCloneSpec struct {
	// Server is the IP address or FQDN of the ics server on which
	// the virtual machine is created/located.
	// +optional
	CloudName string `json:"cloudName"`

	// IdentityRef is a reference to either a Secret that contains
	// the identity to use when reconciling the cluster.
	// +optional
	IdentityRef *ICSIdentityReference `json:"identityRef,omitempty"`

	// Template is the name or inventory path of the template used to clone
	// the virtual machine.
	Template string `json:"template"`

	// CloneMode specifies the type of clone operation.
	// The LinkedClone mode is only support for templates that have at least
	// one snapshot. If the template has no snapshots, then CloneMode defaults
	// to FullClone.
	// When LinkedClone mode is enabled the DiskGiB field is ignored as it is
	// not possible to expand disks of linked clones.
	// Defaults to LinkedClone, but fails gracefully to FullClone if the source
	// of the clone operation has no snapshots.
	// +optional
	CloneMode CloneMode `json:"cloneMode,omitempty"`

	// Snapshot is the name of the snapshot from which to create a linked clone.
	// This field is ignored if LinkedClone is not enabled.
	// Defaults to the source's current snapshot.
	// +optional
	Snapshot string `json:"snapshot,omitempty"`

	// Datacenter is the name or inventory path of the cluster in which the
	// virtual machine is created/located.
	// +optional
	Datacenter string `json:"cluster,omitempty"`

	// Cluster is the name or inventory path of the cluster in which the
	// virtual machine is created/located.
	// +optional
	Cluster string `json:"cluster,omitempty"`

	// Datastore is the name or inventory path of the datastore in which the
	// virtual machine is created/located.
	// +optional
	Datastore string `json:"datastore,omitempty"`

	// Network is the network configuration for this machine's VM.
	Network NetworkSpec `json:"network"`

	// NumCPUs is the number of virtual processors in a virtual machine.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// +optional
	NumCPUs int32 `json:"numCPUs,omitempty"`

	// NumCPUs is the number of cores among which to distribute CPUs in this
	// virtual machine.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// +optional
	NumCoresPerSocket int32 `json:"numCoresPerSocket,omitempty"`

	// MemoryMiB is the size of a virtual machine's memory, in MiB.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// +optional
	MemoryMiB int64 `json:"memoryMiB,omitempty"`

	// Disks is the vm disks configuration for this machine's VM.
	// +optional
	Disks []DiskSpec `json:"disks,omitempty"`

	// SSHUser specifies the name of a user that is granted remote access to the
	// deployed VM.
	// +optional
	User *SSHUser `json:"user,omitempty"`
}

VirtualMachineCloneSpec is information used to clone a virtual machine.

func (*VirtualMachineCloneSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineCloneSpec.

func (*VirtualMachineCloneSpec) DeepCopyInto

func (in *VirtualMachineCloneSpec) DeepCopyInto(out *VirtualMachineCloneSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VirtualMachinePowerState

type VirtualMachinePowerState string

VirtualMachinePowerState describe the power state of a VM

type VirtualMachineState

type VirtualMachineState string

VirtualMachineState describes the state of a VM.

Jump to

Keyboard shortcuts

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