v1beta1

package
v1.11.2 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2024 License: Apache-2.0 Imports: 8 Imported by: 29

Documentation

Overview

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 (
	// FailureDomainsAvailableCondition documents the status of the failure domains
	// associated to the VSphereCluster.
	FailureDomainsAvailableCondition clusterv1.ConditionType = "FailureDomainsAvailable"

	// FailureDomainsSkippedReason (Severity=Info) documents that some of the failure domain statuses
	// associated to the VSphereCluster are reported as not ready.
	FailureDomainsSkippedReason = "FailureDomainsSkipped"

	// WaitingForFailureDomainStatusReason (Severity=Info) documents that some of the failure domains
	// associated to the VSphereCluster are not reporting the Ready status.
	// Instead of reporting a false ready status, these failure domains are still under the process of reconciling
	// and hence not yet reporting their status.
	WaitingForFailureDomainStatusReason = "WaitingForFailureDomainStatus"
)
View Source
const (
	// VMProvisionedCondition documents the status of the provisioning of a VSphereMachine and its underlying VSphereVM.
	VMProvisionedCondition clusterv1.ConditionType = "VMProvisioned"

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

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

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

	// WaitingForIPAllocationReason (Severity=Info) documents a VSphereVM waiting for the allocation of
	// an IP address.
	// This is used when the dhcp4 or dhcp6 for a VSphereVM is set and the VSphereVM is waiting for the
	// relevant IP address  to show up on the VM.
	WaitingForIPAllocationReason = "WaitingForIPAllocation"

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

	// CloningFailedReason (Severity=Warning) documents a VSphereMachine/VSphereVM 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 VSphereMachine/VSphereVM currently executing the power on sequence.
	PoweringOnReason = "PoweringOn"

	// PoweringOnFailedReason (Severity=Warning) documents a VSphereMachine/VSphereVM 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"

	// NotFoundByBIOSUUIDReason (Severity=Warning) documents a VSphereVM which can't be found by BIOS UUID.
	// Those kind of errors could be transient sometimes and failed VSphereVM are automatically
	// reconciled by the controller.
	NotFoundByBIOSUUIDReason = "NotFoundByBIOSUUID"

	// TaskFailure (Severity=Warning) documents a VSphereMachine/VSphere 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 VSphereMachine waiting for the machine network
	// settings to be reported after machine being powered on.
	//
	// NOTE: This reason does not apply to VSphereVM (this state happens after the VSphereVM is in ready state).
	WaitingForNetworkAddressesReason = "WaitingForNetworkAddresses"

	// TagsAttachmentFailedReason (Severity=Error) documents a VSphereMachine/VSphereVM tags attachment failure.
	TagsAttachmentFailedReason = "TagsAttachmentFailed"

	// PCIDevicesDetachedCondition documents the status of the attached PCI devices on the VSphereVM.
	// It is a negative condition to notify the user that the device(s) is no longer attached to
	// the underlying VM and would require manual intervention to fix the situation.
	//
	// NOTE: This condition does not apply to VSphereMachine.
	PCIDevicesDetachedCondition clusterv1.ConditionType = "PCIDevicesDetached"

	// NotFoundReason (Severity=Warning) documents the VSphereVM not having the PCI device attached during VM startup.
	// This would indicate that the PCI devices were removed out of band by an external entity.
	NotFoundReason = "NotFound"
)
View Source
const (
	// VCenterAvailableCondition documents the connectivity with vcenter
	// for a given resource.
	VCenterAvailableCondition clusterv1.ConditionType = "VCenterAvailable"

	// VCenterUnreachableReason (Severity=Error) documents a controller detecting
	// issues with VCenter reachability.
	VCenterUnreachableReason = "VCenterUnreachable"
)

Conditions and Reasons related to utilizing a VSphereIdentity to make connections to a VCenter. Can currently be used by VSphereCluster and VSphereVM.

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

	// MissingVCenterVersionReason (Severity=Warning) documents a controller detecting
	//  the scenario in which the vCenter version is not set in the status of the VSphereCluster object.
	MissingVCenterVersionReason = "MissingVCenterVersion"

	// VCenterVersionIncompatibleReason (Severity=Info) documents the case where the vCenter version of the
	// VSphereCluster object does not support cluster modules.
	VCenterVersionIncompatibleReason = "VCenterVersionIncompatible"

	// 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 (
	// CredentialsAvailableCondidtion is used by VSphereClusterIdentity when a credential
	// secret is available and unused by other VSphereClusterIdentities.
	CredentialsAvailableCondidtion clusterv1.ConditionType = "CredentialsAvailable"

	// SecretNotAvailableReason is used when the secret referenced by the VSphereClusterIdentity 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 VSphereClusterIdentity is using the secret.
	SecretAlreadyInUseReason = "SecretInUse"
)
View Source
const (
	// PlacementConstraintMetCondition documents whether the placement constraint is configured correctly or not.
	PlacementConstraintMetCondition clusterv1.ConditionType = "PlacementConstraintMet"

	// ResourcePoolNotFoundReason (Severity=Error) documents that the resource pool in the placement constraint
	// associated to the VSphereDeploymentZone is misconfigured.
	ResourcePoolNotFoundReason = "ResourcePoolNotFound"

	// FolderNotFoundReason (Severity=Error) documents that the folder in the placement constraint
	// associated to the VSphereDeploymentZone is misconfigured.
	FolderNotFoundReason = "FolderNotFound"
)
View Source
const (
	// VSphereFailureDomainValidatedCondition documents whether the failure domain for the deployment zone is configured correctly or not.
	VSphereFailureDomainValidatedCondition clusterv1.ConditionType = "VSphereFailureDomainValidated"

	// RegionMisconfiguredReason (Severity=Error) documents that the region for the Failure Domain associated to
	// the VSphereDeploymentZone is misconfigured.
	RegionMisconfiguredReason = "FailureDomainRegionMisconfigured"

	// ZoneMisconfiguredReason (Severity=Error) documents that the zone for the Failure Domain associated to
	// the VSphereDeploymentZone is misconfigured.
	ZoneMisconfiguredReason = "FailureDomainZoneMisconfigured"

	// ComputeClusterNotFoundReason (Severity=Error) documents that the Compute Cluster for the Failure Domain
	// associated to the VSphereDeploymentZone cannot be found.
	ComputeClusterNotFoundReason = "ComputeClusterNotFound"

	// HostsMisconfiguredReason (Severity=Error) documents that the VM & Host Group details for the Failure Domain
	// associated to the VSphereDeploymentZone are misconfigured.
	HostsMisconfiguredReason = "HostsMisconfigured"

	// HostsAffinityMisconfiguredReason (Severity=Warning) documents that the VM & Host Group affinity rule for the FailureDomain is disabled.
	HostsAffinityMisconfiguredReason = "HostsAffinityMisconfigured"

	// NetworkNotFoundReason (Severity=Error) documents that the networks in the topology for the Failure Domain
	// associated to the VSphereDeploymentZone are misconfigured.
	NetworkNotFoundReason = "NetworkNotFound"

	// DatastoreNotFoundReason (Severity=Error) documents that the datastore in the topology for the Failure Domain
	// associated to the VSphereDeploymentZone is misconfigured.
	DatastoreNotFoundReason = "DatastoreNotFound"
)
View Source
const (
	// IPAddressClaimedCondition documents the status of claiming an IP address
	// from an IPAM provider.
	IPAddressClaimedCondition clusterv1.ConditionType = "IPAddressClaimed"

	// IPAddressClaimsBeingCreatedReason (Severity=Info) documents that claims for the
	// IP addresses required by the VSphereVM are being created.
	IPAddressClaimsBeingCreatedReason = "IPAddressClaimsBeingCreated"

	// WaitingForIPAddressReason (Severity=Info) documents that the VSphereVM is
	// currently waiting for an IP address to be provisioned.
	WaitingForIPAddressReason = "WaitingForIPAddress"

	// IPAddressInvalidReason (Severity=Error) documents that the IP address
	// provided by the IPAM provider is not valid.
	IPAddressInvalidReason = "IPAddressInvalid"

	// IPAddressClaimNotFoundReason (Severity=Error) documents that the IPAddressClaim
	// cannot be found.
	IPAddressClaimNotFoundReason = "IPAddressClaimNotFound"
)
View Source
const (
	// GuestSoftPowerOffSucceededCondition documents the status of performing guest initiated
	// graceful shutdown.
	GuestSoftPowerOffSucceededCondition clusterv1.ConditionType = "GuestSoftPowerOffSucceeded"

	// GuestSoftPowerOffInProgressReason (Severity=Info) documents that the guest receives
	// a graceful shutdown request.
	GuestSoftPowerOffInProgressReason = "GuestSoftPowerOffInProgress"

	// GuestSoftPowerOffFailedReason (Severity=Warning) documents that the graceful
	// shutdown request fails.
	GuestSoftPowerOffFailedReason = "GuestSoftPowerOffFailed"
)
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 (
	// AnnotationClusterInfrastructureReady indicates the cluster's
	// infrastructure sources are ready and machines may be created.
	AnnotationClusterInfrastructureReady = "vsphere.infrastructure.cluster.x-k8s.io/infrastructure-ready"

	// AnnotationControlPlaneReady indicates the cluster's control plane is
	// ready.
	AnnotationControlPlaneReady = "vsphere.infrastructure.cluster.x-k8s.io/control-plane-ready"

	// ValueReady is the ready value for *Ready annotations.
	ValueReady = "true"
)
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 = "pending"

	// VirtualMachineStateReady is the string representing a powered-on VM with reported IP addresses.
	VirtualMachineStateReady = "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 = "poweredOff"

	// VirtualMachinePowerStateSuspended is the string representing a VM in suspended state.
	VirtualMachinePowerStateSuspended = "suspended"
)
View Source
const (
	// SecretIdentitySetFinalizer is the finalizer for VSphereCluster credentials secrets .
	SecretIdentitySetFinalizer = "vspherecluster/infrastructure.cluster.x-k8s.io"
	// VSphereClusterIdentityFinalizer is the finalizer for VSphereClusterIdentity credentials secrets.
	VSphereClusterIdentityFinalizer = "vsphereclusteridentity/infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// VMFinalizer allows the reconciler to clean up resources associated
	// with a VSphereVM before removing it from the API Server.
	VMFinalizer = "vspherevm.infrastructure.cluster.x-k8s.io"

	// IPAddressClaimFinalizer allows the reconciler to prevent deletion of an
	// IPAddressClaim that is in use.
	IPAddressClaimFinalizer = "vspherevm.infrastructure.cluster.x-k8s.io/ip-claim-protection"

	// GuestSoftPowerOffDefaultTimeout is the default timeout to wait for
	// shutdown finishes in the guest VM before powering off the VM forcibly
	// Only effective when the powerOffMode is set to trySoft.
	GuestSoftPowerOffDefaultTimeout = 5 * time.Minute
)
View Source
const (
	// ClusterFinalizer allows ReconcileVSphereCluster to clean up vSphere
	// resources associated with VSphereCluster before removing it from the
	// API server.
	ClusterFinalizer = "vspherecluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// DeploymentZoneFinalizer allows ReconcileVSphereDeploymentZone to
	// check for dependents associated with VSphereDeploymentZone
	// before removing it from the API Server.
	DeploymentZoneFinalizer = "vspheredeploymentzone.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer allows ReconcileVSphereMachine to clean up VSphere
	// resources associated with VSphereMachine before removing it from the
	// API Server.
	MachineFinalizer = "vspheremachine.infrastructure.cluster.x-k8s.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: GroupName, Version: Version}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = schemeBuilder.AddToScheme
)
View Source
var (
	// VSphereClusterIdentityKind is used when a VSphereClusterIdentity is referenced in a VSphereCluster.
	VSphereClusterIdentityKind = VSphereIdentityKind("VSphereClusterIdentity")
	// SecretKind is used when a secret is referenced directly in a VSphereCluster.
	SecretKind = VSphereIdentityKind("Secret")
)

Functions

This section is empty.

Types

type APIEndpoint

type APIEndpoint struct {
	// The hostname on which the API server is serving.
	Host string `json:"host"`

	// The port on which the API server is serving.
	Port int32 `json:"port"`
}

APIEndpoint represents a reachable Kubernetes API endpoint.

func (*APIEndpoint) DeepCopy

func (in *APIEndpoint) DeepCopy() *APIEndpoint

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

func (*APIEndpoint) DeepCopyInto

func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint)

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

func (APIEndpoint) IsZero

func (v APIEndpoint) IsZero() bool

IsZero returns true if either the host or the port are zero values.

func (APIEndpoint) String

func (v APIEndpoint) String() string

String returns a formatted version HOST:PORT of this APIEndpoint.

type AllowedNamespaces

type AllowedNamespaces struct {
	// Selector is a standard Kubernetes LabelSelector. A label query over a set of resources.
	// +optional
	Selector metav1.LabelSelector `json:"selector"`
}

AllowedNamespaces restricts the namespaces this VSphereClusterIdentity can be used from.

func (*AllowedNamespaces) DeepCopy

func (in *AllowedNamespaces) DeepCopy() *AllowedNamespaces

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

func (*AllowedNamespaces) DeepCopyInto

func (in *AllowedNamespaces) DeepCopyInto(out *AllowedNamespaces)

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

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

type ClusterModule added in v1.3.2

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 added in v1.3.2

func (in *ClusterModule) DeepCopy() *ClusterModule

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

func (*ClusterModule) DeepCopyInto added in v1.3.2

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

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

type DHCPOverrides added in v1.5.0

type DHCPOverrides struct {
	// Hostname is the name which will be sent to the DHCP server instead of
	// the machine's hostname.
	// +optional
	Hostname *string `json:"hostname,omitempty"`
	// RouteMetric is used to prioritize routes for devices. A lower metric for
	// an interface will have a higher priority.
	// +optional
	RouteMetric *int `json:"routeMetric,omitempty"`
	// SendHostname when `true`, the hostname of the machine will be sent to the
	// DHCP server.
	// +optional
	SendHostname *bool `json:"sendHostname,omitempty"`
	// UseDNS when `true`, the DNS servers in the DHCP server will be used and
	// take precedence.
	// +optional
	UseDNS *bool `json:"useDNS,omitempty"`
	// UseDomains can take the values `true`, `false`, or `route`. When `true`,
	// the domain name from the DHCP server will be used as the DNS search
	// domain for this device. When `route`, the domain name from the DHCP
	// response will be used for routing DNS only, not for searching.
	// +optional
	UseDomains *string `json:"useDomains,omitempty"`
	// UseHostname when `true`, the hostname from the DHCP server will be set
	// as the transient hostname of the machine.
	// +optional
	UseHostname *bool `json:"useHostname,omitempty"`
	// UseMTU when `true`, the MTU from the DHCP server will be set as the
	// MTU of the device.
	// +optional
	UseMTU *bool `json:"useMTU,omitempty"`
	// UseNTP when `true`, the NTP servers from the DHCP server will be used
	// by systemd-timesyncd and take precedence.
	// +optional
	UseNTP *bool `json:"useNTP,omitempty"`
	// UseRoutes when `true`, the routes from the DHCP server will be installed
	// in the routing table.
	// +optional
	UseRoutes *string `json:"useRoutes,omitempty"`
}

DHCPOverrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides)

func (*DHCPOverrides) DeepCopy added in v1.5.0

func (in *DHCPOverrides) DeepCopy() *DHCPOverrides

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

func (*DHCPOverrides) DeepCopyInto added in v1.5.0

func (in *DHCPOverrides) DeepCopyInto(out *DHCPOverrides)

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

type FailureDomain

type FailureDomain struct {
	// Name is the name of the tag that represents this failure domain
	Name string `json:"name"`

	// Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup"
	// +kubebuilder:validation:Enum=Datacenter;ComputeCluster;HostGroup
	Type FailureDomainType `json:"type"`

	// TagCategory is the category used for the tag
	TagCategory string `json:"tagCategory"`

	// AutoConfigure tags the Type which is specified in the Topology
	//
	// Deprecated: This field is going to be removed in a future release.
	AutoConfigure *bool `json:"autoConfigure,omitempty"`
}

FailureDomain contains data to identify and configure a failure domain.

func (*FailureDomain) DeepCopy

func (in *FailureDomain) DeepCopy() *FailureDomain

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

func (*FailureDomain) DeepCopyInto

func (in *FailureDomain) DeepCopyInto(out *FailureDomain)

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

type FailureDomainHosts

type FailureDomainHosts struct {
	// VMGroupName is the name of the VM group
	VMGroupName string `json:"vmGroupName"`

	// HostGroupName is the name of the Host group
	HostGroupName string `json:"hostGroupName"`
}

FailureDomainHosts has information required for placement of machines on VSphere hosts.

func (*FailureDomainHosts) DeepCopy

func (in *FailureDomainHosts) DeepCopy() *FailureDomainHosts

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

func (*FailureDomainHosts) DeepCopyInto

func (in *FailureDomainHosts) DeepCopyInto(out *FailureDomainHosts)

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

type FailureDomainType

type FailureDomainType string

FailureDomainType defines the VCenter object the failure domain represents.

const (
	// HostGroupFailureDomain is a failure domain for a host group.
	HostGroupFailureDomain FailureDomainType = "HostGroup"
	// ComputeClusterFailureDomain is a failure domain for a compute cluster.
	ComputeClusterFailureDomain FailureDomainType = "ComputeCluster"
	// DatacenterFailureDomain is a failure domain for a datacenter.
	DatacenterFailureDomain FailureDomainType = "Datacenter"
)

type Network

type Network struct {
	// Name is the network name for this machine's VM.
	Name string `json:"name,omitempty"`

	// DHCP4 is a flag that indicates whether or not to use DHCP for IPv4
	// +optional
	DHCP4 *bool `json:"dhcp4,omitempty"`

	// DHCP6 indicates whether or not to use DHCP for IPv6
	// +optional
	DHCP6 *bool `json:"dhcp6,omitempty"`
}

Network holds information about the network.

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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 vSphere network to which the device
	// will be connected.
	NetworkName string `json:"networkName"`

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

	// 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.
	// +optional
	Gateway6 string `json:"gateway6,omitempty"`

	// IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign
	// to this device. IP addresses must also specify the segment length in
	// CIDR notation.
	// Required when DHCP4, DHCP6 and SkipIPAllocation are 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 VMware OUI to work with the
	// in-tree vSphere 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"`

	// AddressesFromPools is a list of IPAddressPools that should be assigned
	// to IPAddressClaims. The machine's cloud-init metadata will be populated
	// with IPAddresses fulfilled by an IPAM provider.
	// +optional
	AddressesFromPools []corev1.TypedLocalObjectReference `json:"addressesFromPools,omitempty"`

	// DHCP4Overrides allows for the control over several DHCP behaviors.
	// Overrides will only be applied when the corresponding DHCP flag is set.
	// Only configured values will be sent, omitted values will default to
	// distribution defaults.
	// Dependent on support in the network stack for your distribution.
	// For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides)
	// +optional
	DHCP4Overrides *DHCPOverrides `json:"dhcp4Overrides,omitempty"`

	// DHCP6Overrides allows for the control over several DHCP behaviors.
	// Overrides will only be applied when the corresponding DHCP flag is set.
	// Only configured values will be sent, omitted values will default to
	// distribution defaults.
	// Dependent on support in the network stack for your distribution.
	// For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides)
	// +optional
	DHCP6Overrides *DHCPOverrides `json:"dhcp6Overrides,omitempty"`

	// SkipIPAllocation allows the device to not have IP address or DHCP configured.
	// This is suitable for devices for which IP allocation is handled externally, eg. using Multus CNI.
	// If true, CAPV will not verify IP address allocation.
	// +optional
	SkipIPAllocation bool `json:"skipIPAllocation,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.
	// TODO(akutz) 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
	//
	// Deprecated: This field is going to be removed in a future release.
	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 OS added in v1.4.0

type OS string

OS is the type of Operating System the virtual machine uses.

const (
	// Linux indicates the VM uses a Linux Operating System.
	Linux OS = "Linux"

	// Windows indicates the VM uses Windows Server 2019 as the OS.
	Windows OS = "Windows"
)

type PCIDeviceSpec added in v1.3.0

type PCIDeviceSpec struct {
	// DeviceID is the device ID of a virtual machine's PCI, in integer.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// Mutually exclusive with VGPUProfile as VGPUProfile and DeviceID + VendorID
	// are two independent ways to define PCI devices.
	// +optional
	DeviceID *int32 `json:"deviceId,omitempty"`
	// VendorId is the vendor ID of a virtual machine's PCI, in integer.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// Mutually exclusive with VGPUProfile as VGPUProfile and DeviceID + VendorID
	// are two independent ways to define PCI devices.
	// +optional
	VendorID *int32 `json:"vendorId,omitempty"`
	// VGPUProfile is the profile name of a virtual machine's vGPU, in string.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// Mutually exclusive with DeviceID and VendorID as VGPUProfile and DeviceID + VendorID
	// are two independent ways to define PCI devices.
	// +optional
	VGPUProfile string `json:"vGPUProfile,omitempty"`
	// CustomLabel is the hardware label of a virtual machine's PCI device.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// +optional
	CustomLabel string `json:"customLabel,omitempty"`
}

PCIDeviceSpec defines virtual machine's PCI configuration.

func (*PCIDeviceSpec) DeepCopy added in v1.3.0

func (in *PCIDeviceSpec) DeepCopy() *PCIDeviceSpec

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

func (*PCIDeviceSpec) DeepCopyInto added in v1.3.0

func (in *PCIDeviceSpec) DeepCopyInto(out *PCIDeviceSpec)

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

type PlacementConstraint

type PlacementConstraint struct {
	// ResourcePool is the name or inventory path of the resource pool in which
	// the virtual machine is created/located.
	// +optional
	ResourcePool string `json:"resourcePool,omitempty"`

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

PlacementConstraint is the context information for VM placements within a failure domain.

func (*PlacementConstraint) DeepCopy

func (in *PlacementConstraint) DeepCopy() *PlacementConstraint

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

func (*PlacementConstraint) DeepCopyInto

func (in *PlacementConstraint) DeepCopyInto(out *PlacementConstraint)

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

type SSHUser

type SSHUser struct {
	// Name is the name of the SSH user.
	Name string `json:"name"`
	// AuthorizedKeys is one or more public SSH keys that grant remote access.
	AuthorizedKeys []string `json:"authorizedKeys"`
}

SSHUser is granted remote access to a system.

func (*SSHUser) DeepCopy

func (in *SSHUser) DeepCopy() *SSHUser

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

func (*SSHUser) DeepCopyInto

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

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

type Topology

type Topology struct {
	// Datacenter as the failure domain.
	// +kubebuilder:validation:Required
	Datacenter string `json:"datacenter"`

	// ComputeCluster as the failure domain
	// +optional
	ComputeCluster *string `json:"computeCluster,omitempty"`

	// Hosts has information required for placement of machines on VSphere hosts.
	// +optional
	Hosts *FailureDomainHosts `json:"hosts,omitempty"`

	// Networks is the list of networks within this failure domain
	// +optional
	Networks []string `json:"networks,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"`
}

Topology describes a given failure domain using vSphere constructs.

func (*Topology) DeepCopy

func (in *Topology) DeepCopy() *Topology

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

func (*Topology) DeepCopyInto

func (in *Topology) DeepCopyInto(out *Topology)

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

type VCenterVersion added in v1.3.2

type VCenterVersion string

VCenterVersion conveys the API version of the vCenter instance.

func NewVCenterVersion added in v1.3.2

func NewVCenterVersion(version string) VCenterVersion

NewVCenterVersion returns a VCenterVersion for the passed string.

type VSphereCluster

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

	Spec   VSphereClusterSpec   `json:"spec,omitempty"`
	Status VSphereClusterStatus `json:"status,omitempty"`
}

VSphereCluster is the Schema for the vsphereclusters API.

func (*VSphereCluster) DeepCopy

func (in *VSphereCluster) DeepCopy() *VSphereCluster

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

func (*VSphereCluster) DeepCopyInto

func (in *VSphereCluster) DeepCopyInto(out *VSphereCluster)

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

func (*VSphereCluster) DeepCopyObject

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

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

func (*VSphereCluster) GetConditions

func (c *VSphereCluster) GetConditions() clusterv1.Conditions

GetConditions returns the conditions for the VSphereCluster.

func (*VSphereCluster) Hub

func (*VSphereCluster) Hub()

Hub marks VSphereCluster as a conversion hub.

func (*VSphereCluster) SetConditions

func (c *VSphereCluster) SetConditions(conditions clusterv1.Conditions)

SetConditions sets conditions on the VSphereCluster.

type VSphereClusterIdentity

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

	Spec   VSphereClusterIdentitySpec   `json:"spec,omitempty"`
	Status VSphereClusterIdentityStatus `json:"status,omitempty"`
}

VSphereClusterIdentity defines the account to be used for reconciling clusters.

func (*VSphereClusterIdentity) DeepCopy

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

func (*VSphereClusterIdentity) DeepCopyInto

func (in *VSphereClusterIdentity) DeepCopyInto(out *VSphereClusterIdentity)

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

func (*VSphereClusterIdentity) DeepCopyObject

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

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

func (*VSphereClusterIdentity) GetConditions

func (c *VSphereClusterIdentity) GetConditions() clusterv1.Conditions

GetConditions returns the conditions for the VSphereClusterIdentity.

func (*VSphereClusterIdentity) Hub

func (*VSphereClusterIdentity) Hub()

Hub marks VSphereClusterIdentity as a conversion hub.

func (*VSphereClusterIdentity) SetConditions

func (c *VSphereClusterIdentity) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the conditions on the VSphereClusterIdentity.

type VSphereClusterIdentityList

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

VSphereClusterIdentityList contains a list of VSphereClusterIdentity.

func (*VSphereClusterIdentityList) DeepCopy

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

func (*VSphereClusterIdentityList) DeepCopyInto

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

func (*VSphereClusterIdentityList) DeepCopyObject

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

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

func (*VSphereClusterIdentityList) Hub

Hub marks VSphereClusterIdentityList as a conversion hub.

type VSphereClusterIdentitySpec

type VSphereClusterIdentitySpec struct {
	// SecretName references a Secret inside the controller namespace with the credentials to use
	// +kubebuilder:validation:MinLength=1
	SecretName string `json:"secretName,omitempty"`

	// AllowedNamespaces is used to identify which namespaces are allowed to use this account.
	// Namespaces can be selected with a label selector.
	// If this object is nil, no namespaces will be allowed
	// +optional
	AllowedNamespaces *AllowedNamespaces `json:"allowedNamespaces,omitempty"`
}

VSphereClusterIdentitySpec contains a secret reference and a group of allowed namespaces.

func (*VSphereClusterIdentitySpec) DeepCopy

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

func (*VSphereClusterIdentitySpec) DeepCopyInto

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

type VSphereClusterIdentityStatus

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

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

VSphereClusterIdentityStatus contains the status of the VSphereClusterIdentity.

func (*VSphereClusterIdentityStatus) DeepCopy

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

func (*VSphereClusterIdentityStatus) DeepCopyInto

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

type VSphereClusterList

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

VSphereClusterList contains a list of VSphereCluster.

func (*VSphereClusterList) DeepCopy

func (in *VSphereClusterList) DeepCopy() *VSphereClusterList

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

func (*VSphereClusterList) DeepCopyInto

func (in *VSphereClusterList) DeepCopyInto(out *VSphereClusterList)

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

func (*VSphereClusterList) DeepCopyObject

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

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

func (*VSphereClusterList) Hub

func (*VSphereClusterList) Hub()

Hub marks VSphereClusterList as a conversion hub.

type VSphereClusterSpec

type VSphereClusterSpec struct {
	// Server is the address of the vSphere endpoint.
	Server string `json:"server,omitempty"`

	// Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate
	// +optional
	Thumbprint string `json:"thumbprint,omitempty"`

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

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

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

	// FailureDomainSelector is the label selector to use for failure domain selection
	// for the control plane nodes of the cluster.
	// If not set (`nil`), selecting failure domains will be disabled.
	// An empty value (`{}`) selects all existing failure domains.
	// A valid selector will select all failure domains which match the selector.
	// +optional
	FailureDomainSelector *metav1.LabelSelector `json:"failureDomainSelector,omitempty"`
}

VSphereClusterSpec defines the desired state of VSphereCluster.

func (*VSphereClusterSpec) DeepCopy

func (in *VSphereClusterSpec) DeepCopy() *VSphereClusterSpec

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

func (*VSphereClusterSpec) DeepCopyInto

func (in *VSphereClusterSpec) DeepCopyInto(out *VSphereClusterSpec)

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

type VSphereClusterStatus

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

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

	// FailureDomains is a list of failure domain objects synced from the infrastructure provider.
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`

	// VCenterVersion defines the version of the vCenter server defined in the spec.
	VCenterVersion VCenterVersion `json:"vCenterVersion,omitempty"`
}

VSphereClusterStatus defines the observed state of VSphereClusterSpec.

func (*VSphereClusterStatus) DeepCopy

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

func (*VSphereClusterStatus) DeepCopyInto

func (in *VSphereClusterStatus) DeepCopyInto(out *VSphereClusterStatus)

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

type VSphereClusterTemplate

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

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

VSphereClusterTemplate is the Schema for the vsphereclustertemplates API.

func (*VSphereClusterTemplate) DeepCopy

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

func (*VSphereClusterTemplate) DeepCopyInto

func (in *VSphereClusterTemplate) DeepCopyInto(out *VSphereClusterTemplate)

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

func (*VSphereClusterTemplate) DeepCopyObject

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

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

func (*VSphereClusterTemplate) Hub

func (*VSphereClusterTemplate) Hub()

Hub marks VSphereClusterIdentity as a conversion hub.

type VSphereClusterTemplateList

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

VSphereClusterTemplateList contains a list of VSphereClusterTemplate.

func (*VSphereClusterTemplateList) DeepCopy

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

func (*VSphereClusterTemplateList) DeepCopyInto

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

func (*VSphereClusterTemplateList) DeepCopyObject

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

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

func (*VSphereClusterTemplateList) Hub

Hub marks VSphereClusterIdentityList as a conversion hub.

type VSphereClusterTemplateResource

type VSphereClusterTemplateResource struct {
	Spec VSphereClusterSpec `json:"spec"`
}

VSphereClusterTemplateResource describes the data for creating a VSphereCluster from a template.

func (*VSphereClusterTemplateResource) DeepCopy

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

func (*VSphereClusterTemplateResource) DeepCopyInto

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

type VSphereClusterTemplateSpec

type VSphereClusterTemplateSpec struct {
	Template VSphereClusterTemplateResource `json:"template"`
}

VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate.

func (*VSphereClusterTemplateSpec) DeepCopy

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

func (*VSphereClusterTemplateSpec) DeepCopyInto

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

type VSphereDeploymentZone

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

	Spec   VSphereDeploymentZoneSpec   `json:"spec,omitempty"`
	Status VSphereDeploymentZoneStatus `json:"status,omitempty"`
}

VSphereDeploymentZone is the Schema for the vspheredeploymentzones API.

func (*VSphereDeploymentZone) DeepCopy

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

func (*VSphereDeploymentZone) DeepCopyInto

func (in *VSphereDeploymentZone) DeepCopyInto(out *VSphereDeploymentZone)

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

func (*VSphereDeploymentZone) DeepCopyObject

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

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

func (*VSphereDeploymentZone) GetConditions

func (z *VSphereDeploymentZone) GetConditions() clusterv1.Conditions

GetConditions returns the conditions for the VSphereDeploymentZone.

func (*VSphereDeploymentZone) Hub

func (*VSphereDeploymentZone) Hub()

Hub marks VSphereDeploymentZone as a conversion hub.

func (*VSphereDeploymentZone) SetConditions

func (z *VSphereDeploymentZone) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the conditions on the VSphereDeploymentZone.

type VSphereDeploymentZoneList

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

VSphereDeploymentZoneList contains a list of VSphereDeploymentZone.

func (*VSphereDeploymentZoneList) DeepCopy

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

func (*VSphereDeploymentZoneList) DeepCopyInto

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

func (*VSphereDeploymentZoneList) DeepCopyObject

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

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

func (*VSphereDeploymentZoneList) Hub

Hub marks VSphereDeploymentZoneList as a conversion hub.

type VSphereDeploymentZoneSpec

type VSphereDeploymentZoneSpec struct {

	// Server is the address of the vSphere endpoint.
	Server string `json:"server,omitempty"`

	// FailureDomain is the name of the VSphereFailureDomain used for this VSphereDeploymentZone
	FailureDomain string `json:"failureDomain,omitempty"`

	// ControlPlane determines if this failure domain is suitable for use by control plane machines.
	// +optional
	ControlPlane *bool `json:"controlPlane,omitempty"`

	// PlacementConstraint encapsulates the placement constraints
	// used within this deployment zone.
	PlacementConstraint PlacementConstraint `json:"placementConstraint"`
}

VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone.

func (*VSphereDeploymentZoneSpec) DeepCopy

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

func (*VSphereDeploymentZoneSpec) DeepCopyInto

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

type VSphereDeploymentZoneStatus

type VSphereDeploymentZoneStatus struct {
	// Ready is true when the VSphereDeploymentZone resource is ready.
	// If set to false, it will be ignored by VSphereClusters
	// +optional
	Ready *bool `json:"ready,omitempty"`

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

VSphereDeploymentZoneStatus contains the status for a VSphereDeploymentZone.

func (*VSphereDeploymentZoneStatus) DeepCopy

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

func (*VSphereDeploymentZoneStatus) DeepCopyInto

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

type VSphereFailureDomain

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

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

VSphereFailureDomain is the Schema for the vspherefailuredomains API.

func (*VSphereFailureDomain) DeepCopy

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

func (*VSphereFailureDomain) DeepCopyInto

func (in *VSphereFailureDomain) DeepCopyInto(out *VSphereFailureDomain)

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

func (*VSphereFailureDomain) DeepCopyObject

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

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

func (*VSphereFailureDomain) Hub

func (*VSphereFailureDomain) Hub()

Hub marks VSphereFailureDomain as a conversion hub.

type VSphereFailureDomainList

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

VSphereFailureDomainList contains a list of VSphereFailureDomain.

func (*VSphereFailureDomainList) DeepCopy

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

func (*VSphereFailureDomainList) DeepCopyInto

func (in *VSphereFailureDomainList) DeepCopyInto(out *VSphereFailureDomainList)

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

func (*VSphereFailureDomainList) DeepCopyObject

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

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

func (*VSphereFailureDomainList) Hub

func (*VSphereFailureDomainList) Hub()

Hub marks VSphereFailureDomainList as a conversion hub.

type VSphereFailureDomainSpec

type VSphereFailureDomainSpec struct {

	// Region defines the name and type of a region
	Region FailureDomain `json:"region"`

	// Zone defines the name and type of a zone
	Zone FailureDomain `json:"zone"`

	// Topology describes a given failure domain using vSphere constructs
	Topology Topology `json:"topology"`
}

VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain.

func (*VSphereFailureDomainSpec) DeepCopy

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

func (*VSphereFailureDomainSpec) DeepCopyInto

func (in *VSphereFailureDomainSpec) DeepCopyInto(out *VSphereFailureDomainSpec)

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

type VSphereIdentityKind

type VSphereIdentityKind string

VSphereIdentityKind is the kind of mechanism used to handle credentials for the VCenter API.

type VSphereIdentityReference

type VSphereIdentityReference struct {
	// Kind of the identity. Can either be VSphereClusterIdentity or Secret
	// +kubebuilder:validation:Enum=VSphereClusterIdentity;Secret
	Kind VSphereIdentityKind `json:"kind"`

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

VSphereIdentityReference is the mechanism used to handle credentials for the VCenter API.

func (*VSphereIdentityReference) DeepCopy

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

func (*VSphereIdentityReference) DeepCopyInto

func (in *VSphereIdentityReference) DeepCopyInto(out *VSphereIdentityReference)

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

type VSphereMachine

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

	Spec   VSphereMachineSpec   `json:"spec,omitempty"`
	Status VSphereMachineStatus `json:"status,omitempty"`
}

VSphereMachine is the Schema for the vspheremachines API.

func (*VSphereMachine) DeepCopy

func (in *VSphereMachine) DeepCopy() *VSphereMachine

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

func (*VSphereMachine) DeepCopyInto

func (in *VSphereMachine) DeepCopyInto(out *VSphereMachine)

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

func (*VSphereMachine) DeepCopyObject

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

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

func (*VSphereMachine) GetConditions

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

GetConditions returns the conditions for a VSphereMachine.

func (*VSphereMachine) Hub

func (*VSphereMachine) Hub()

Hub marks VSphereMachine as a conversion hub.

func (*VSphereMachine) SetConditions

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

SetConditions sets the conditions on a VSphereMachine.

type VSphereMachineList

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

VSphereMachineList contains a list of VSphereMachine.

func (*VSphereMachineList) DeepCopy

func (in *VSphereMachineList) DeepCopy() *VSphereMachineList

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

func (*VSphereMachineList) DeepCopyInto

func (in *VSphereMachineList) DeepCopyInto(out *VSphereMachineList)

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

func (*VSphereMachineList) DeepCopyObject

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

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

func (*VSphereMachineList) Hub

func (*VSphereMachineList) Hub()

Hub marks VSphereMachineList as a conversion hub.

type VSphereMachineProviderConditionType

type VSphereMachineProviderConditionType string

VSphereMachineProviderConditionType is a valid value for VSphereMachineProviderCondition.Type.

const (
	// MachineCreated indicates whether the machine has been created or not. If not,
	// it should include a reason and message for the failure.
	MachineCreated VSphereMachineProviderConditionType = "MachineCreated"
)

Valid conditions for an VSphere machine instance.

type VSphereMachineSpec

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

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

	// FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API.
	// For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone.
	FailureDomain *string `json:"failureDomain,omitempty"`

	// PowerOffMode describes the desired behavior when powering off a VM.
	//
	// There are three, supported power off modes: hard, soft, and
	// trySoft. The first mode, hard, is the equivalent of a physical
	// system's power cord being ripped from the wall. The soft mode
	// requires the VM's guest to have VM Tools installed and attempts to
	// gracefully shut down the VM. Its variant, trySoft, first attempts
	// a graceful shutdown, and if that fails or the VM is not in a powered off
	// state after reaching the GuestSoftPowerOffTimeout, the VM is halted.
	//
	// If omitted, the mode defaults to hard.
	//
	// +optional
	// +kubebuilder:default=hard
	PowerOffMode VirtualMachinePowerOpMode `json:"powerOffMode,omitempty"`

	// GuestSoftPowerOffTimeout sets the wait timeout for shutdown in the VM guest.
	// The VM will be powered off forcibly after the timeout if the VM is still
	// up and running when the PowerOffMode is set to trySoft.
	//
	// This parameter only applies when the PowerOffMode is set to trySoft.
	//
	// If omitted, the timeout defaults to 5 minutes.
	//
	// +optional
	GuestSoftPowerOffTimeout *metav1.Duration `json:"guestSoftPowerOffTimeout,omitempty"`
}

VSphereMachineSpec defines the desired state of VSphereMachine.

func (*VSphereMachineSpec) DeepCopy

func (in *VSphereMachineSpec) DeepCopy() *VSphereMachineSpec

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

func (*VSphereMachineSpec) DeepCopyInto

func (in *VSphereMachineSpec) DeepCopyInto(out *VSphereMachineSpec)

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

type VSphereMachineStatus

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

	// Addresses contains the VSphere 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 VSphereMachine.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

VSphereMachineStatus defines the observed state of VSphereMachine.

func (*VSphereMachineStatus) DeepCopy

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

func (*VSphereMachineStatus) DeepCopyInto

func (in *VSphereMachineStatus) DeepCopyInto(out *VSphereMachineStatus)

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

type VSphereMachineTemplate

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

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

VSphereMachineTemplate is the Schema for the vspheremachinetemplates API.

func (*VSphereMachineTemplate) DeepCopy

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

func (*VSphereMachineTemplate) DeepCopyInto

func (in *VSphereMachineTemplate) DeepCopyInto(out *VSphereMachineTemplate)

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

func (*VSphereMachineTemplate) DeepCopyObject

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

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

func (*VSphereMachineTemplate) Hub

func (*VSphereMachineTemplate) Hub()

Hub marks VSphereMachineTemplate as a conversion hub.

type VSphereMachineTemplateList

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

VSphereMachineTemplateList contains a list of VSphereMachineTemplate.

func (*VSphereMachineTemplateList) DeepCopy

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

func (*VSphereMachineTemplateList) DeepCopyInto

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

func (*VSphereMachineTemplateList) DeepCopyObject

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

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

func (*VSphereMachineTemplateList) Hub

Hub marks VSphereMachineTemplateList as a conversion hub.

type VSphereMachineTemplateResource

type VSphereMachineTemplateResource struct {

	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the specification of the desired behavior of the machine.
	Spec VSphereMachineSpec `json:"spec"`
}

VSphereMachineTemplateResource describes the data needed to create a VSphereMachine from a template.

func (*VSphereMachineTemplateResource) DeepCopy

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

func (*VSphereMachineTemplateResource) DeepCopyInto

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

type VSphereMachineTemplateSpec

type VSphereMachineTemplateSpec struct {
	Template VSphereMachineTemplateResource `json:"template"`
}

VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate.

func (*VSphereMachineTemplateSpec) DeepCopy

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

func (*VSphereMachineTemplateSpec) DeepCopyInto

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

type VSphereVM

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

	Spec   VSphereVMSpec   `json:"spec,omitempty"`
	Status VSphereVMStatus `json:"status,omitempty"`
}

VSphereVM is the Schema for the vspherevms API.

func (*VSphereVM) DeepCopy

func (in *VSphereVM) DeepCopy() *VSphereVM

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

func (*VSphereVM) DeepCopyInto

func (in *VSphereVM) DeepCopyInto(out *VSphereVM)

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

func (*VSphereVM) DeepCopyObject

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

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

func (*VSphereVM) GetConditions

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

GetConditions returns the conditions for a VSphereVM.

func (*VSphereVM) Hub

func (*VSphereVM) Hub()

Hub marks VSphereVM as a conversion hub.

func (*VSphereVM) SetConditions

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

SetConditions sets the conditions on a VSphereVM.

type VSphereVMList

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

VSphereVMList contains a list of VSphereVM.

func (*VSphereVMList) DeepCopy

func (in *VSphereVMList) DeepCopy() *VSphereVMList

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

func (*VSphereVMList) DeepCopyInto

func (in *VSphereVMList) DeepCopyInto(out *VSphereVMList)

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

func (*VSphereVMList) DeepCopyObject

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

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

func (*VSphereVMList) Hub

func (*VSphereVMList) Hub()

Hub marks VSphereVMList as a conversion hub.

type VSphereVMSpec

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

	// PowerOffMode describes the desired behavior when powering off a VM.
	//
	// There are three, supported power off modes: hard, soft, and
	// trySoft. The first mode, hard, is the equivalent of a physical
	// system's power cord being ripped from the wall. The soft mode
	// requires the VM's guest to have VM Tools installed and attempts to
	// gracefully shut down the VM. Its variant, trySoft, first attempts
	// a graceful shutdown, and if that fails or the VM is not in a powered off
	// state after reaching the GuestSoftPowerOffTimeout, the VM is halted.
	//
	// If omitted, the mode defaults to hard.
	//
	// +optional
	// +kubebuilder:default=hard
	PowerOffMode VirtualMachinePowerOpMode `json:"powerOffMode,omitempty"`

	// GuestSoftPowerOffTimeout sets the wait timeout for shutdown in the VM guest.
	// The VM will be powered off forcibly after the timeout if the VM is still
	// up and running when the PowerOffMode is set to trySoft.
	//
	// This parameter only applies when the PowerOffMode is set to trySoft.
	//
	// If omitted, the timeout defaults to 5 minutes.
	//
	// +optional
	GuestSoftPowerOffTimeout *metav1.Duration `json:"guestSoftPowerOffTimeout,omitempty"`
}

VSphereVMSpec defines the desired state of VSphereVM.

func (*VSphereVMSpec) DeepCopy

func (in *VSphereVMSpec) DeepCopy() *VSphereVMSpec

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

func (*VSphereVMSpec) DeepCopyInto

func (in *VSphereVMSpec) DeepCopyInto(out *VSphereVMSpec)

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

type VSphereVMStatus

type VSphereVMStatus struct {
	// Host describes the hostname or IP address of the infrastructure host
	// that the VSphereVM 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"`

	// RetryAfter tracks the time we can retry queueing a task
	// +optional
	RetryAfter metav1.Time `json:"retryAfter,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 vspherevm 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 vspherevms
	// can be added as events to the vspherevm 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 vspherevm 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 vspherevms
	// can be added as events to the vspherevm object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

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

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

	// VMRef is the VM's Managed Object Reference on vSphere. It can be used by consumers
	// to programatically get this VM representation on vSphere in case of the need to retrieve informations.
	// This field is set once the machine is created and should not be changed
	// +optional
	VMRef string `json:"vmRef,omitempty"`
}

VSphereVMStatus defines the observed state of VSphereVM.

func (*VSphereVMStatus) DeepCopy

func (in *VSphereVMStatus) DeepCopy() *VSphereVMStatus

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

func (*VSphereVMStatus) DeepCopyInto

func (in *VSphereVMStatus) DeepCopyInto(out *VSphereVMStatus)

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

type VirtualMachine

type VirtualMachine struct {
	// 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"`

	// VMRef is the VM's Managed Object Reference on vSphere.
	VMRef string `json:"vmRef"`
}

VirtualMachine represents data about a vSphere 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 {
	// Template is the name or inventory path of the template used to clone
	// the virtual machine.
	// +kubebuilder:validation:MinLength=1
	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"`

	// Server is the IP address or FQDN of the vSphere server on which
	// the virtual machine is created/located.
	// +optional
	Server string `json:"server,omitempty"`

	// Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate
	// When this is set to empty, this VirtualMachine would be created
	// without TLS certificate validation of the communication between Cluster API Provider vSphere
	// and the VMware vCenter server.
	// +optional
	Thumbprint string `json:"thumbprint,omitempty"`

	// Datacenter is the name or inventory path of the datacenter in which the
	// virtual machine is created/located.
	// Defaults to * which selects the default datacenter.
	// +optional
	Datacenter string `json:"datacenter,omitempty"`

	// Folder is the name or inventory path of the folder in which the
	// virtual machine is created/located.
	// +optional
	Folder string `json:"folder,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"`

	// StoragePolicyName of the storage policy to use with this
	// Virtual Machine
	// +optional
	StoragePolicyName string `json:"storagePolicyName,omitempty"`

	// ResourcePool is the name or inventory path of the resource pool in which
	// the virtual machine is created/located.
	// +optional
	ResourcePool string `json:"resourcePool,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"`
	// DiskGiB 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
	DiskGiB int32 `json:"diskGiB,omitempty"`
	// AdditionalDisksGiB holds the sizes of additional disks of the virtual machine, in GiB
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// +optional
	AdditionalDisksGiB []int32 `json:"additionalDisksGiB,omitempty"`
	// CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM
	// Defaults to empty map
	// +optional
	CustomVMXKeys map[string]string `json:"customVMXKeys,omitempty"`
	// TagIDs is an optional set of tags to add to an instance. Specified tagIDs
	// must use URN-notation instead of display names.
	// +optional
	TagIDs []string `json:"tagIDs,omitempty"`
	// PciDevices is the list of pci devices used by the virtual machine.
	// +optional
	PciDevices []PCIDeviceSpec `json:"pciDevices,omitempty"`
	// OS is the Operating System of the virtual machine
	// Defaults to Linux
	// +optional
	OS OS `json:"os,omitempty"`
	// HardwareVersion is the hardware version of the virtual machine.
	// Defaults to the eponymous property value in the template from which the
	// virtual machine is cloned.
	// Check the compatibility with the ESXi version before setting the value.
	// +optional
	HardwareVersion string `json:"hardwareVersion,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 VirtualMachinePowerOpMode added in v1.8.0

type VirtualMachinePowerOpMode string

VirtualMachinePowerOpMode represents the various power operation modes when powering off or suspending a VM. +kubebuilder:validation:Enum=hard;soft;trySoft

const (
	// VirtualMachinePowerOpModeHard indicates to halt a VM when powering it
	// off or when suspending a VM to not involve the guest.
	VirtualMachinePowerOpModeHard VirtualMachinePowerOpMode = "hard"

	// VirtualMachinePowerOpModeSoft indicates to ask VM Tools running
	// inside of a VM's guest to shutdown the guest gracefully when powering
	// off a VM or when suspending a VM to allow the guest to participate.
	//
	// If this mode is set on a VM whose guest does not have VM Tools or if
	// VM Tools is present but the operation fails, the VM may never realize
	// the desired power state. This can prevent a VM from being deleted as well
	// as many other unexpected issues. It is recommended to use trySoft
	// instead.
	VirtualMachinePowerOpModeSoft VirtualMachinePowerOpMode = "soft"

	// VirtualMachinePowerOpModeTrySoft indicates to first attempt a Soft
	// operation and fall back to hard if VM Tools is not present in the guest,
	// if the soft operation fails, or if the VM is not in the desired power
	// state within the configured timeout (default 5m).
	VirtualMachinePowerOpModeTrySoft VirtualMachinePowerOpMode = "trySoft"
)

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