v1beta1

package
v1.9.2 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2026 License: Apache-2.0 Imports: 15 Imported by: 5

Documentation

Overview

Package v1beta1 contains the v1beta1 API implementation.

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 (
	Succeeded = "Succeeded"

	DeletionFailed = "DeletionFailed"

	VolumeGroupDetachFailed = "VolumeGroupDetachFailed"
)
View Source
const (
	// FailureDomainSafeForDeletionCondition indicates whether the failure domain object is safe for deletion,
	// ie., when it is not used or referenced by other resources
	FailureDomainSafeForDeletionCondition capiv1beta1.ConditionType = "FailureDomainSafeForDeletion"

	// FailureDomainInUseReason indicates that the failure domain is used by
	// Machines and/or referenced by cluster
	FailureDomainInUseReason = "FailureDomainInUse"

	// NoFailureDomainsConfiguredCondition indicates no failure domains have been configured
	NoFailureDomainsConfiguredCondition capiv1beta1.ConditionType = "NoFailureDomainsConfigured"

	// FailureDomainsValidatedCondition indicates whether the failure domains are configured correctly or not.
	FailureDomainsValidatedCondition capiv1beta1.ConditionType = "FailureDomainsValidated"

	// FailureDomainsMisconfiguredReason (Severity=Warning) indicates that some of the failure domains
	// are misconfigured.
	FailureDomainsMisconfiguredReason = "FailureDomainsMisconfigured"

	// FailureDomainsValidatedCondition indicates that the failure domains are being validated.
	FailureDomainsValidationInProgressReason = "FailureDomainsValidationInProgress"
)

Conditions and Reasons releated to failure domain

View Source
const (
	// ClusterCategoryCreatedCondition indicates the status of the category linked to the NutanixCluster
	ClusterCategoryCreatedCondition capiv1beta1.ConditionType = "ClusterCategoryCreated"

	ClusterCategoryCreationFailed = "ClusterCategoryCreationFailed"
)
View Source
const (
	// PrismCentralClientCondition indicates the status of the client used to connect to Prism Central
	PrismCentralClientCondition            capiv1beta1.ConditionType = "PrismClientInit"
	PrismCentralConvergedV4ClientCondition capiv1beta1.ConditionType = "PrismClientConvergedV4Init"

	PrismCentralClientInitializationFailed            = "PrismClientInitFailed"
	PrismCentralConvergedV4ClientInitializationFailed = "PrismClientConvergedV4InitFailed"
)
View Source
const (
	// VMProvisionedCondition shows the status of the VM provisioning process
	VMProvisionedCondition capiv1beta1.ConditionType = "VMProvisioned"

	VMProvisionedTaskFailed = "FailedVMTask"

	// VMAddressesAssignedCondition shows the status of the process of assigning the VM addresses
	VMAddressesAssignedCondition capiv1beta1.ConditionType = "VMAddressesAssigned"

	VMAddressesFailed             = "VMAddressesFailed"
	VMBootTypeInvalid             = "VMBootTypeInvalid"
	ClusterInfrastructureNotReady = "ClusterInfrastructureNotReady"
	BootstrapDataNotReady         = "BootstrapDataNotReady"
	ControlplaneNotInitialized    = "ControlplaneNotInitialized"
)
View Source
const (
	// VMAddressesAssignedCondition shows the status of the process of assigning the VMs to a project
	ProjectAssignedCondition capiv1beta1.ConditionType = "ProjectAssigned"

	ProjectAssignationFailed = "ProjectAssignationFailed"
)
View Source
const (
	// CredentialRefSecretOwnerSetCondition shows the status of setting the Owner
	CredentialRefSecretOwnerSetCondition capiv1beta1.ConditionType = "CredentialRefSecretOwnerSet"

	CredentialRefSecretOwnerSetFailed  = "CredentialRefSecretOwnerSetFailed"
	TrustBundleSecretOwnerSetCondition = "TrustBundleSecretOwnerSet"
	TrustBundleSecretOwnerSetFailed    = "TrustBundleSecretOwnerSetFailed"
)
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 (
	// NutanixIdentifierUUID is a resource identifier identifying the object by UUID.
	NutanixIdentifierUUID NutanixIdentifierType = "uuid"

	// NutanixIdentifierName is a resource identifier identifying the object by Name.
	NutanixIdentifierName NutanixIdentifierType = "name"

	// NutanixBootTypeLegacy is a resource identifier identifying the legacy boot type for virtual machines.
	NutanixBootTypeLegacy NutanixBootType = "legacy"

	// NutanixBootTypeUEFI is a resource identifier identifying the UEFI boot type for virtual machines.
	NutanixBootTypeUEFI NutanixBootType = "uefi"

	// NutanixGPUIdentifierName is a resource identifier identifying a GPU by Name.
	NutanixGPUIdentifierName NutanixGPUIdentifierType = "name"

	// NutanixGPUIdentifierDeviceID is a resource identifier identifying a GPU using device ID.
	NutanixGPUIdentifierDeviceID NutanixGPUIdentifierType = "deviceID"

	// ObsoleteDefaultCAPICategoryPrefix is the obsolete default category prefix used for CAPI clusters.
	ObsoleteDefaultCAPICategoryPrefix = "kubernetes-io-cluster-"

	// DefaultCAPICategoryKeyForName is the default category key used for CAPI clusters for cluster names.
	DefaultCAPICategoryKeyForName = "KubernetesClusterName"

	// DefaultCAPICategoryDescription is the default category description used for CAPI clusters.
	DefaultCAPICategoryDescription = "Managed by CAPX"

	// ObsoleteDefaultCAPICategoryOwnedValue is the obsolete default category value used for CAPI clusters.
	ObsoleteDefaultCAPICategoryOwnedValue = "owned"
)
View Source
const (
	// NutanixClusterKind represents the Kind of NutanixCluster
	NutanixClusterKind = "NutanixCluster"

	// NutanixClusterFinalizer allows NutanixClusterReconciler to clean up AHV
	// resources associated with NutanixCluster before removing it from the
	// API Server.
	NutanixClusterFinalizer           = "infrastructure.cluster.x-k8s.io/nutanixcluster"
	DeprecatedNutanixClusterFinalizer = "nutanixcluster.infrastructure.cluster.x-k8s.io"

	NutanixClusterCredentialFinalizer           = "infrastructure.cluster.x-k8s.io/nutanixclustercredential"
	DeprecatedNutanixClusterCredentialFinalizer = "nutanixcluster/infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// NutanixFailureDomainKind represents the Kind of NutanixFailureDomain
	NutanixFailureDomainKind = "NutanixFailureDomain"

	// NutanixFailureDomainFinalizer is the finalizer used by the NutanixFailureDomain controller to block
	// deletion of the NutanixFailureDomain object if there are references to this object by other resources.
	NutanixFailureDomainFinalizer = "infrastructure.cluster.x-k8s.io/nutanixfailuredomain"
)
View Source
const (
	// NutanixMachineKind represents the Kind of NutanixMachine
	NutanixMachineKind = "NutanixMachine"

	// NutanixMachineFinalizer allows NutanixMachineReconciler to clean up AHV
	// resources associated with NutanixMachine before removing it from the
	// API Server.
	NutanixMachineFinalizer           = "infrastructure.cluster.x-k8s.io/nutanixmachine"
	DeprecatedNutanixMachineFinalizer = "nutanixmachine.infrastructure.cluster.x-k8s.io"

	// NutanixMachineBootstrapRefKindSecret represents the Kind of Secret
	// referenced by NutanixMachine's BootstrapRef.
	NutanixMachineBootstrapRefKindSecret = "Secret"

	// NutanixMachineBootstrapRefKindImage represents the Kind of Image
	// referenced by NutanixMachine's BootstrapRef. If the BootstrapRef.Kind is set
	// to Image, the NutanixMachine will be created with the image mounted
	// as a CD-ROM.
	NutanixMachineBootstrapRefKindImage = "Image"

	// NutanixMachineDiskModeStandard represents the standard disk mode.
	NutanixMachineDiskModeStandard NutanixMachineDiskMode = "Standard"

	// NutanixMachineDiskModeFlash represents the flash disk mode.
	NutanixMachineDiskModeFlash NutanixMachineDiskMode = "Flash"

	// NutanixMachineDiskDeviceTypeDisk represents the disk device type.
	NutanixMachineDiskDeviceTypeDisk NutanixMachineDiskDeviceType = "Disk"

	// NutanixMachineDiskDeviceTypeCDRom represents the CD-ROM device type.
	NutanixMachineDiskDeviceTypeCDRom NutanixMachineDiskDeviceType = "CDRom"

	// NutanixMachineDiskAdapterTypeSCSI represents the SCSI adapter type.
	NutanixMachineDiskAdapterTypeSCSI NutanixMachineDiskAdapterType = "SCSI"

	// NutanixMachineDiskAdapterTypeIDE represents the IDE adapter type.
	NutanixMachineDiskAdapterTypeIDE NutanixMachineDiskAdapterType = "IDE"

	// NutanixMachineDiskAdapterTypePCI represents the PCI adapter type.
	NutanixMachineDiskAdapterTypePCI NutanixMachineDiskAdapterType = "PCI"

	// NutanixMachineDiskAdapterTypeSATA represents the SATA adapter type.
	NutanixMachineDiskAdapterTypeSATA NutanixMachineDiskAdapterType = "SATA"

	// NutanixMachineDiskAdapterTypeSPAPR represents the SPAPR adapter type.
	NutanixMachineDiskAdapterTypeSPAPR NutanixMachineDiskAdapterType = "SPAPR"
)
View Source
const (
	// ImageNamePlaceholder is the placeholder value set for image.name when type is "name"
	// but name is not provided. It is clearly identifiable as a non-real value.
	ImageNamePlaceholder = "PLACEHOLDER"

	// ImageUUIDPlaceholder is the placeholder UUID set for image.uuid when type is "uuid"
	// but uuid is not provided. It uses the nil UUID format (all zeros) which is a valid
	// UUID format that satisfies the CEL rule requiring 36 characters and a dash.
	ImageUUIDPlaceholder = "00000000-0000-0000-0000-000000000000"
)

Placeholder values for brownfield compatibility. These are injected by the defaulting webhook when a NutanixMachineTemplate has spec.template.spec.image with type set but the corresponding name/uuid value missing. This can happen with legacy objects created before the CEL validation rules were added. The placeholders satisfy CEL validation at admission time; the actual image resolution is expected to be handled later by ClusterClass variable patches or the controller.

View Source
const (
	// NutanixMachineTemplateKind represents the Kind of NutanixMachineTemplate
	NutanixMachineTemplateKind = "NutanixMachineTemplate"
)

Variables

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

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

Functions

This section is empty.

Types

type NutanixBootType added in v1.1.3

type NutanixBootType string

NutanixBootType is an enumeration of different boot types.

type NutanixCategoryIdentifier

type NutanixCategoryIdentifier struct {
	// key is the Key of category in PC.
	// +optional
	Key string `json:"key,omitempty"`

	// value is the category value linked to the category key in PC
	// +optional
	Value string `json:"value,omitempty"`
}

func (*NutanixCategoryIdentifier) DeepCopy

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

func (*NutanixCategoryIdentifier) DeepCopyInto

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

type NutanixCluster

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

	Spec   NutanixClusterSpec   `json:"spec,omitempty"`
	Status NutanixClusterStatus `json:"status,omitempty"`
}

NutanixCluster is the Schema for the nutanixclusters API

func (*NutanixCluster) DeepCopy

func (in *NutanixCluster) DeepCopy() *NutanixCluster

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

func (*NutanixCluster) DeepCopyInto

func (in *NutanixCluster) DeepCopyInto(out *NutanixCluster)

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

func (*NutanixCluster) DeepCopyObject

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

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

func (*NutanixCluster) GetConditions

func (ncl *NutanixCluster) GetConditions() capiv1beta1.Conditions

GetConditions returns the set of conditions for this object.

func (*NutanixCluster) GetNamespacedName added in v1.2.5

func (ncl *NutanixCluster) GetNamespacedName() string

GetNamespacedName returns the namespaced name of the NutanixCluster.

func (*NutanixCluster) GetPrismCentralCredentialRef added in v1.2.5

func (ncl *NutanixCluster) GetPrismCentralCredentialRef() (*credentialTypes.NutanixCredentialReference, error)

func (*NutanixCluster) GetPrismCentralTrustBundle added in v1.3.5

func (ncl *NutanixCluster) GetPrismCentralTrustBundle() *credentialTypes.NutanixTrustBundleReference

GetPrismCentralTrustBundle returns the trust bundle reference for the Nutanix Prism Central.

func (*NutanixCluster) GetV1Beta2Conditions added in v1.9.0

func (ncl *NutanixCluster) GetV1Beta2Conditions() []metav1.Condition

GetV1Beta2Conditions returns the set of v1beta2 conditions for this object.

func (*NutanixCluster) Hub

func (*NutanixCluster) Hub()

Hub marks NutanixCluster as a conversion hub.

func (*NutanixCluster) SetConditions

func (ncl *NutanixCluster) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the conditions on this object.

func (*NutanixCluster) SetV1Beta2Conditions added in v1.9.0

func (ncl *NutanixCluster) SetV1Beta2Conditions(conditions []metav1.Condition)

SetV1Beta2Conditions sets the v1beta2 conditions on this object.

type NutanixClusterList

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

NutanixClusterList contains a list of NutanixCluster

func (*NutanixClusterList) DeepCopy

func (in *NutanixClusterList) DeepCopy() *NutanixClusterList

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

func (*NutanixClusterList) DeepCopyInto

func (in *NutanixClusterList) DeepCopyInto(out *NutanixClusterList)

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

func (*NutanixClusterList) DeepCopyObject

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

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

func (*NutanixClusterList) Hub

func (*NutanixClusterList) Hub()

Hub marks NutanixClusterList as a conversion hub.

type NutanixClusterSpec

type NutanixClusterSpec struct {

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// host can be either DNS name or ip address
	// +optional
	ControlPlaneEndpoint capiv1beta1.APIEndpoint `json:"controlPlaneEndpoint"`

	// prismCentral holds the endpoint address and port to access the Nutanix Prism Central.
	// When a cluster-wide proxy is installed, by default, this endpoint will be accessed via the proxy.
	// Should you wish for communication with this endpoint not to be proxied, please add the endpoint to the
	// proxy spec.noProxy list.
	// +optional
	PrismCentral *credentialTypes.NutanixPrismEndpoint `json:"prismCentral"`

	// failureDomains configures failure domains information for the Nutanix platform.
	// When set, the failure domains defined here may be used to spread Machines across
	// prism element clusters to improve fault tolerance of the cluster.
	// +listType=map
	// +listMapKey=name
	// +optional
	//
	// Deprecated: This field is replaced by the field controlPlaneFailureDomains and will be removed in the next apiVersion.
	//
	FailureDomains []NutanixFailureDomainConfig `json:"failureDomains,omitempty"`

	// controlPlaneFailureDomains configures references to the NutanixFailureDomain objects
	// that the cluster uses to deploy its control-plane machines.
	// +listType=map
	// +listMapKey=name
	// +optional
	ControlPlaneFailureDomains []corev1.LocalObjectReference `json:"controlPlaneFailureDomains,omitempty"`
}

NutanixClusterSpec defines the desired state of NutanixCluster +kubebuilder:validation:XValidation:rule="!(has(self.failureDomains) && has(self.controlPlaneFailureDomains))",message="Cannot set both 'failureDomains' and 'controlPlaneFailureDomains' fields simultaneously. Use 'controlPlaneFailureDomains' as 'failureDomains' is deprecated."

func (*NutanixClusterSpec) DeepCopy

func (in *NutanixClusterSpec) DeepCopy() *NutanixClusterSpec

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

func (*NutanixClusterSpec) DeepCopyInto

func (in *NutanixClusterSpec) DeepCopyInto(out *NutanixClusterSpec)

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

type NutanixClusterStatus

type NutanixClusterStatus struct {

	// +optional
	Ready bool `json:"ready,omitempty"`

	// failureDomains are a list of failure domains configured in the
	// cluster's spec and validated by the cluster controller.
	FailureDomains capiv1beta1.FailureDomains `json:"failureDomains,omitempty"`

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

	// Will be set in case of failure of Cluster instance
	// +optional
	FailureReason *string `json:"failureReason,omitempty"`

	// Will be set in case of failure of Cluster instance
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// v1beta2 groups all the fields that will be added or modified in NutanixCluster's status with the v1beta2 version.
	// +optional
	V1Beta2 *NutanixClusterV1Beta2Status `json:"v1beta2,omitempty"`
}

NutanixClusterStatus defines the observed state of NutanixCluster

func (*NutanixClusterStatus) DeepCopy

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

func (*NutanixClusterStatus) DeepCopyInto

func (in *NutanixClusterStatus) DeepCopyInto(out *NutanixClusterStatus)

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

type NutanixClusterTemplate added in v1.4.0

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

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

NutanixClusterTemplate is the Schema for the nutanixclustertemplates API

func (*NutanixClusterTemplate) DeepCopy added in v1.4.0

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

func (*NutanixClusterTemplate) DeepCopyInto added in v1.4.0

func (in *NutanixClusterTemplate) DeepCopyInto(out *NutanixClusterTemplate)

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

func (*NutanixClusterTemplate) DeepCopyObject added in v1.4.0

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

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

type NutanixClusterTemplateList added in v1.4.0

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

NutanixClusterTemplateList contains a list of NutanixClusterTemplate

func (*NutanixClusterTemplateList) DeepCopy added in v1.4.0

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

func (*NutanixClusterTemplateList) DeepCopyInto added in v1.4.0

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

func (*NutanixClusterTemplateList) DeepCopyObject added in v1.4.0

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

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

type NutanixClusterTemplateResource added in v1.4.0

type NutanixClusterTemplateResource struct {
	Spec NutanixClusterSpec `json:"spec"`
}

NutanixClusterTemplateResource describes the data needed to create a NutanixCluster from a template.

func (*NutanixClusterTemplateResource) DeepCopy added in v1.4.0

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

func (*NutanixClusterTemplateResource) DeepCopyInto added in v1.4.0

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

type NutanixClusterTemplateSpec added in v1.4.0

type NutanixClusterTemplateSpec struct {
	Template NutanixClusterTemplateResource `json:"template"`
}

NutanixClusterTemplateSpec defines the desired state of NutanixClusterTemplate

func (*NutanixClusterTemplateSpec) DeepCopy added in v1.4.0

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

func (*NutanixClusterTemplateSpec) DeepCopyInto added in v1.4.0

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

type NutanixClusterV1Beta2Status added in v1.9.0

type NutanixClusterV1Beta2Status struct {
	// conditions represents the observations of a NutanixCluster's current state.
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=32
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

NutanixClusterV1Beta2Status groups all the fields that will be added or modified in NutanixClusterStatus with the v1beta2 version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.

func (*NutanixClusterV1Beta2Status) DeepCopy added in v1.9.0

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

func (*NutanixClusterV1Beta2Status) DeepCopyInto added in v1.9.0

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

type NutanixFailureDomain added in v1.3.0

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

	Spec   NutanixFailureDomainSpec   `json:"spec,omitempty"`
	Status NutanixFailureDomainStatus `json:"status,omitempty"`
}

NutanixFailureDomain is the Schema for the NutanixFailureDomain API.

func (*NutanixFailureDomain) DeepCopy added in v1.3.0

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

func (*NutanixFailureDomain) DeepCopyInto added in v1.3.0

func (in *NutanixFailureDomain) DeepCopyInto(out *NutanixFailureDomain)

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

func (*NutanixFailureDomain) DeepCopyObject added in v1.7.0

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

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

func (*NutanixFailureDomain) GetConditions added in v1.7.0

func (nfd *NutanixFailureDomain) GetConditions() capiv1beta1.Conditions

GetConditions returns the set of conditions for this object.

func (*NutanixFailureDomain) GetV1Beta2Conditions added in v1.9.0

func (ncl *NutanixFailureDomain) GetV1Beta2Conditions() []metav1.Condition

GetV1Beta2Conditions returns the set of conditions for this object.

func (*NutanixFailureDomain) SetConditions added in v1.7.0

func (nfd *NutanixFailureDomain) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the conditions on this object.

func (*NutanixFailureDomain) SetV1Beta2Conditions added in v1.9.0

func (ncl *NutanixFailureDomain) SetV1Beta2Conditions(conditions []metav1.Condition)

SetV1Beta2Conditions sets the v1beta2 conditions on this object.

type NutanixFailureDomainConfig deprecated added in v1.7.0

type NutanixFailureDomainConfig struct {
	// name defines the unique name of a failure domain.
	// Name is required and must be at most 64 characters in length.
	// It must consist of only lower case alphanumeric characters and hyphens (-).
	// It must start and end with an alphanumeric character.
	// This value is arbitrary and is used to identify the failure domain within the platform.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=64
	// +kubebuilder:validation:Pattern=`[a-z0-9]([-a-z0-9]*[a-z0-9])?`
	Name string `json:"name"`

	// cluster is to identify the cluster (the Prism Element under management of the Prism Central),
	// in which the Machine's VM will be created. The cluster identifier (uuid or name) can be obtained
	// from the Prism Central console or using the prism_central API.
	// +kubebuilder:validation:Required
	Cluster NutanixResourceIdentifier `json:"cluster"`

	// subnets holds a list of identifiers (one or more) of the cluster's network subnets
	// for the Machine's VM to connect to. The subnet identifiers (uuid or name) can be
	// obtained from the Prism Central console or using the prism_central API.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Subnets []NutanixResourceIdentifier `json:"subnets"`

	// indicates if a failure domain is suited for control plane nodes
	// +kubebuilder:validation:Required
	ControlPlane bool `json:"controlPlane,omitempty"`
}

NutanixFailureDomainConfig configures failure domain information for Nutanix.

Deprecated: This type is replaced by the NutanixFailureDomain CRD type and will be removed in the next apiVersion.

func (*NutanixFailureDomainConfig) DeepCopy added in v1.7.0

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

func (*NutanixFailureDomainConfig) DeepCopyInto added in v1.7.0

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

type NutanixFailureDomainList added in v1.7.0

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

NutanixFailureDomainList contains a list of NutanixFailureDomain

func (*NutanixFailureDomainList) DeepCopy added in v1.7.0

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

func (*NutanixFailureDomainList) DeepCopyInto added in v1.7.0

func (in *NutanixFailureDomainList) DeepCopyInto(out *NutanixFailureDomainList)

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

func (*NutanixFailureDomainList) DeepCopyObject added in v1.7.0

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

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

type NutanixFailureDomainSpec added in v1.7.0

type NutanixFailureDomainSpec struct {
	// prismElementCluster is to identify the Prism Element cluster in the Prism Central for the failure domain.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="prismElementCluster is immutable once set"
	// +kubebuilder:validation:Required
	PrismElementCluster NutanixResourceIdentifier `json:"prismElementCluster"`

	// subnets holds a list of identifiers (one or more) of the PE cluster's network subnets
	// for the Machine's VM to connect to.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="subnets is immutable once set"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=32
	Subnets []NutanixResourceIdentifier `json:"subnets"`
}

NutanixFailureDomainSpec defines the desired state of NutanixFailureDomain. +kubebuilder:validation:XValidation:rule="size(self.subnets) > 1 ? self.subnets.all(x, self.subnets.exists_one(y, x == y)) : true",message="each subnet must be unique"

func (*NutanixFailureDomainSpec) DeepCopy added in v1.7.0

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

func (*NutanixFailureDomainSpec) DeepCopyInto added in v1.7.0

func (in *NutanixFailureDomainSpec) DeepCopyInto(out *NutanixFailureDomainSpec)

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

type NutanixFailureDomainStatus added in v1.7.0

type NutanixFailureDomainStatus struct {
	// conditions represent the latest states of the failure domain.
	// +optional
	Conditions []capiv1beta1.Condition `json:"conditions,omitempty"`

	// v1beta2 groups all the fields that will be added or modified in NutanixCluster's status with the v1beta2 version.
	// +optional
	V1Beta2 *NutanixFailureDomainV1Beta2Status `json:"v1beta2,omitempty"`
}

NutanixFailureDomainStatus defines the observed state of NutanixFailureDomain resource.

func (*NutanixFailureDomainStatus) DeepCopy added in v1.7.0

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

func (*NutanixFailureDomainStatus) DeepCopyInto added in v1.7.0

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

type NutanixFailureDomainV1Beta2Status added in v1.9.0

type NutanixFailureDomainV1Beta2Status struct {
	// conditions represents the observations of a NutanixFailureDomain's current state.
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=32
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

NutanixFailureDomainV1Beta2Status groups all the fields that will be added or modified in NutanixFailureDomainStatus with the v1beta2 version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.

func (*NutanixFailureDomainV1Beta2Status) DeepCopy added in v1.9.0

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

func (*NutanixFailureDomainV1Beta2Status) DeepCopyInto added in v1.9.0

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

type NutanixGPU added in v1.2.0

type NutanixGPU struct {
	// Type is the identifier type to use for this resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum:=deviceID;name
	Type NutanixGPUIdentifierType `json:"type"`

	// deviceID is the id of the GPU entity.
	// +optional
	DeviceID *int64 `json:"deviceID,omitempty"`

	// name is the GPU name
	// +optional
	Name *string `json:"name,omitempty"`
}

func (*NutanixGPU) DeepCopy added in v1.2.0

func (in *NutanixGPU) DeepCopy() *NutanixGPU

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

func (*NutanixGPU) DeepCopyInto added in v1.2.0

func (in *NutanixGPU) DeepCopyInto(out *NutanixGPU)

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

type NutanixGPUIdentifierType added in v1.2.0

type NutanixGPUIdentifierType string

NutanixGPUIdentifierType is an enumeration of different resource identifier types for GPU entities.

type NutanixIdentifierType

type NutanixIdentifierType string

NutanixIdentifierType is an enumeration of different resource identifier types.

type NutanixImageLookup added in v1.6.0

type NutanixImageLookup struct {
	// Format is the naming format to look up the image for this
	// machine It will be ignored if an explicit image is set. Supports
	// substitutions for {{.BaseOS}} and {{.K8sVersion}} with the base OS and
	// kubernetes version, respectively. The BaseOS will be the value in
	// BaseOS and the K8sVersion is the value in the Machine .spec.version, with the v prefix removed.
	// This is effectively the defined by the packages produced by kubernetes/release without v as a
	// prefix: 1.13.0, 1.12.5-mybuild.1, or 1.17.3. For example, the default
	// image format of {{.BaseOS}}-?{{.K8sVersion}}-* and BaseOS as "rhel-8.10" will end up
	// searching for images that match the pattern rhel-8.10-1.30.5-* for a
	// Machine that is targeting kubernetes v1.30.5. See
	// also: https://golang.org/pkg/text/template/
	// +kubebuilder:default:="capx-{{.BaseOS}}-{{.K8sVersion}}-*"
	Format *string `json:"format,omitempty"`
	// BaseOS is the name of the base operating system to use for
	// image lookup.
	// +kubebuilder:validation:MinLength:=1
	BaseOS string `json:"baseOS"`
}

NutanixImageLookup defines how to fetch images for the cluster using the fields combined.

func (*NutanixImageLookup) DeepCopy added in v1.6.0

func (in *NutanixImageLookup) DeepCopy() *NutanixImageLookup

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

func (*NutanixImageLookup) DeepCopyInto added in v1.6.0

func (in *NutanixImageLookup) DeepCopyInto(out *NutanixImageLookup)

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

type NutanixMachine

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

	Spec   NutanixMachineSpec   `json:"spec,omitempty"`
	Status NutanixMachineStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:path=nutanixmachines,shortName=nma,scope=Namespaced,categories=cluster-api +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Address",type="string",JSONPath=".status.addresses[0].address",description="The VM address" +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="NutanixMachine ready status" +kubebuilder:printcolumn:name="ProviderID",type="string",JSONPath=".spec.providerID",description="NutanixMachine instance ID" +kubebuilder:printcolumn:name="FailureDomain",type="string",JSONPath=".status.failureDomain",description="NutanixMachine FailureDomain" NutanixMachine is the Schema for the nutanixmachines API

func (*NutanixMachine) DeepCopy

func (in *NutanixMachine) DeepCopy() *NutanixMachine

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

func (*NutanixMachine) DeepCopyInto

func (in *NutanixMachine) DeepCopyInto(out *NutanixMachine)

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

func (*NutanixMachine) DeepCopyObject

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

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

func (*NutanixMachine) GetConditions

func (nm *NutanixMachine) GetConditions() capiv1beta1.Conditions

GetConditions returns the set of conditions for this object.

func (*NutanixMachine) GetV1Beta2Conditions added in v1.9.0

func (ncl *NutanixMachine) GetV1Beta2Conditions() []metav1.Condition

GetV1Beta2Conditions returns the set of conditions for this object.

func (*NutanixMachine) Hub

func (*NutanixMachine) Hub()

Hub marks NutanixMachine as a conversion hub.

func (*NutanixMachine) SetConditions

func (nm *NutanixMachine) SetConditions(conditions capiv1beta1.Conditions)

SetConditions sets the conditions on this object.

func (*NutanixMachine) SetV1Beta2Conditions added in v1.9.0

func (ncl *NutanixMachine) SetV1Beta2Conditions(conditions []metav1.Condition)

SetV1Beta2Conditions sets the v1beta2 conditions on this object.

type NutanixMachineDiskAdapterType added in v1.6.0

type NutanixMachineDiskAdapterType string

NutanixMachineDiskAdapterType is an enumeration of different disk device adapter types. +kubebuilder:validation:Enum:=SCSI;IDE;PCI;SATA;SPAPR

type NutanixMachineDiskDeviceType added in v1.6.0

type NutanixMachineDiskDeviceType string

NutanixMachineDiskDeviceType is the VM disk device type. +kubebuilder:validation:Enum=Disk;CDRom

type NutanixMachineDiskMode added in v1.6.0

type NutanixMachineDiskMode string

NutanixMachineDiskMode is an enumeration of different disk modes. +kubebuilder:validation:Enum=Standard;Flash

type NutanixMachineList

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

NutanixMachineList contains a list of NutanixMachine

func (*NutanixMachineList) DeepCopy

func (in *NutanixMachineList) DeepCopy() *NutanixMachineList

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

func (*NutanixMachineList) DeepCopyInto

func (in *NutanixMachineList) DeepCopyInto(out *NutanixMachineList)

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

func (*NutanixMachineList) DeepCopyObject

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

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

func (*NutanixMachineList) Hub

func (*NutanixMachineList) Hub()

Hub marks NutanixMachineList as a conversion hub.

type NutanixMachineSpec

type NutanixMachineSpec struct {

	// ProviderID is the unique identifier as specified by the cloud provider.
	// +optional
	ProviderID string `json:"providerID,omitempty"`
	// vcpusPerSocket is the number of vCPUs per socket of the VM
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	VCPUsPerSocket int32 `json:"vcpusPerSocket"`
	// vcpuSockets is the number of vCPU sockets of the VM
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	VCPUSockets int32 `json:"vcpuSockets"`
	// memorySize is the memory size (in Quantity format) of the VM
	// The minimum memorySize is 2Gi bytes
	// +kubebuilder:validation:Required
	MemorySize resource.Quantity `json:"memorySize"`
	// image is to identify the nutanix machine image uploaded to the Prism Central (PC)
	// The image identifier (uuid or name) can be obtained from the Prism Central console
	// or using the prism_central API.
	// +kubebuilder:validation:Optional
	// +optional
	Image *NutanixResourceIdentifier `json:"image,omitempty"`
	// imageLookup is a container that holds how to look up rhcos images for the cluster.
	// +kubebuilder:validation:Optional
	// +optional
	ImageLookup *NutanixImageLookup `json:"imageLookup,omitempty"`
	// cluster is to identify the cluster (the Prism Element under management
	// of the Prism Central), in which the Machine's VM will be created.
	// The cluster identifier (uuid or name) can be obtained from the Prism Central console
	// or using the prism_central API.
	// +kubebuilder:validation:Optional
	Cluster NutanixResourceIdentifier `json:"cluster,omitzero"`
	// subnet is to identify the cluster's network subnet to use for the Machine's VM
	// The cluster identifier (uuid or name) can be obtained from the Prism Central console
	// or using the prism_central API.
	// +kubebuilder:validation:MaxItems=32
	// +kubebuilder:validation:Optional
	Subnets []NutanixResourceIdentifier `json:"subnet,omitempty"`
	// List of categories that need to be added to the machines. Categories must already exist in Prism Central
	// +kubebuilder:validation:Optional
	AdditionalCategories []NutanixCategoryIdentifier `json:"additionalCategories,omitempty"`
	// Add the machine resources to a Prism Central project
	// +optional
	Project *NutanixResourceIdentifier `json:"project,omitempty"`
	// Defines the boot type of the virtual machine. Only supports UEFI and Legacy
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum:=legacy;uefi
	BootType NutanixBootType `json:"bootType,omitempty"`
	// systemDiskSize is size (in Quantity format) of the system disk of the VM
	// The minimum systemDiskSize is 20Gi bytes
	// +kubebuilder:validation:Required
	SystemDiskSize resource.Quantity `json:"systemDiskSize"`

	// dataDisks hold the list of data disks to be attached to the VM
	// +kubebuilder:validation:Optional
	DataDisks []NutanixMachineVMDisk `json:"dataDisks,omitempty"`

	// BootstrapRef is a reference to a bootstrap provider-specific resource
	// that holds configuration details.
	// +optional
	BootstrapRef *corev1.ObjectReference `json:"bootstrapRef,omitempty"`
	// List of GPU devices that need to be added to the machines.
	// +kubebuilder:validation:Optional
	GPUs []NutanixGPU `json:"gpus,omitempty"`
}

NutanixMachineSpec defines the desired state of NutanixMachine +kubebuilder:validation:XValidation:rule="has(self.image) != has(self.imageLookup)",message="Either 'image' or 'imageLookup' must be set, but not both" +kubebuilder:validation:XValidation:rule="has(self.subnet) && size(self.subnet) > 1 ? self.subnet.all(x, self.subnet.exists_one(y, x == y)) : true",message="each subnet must be unique"

func (*NutanixMachineSpec) DeepCopy

func (in *NutanixMachineSpec) DeepCopy() *NutanixMachineSpec

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

func (*NutanixMachineSpec) DeepCopyInto

func (in *NutanixMachineSpec) DeepCopyInto(out *NutanixMachineSpec)

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

type NutanixMachineStatus

type NutanixMachineStatus struct {

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

	// Addresses contains the Nutanix VM associated addresses.
	// Address type is one of Hostname, ExternalIP, InternalIP, ExternalDNS, InternalDNS
	Addresses []capiv1beta1.MachineAddress `json:"addresses,omitempty"`

	// The Nutanix VM's UUID
	// +optional
	VmUUID string `json:"vmUUID,omitempty"`

	// NodeRef is a reference to the corresponding workload cluster Node if it exists.
	// Deprecated: Do not use. Will be removed in a future release.
	// +optional
	NodeRef *corev1.ObjectReference `json:"nodeRef,omitempty"`

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

	// Will be set in case of failure of Machine instance
	// +optional
	FailureReason *string `json:"failureReason,omitempty"`

	// Will be set in case of failure of Machine instance
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// failureDomain is the name of the failure domain where this Machine has been placed in.
	// +optional
	FailureDomain *string `json:"failureDomain,omitempty"`

	// v1beta2 groups all the fields that will be added or modified in NutanixMachine's status with the v1beta2 version.
	// +optional
	V1Beta2 *NutanixMachineV1Beta2Status `json:"v1beta2,omitempty"`
}

NutanixMachineStatus defines the observed state of NutanixMachine

func (*NutanixMachineStatus) DeepCopy

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

func (*NutanixMachineStatus) DeepCopyInto

func (in *NutanixMachineStatus) DeepCopyInto(out *NutanixMachineStatus)

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

type NutanixMachineTemplate

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

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

NutanixMachineTemplate is the Schema for the nutanixmachinetemplates API

func (*NutanixMachineTemplate) DeepCopy

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

func (*NutanixMachineTemplate) DeepCopyInto

func (in *NutanixMachineTemplate) DeepCopyInto(out *NutanixMachineTemplate)

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

func (*NutanixMachineTemplate) DeepCopyObject

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

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

func (*NutanixMachineTemplate) Hub

func (*NutanixMachineTemplate) Hub()

Hub marks NutanixMachineTemplate as a conversion hub.

type NutanixMachineTemplateDefaulter added in v1.9.1

type NutanixMachineTemplateDefaulter struct{}

NutanixMachineTemplateDefaulter implements a defaulting webhook for NutanixMachineTemplate.

This is a brownfield compatibility workaround: existing NutanixMachineTemplate objects in production may have spec.template.spec.image with type set to "name" or "uuid" but the corresponding value field (name or uuid) unset. The CEL validation rules on NutanixResourceIdentifier require these fields to be present. This webhook fills in placeholder values at admission time so the CEL rules pass, without weakening the API contract globally.

The defaulter is idempotent and will not overwrite valid user-provided values.

Each defaulting behavior is individually controlled via a Kubernetes feature gate:

  • feature.DefaultToPlaceholderImageName controls defaulting for type "name"
  • feature.DefaultToPlaceholderImageUUID controls defaulting for type "uuid"

Enable via: --feature-gates=DefaultToPlaceholderImageName=true,DefaultToPlaceholderImageUUID=true

+kubebuilder:object:generate=false

func (*NutanixMachineTemplateDefaulter) Default added in v1.9.1

Default implements webhook.CustomDefaulter. It normalizes spec.template.spec.image for brownfield NutanixMachineTemplate objects that have the image type set but the corresponding identifier value missing. Each defaulting behavior is controlled by its respective feature gate.

func (*NutanixMachineTemplateDefaulter) SetupWebhookWithManager added in v1.9.1

func (d *NutanixMachineTemplateDefaulter) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager registers the defaulting webhook for NutanixMachineTemplate.

+kubebuilder:webhook:path=/mutate-infrastructure-cluster-x-k8s-io-v1beta1-nutanixmachinetemplate,mutating=true,failurePolicy=fail,sideEffects=None,groups=infrastructure.cluster.x-k8s.io,resources=nutanixmachinetemplates,verbs=create;update,versions=v1beta1,name=default.nutanixmachinetemplate.infrastructure.cluster.x-k8s.io,admissionReviewVersions=v1

type NutanixMachineTemplateList

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

NutanixMachineTemplateList contains a list of NutanixMachineTemplate

func (*NutanixMachineTemplateList) DeepCopy

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

func (*NutanixMachineTemplateList) DeepCopyInto

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

func (*NutanixMachineTemplateList) DeepCopyObject

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

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

func (*NutanixMachineTemplateList) Hub

Hub marks NutanixMachineTemplateList as a conversion hub.

type NutanixMachineTemplateResource

type NutanixMachineTemplateResource struct {
	// Standard object metadata.
	// Ref: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta capiv1beta1.ObjectMeta `json:"metadata,omitempty"`
	// Spec is the specification of the desired behavior of the machine.
	Spec NutanixMachineSpec `json:"spec"`
}

NutanixMachineTemplateResource describes the data needed to create a NutanixMachine from a template

func (*NutanixMachineTemplateResource) DeepCopy

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

func (*NutanixMachineTemplateResource) DeepCopyInto

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

type NutanixMachineTemplateSpec

type NutanixMachineTemplateSpec struct {
	Template NutanixMachineTemplateResource `json:"template"`
}

NutanixMachineTemplateSpec defines the desired state of NutanixMachineTemplate

func (*NutanixMachineTemplateSpec) DeepCopy

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

func (*NutanixMachineTemplateSpec) DeepCopyInto

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

type NutanixMachineV1Beta2Status added in v1.9.0

type NutanixMachineV1Beta2Status struct {
	// conditions represents the observations of a NutanixMachine's current state.
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=32
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

NutanixMachineV1Beta2Status groups all the fields that will be added or modified in NutanixMachineStatus with the v1beta2 version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.

func (*NutanixMachineV1Beta2Status) DeepCopy added in v1.9.0

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

func (*NutanixMachineV1Beta2Status) DeepCopyInto added in v1.9.0

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

type NutanixMachineVMDisk added in v1.6.0

type NutanixMachineVMDisk struct {
	// diskSize is the size (in Quantity format) of the disk attached to the VM.
	// See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Format for the Quantity format and example documentation.
	// The minimum diskSize is 1GB.
	// +kubebuilder:validation:Required
	DiskSize resource.Quantity `json:"diskSize"`

	// deviceProperties are the properties of the disk device.
	// +optional
	// +kubebuilder:validation:Optional
	DeviceProperties *NutanixMachineVMDiskDeviceProperties `json:"deviceProperties,omitempty"`

	// storageConfig are the storage configuration parameters of the VM disks.
	// +optional
	// +kubebuilder:validation:Optional
	StorageConfig *NutanixMachineVMStorageConfig `json:"storageConfig,omitempty"`

	// dataSource refers to a data source image for the VM disk.
	// +optional
	// +kubebuilder:validation:Optional
	DataSource *NutanixResourceIdentifier `json:"dataSource,omitempty"`
}

NutanixMachineVMDisk defines the disk configuration for a NutanixMachine

func (*NutanixMachineVMDisk) DeepCopy added in v1.6.0

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

func (*NutanixMachineVMDisk) DeepCopyInto added in v1.6.0

func (in *NutanixMachineVMDisk) DeepCopyInto(out *NutanixMachineVMDisk)

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

type NutanixMachineVMDiskDeviceProperties added in v1.6.0

type NutanixMachineVMDiskDeviceProperties struct {
	// deviceType specifies the disk device type.
	// The valid values are "Disk" and "CDRom", and the default is "Disk".
	// +kubebuilder:default=Disk
	// +kubebuilder:validation:Required
	DeviceType NutanixMachineDiskDeviceType `json:"deviceType"`

	// adapterType is the adapter type of the disk address.
	// If the deviceType is "Disk", the valid adapterType can be "SCSI", "IDE", "PCI", "SATA" or "SPAPR".
	// If the deviceType is "CDRom", the valid adapterType can be "IDE" or "SATA".
	// +kubebuilder:validation:Required
	AdapterType NutanixMachineDiskAdapterType `json:"adapterType,omitempty"`

	// deviceIndex is the index of the disk address. The valid values are non-negative integers, with the default value 0.
	// For a Machine VM, the deviceIndex for the disks with the same deviceType.adapterType combination should
	// start from 0 and increase consecutively afterwards. Note that for each Machine VM, the Disk.SCSI.0
	// and CDRom.IDE.0 are reserved to be used by the VM's system. So for dataDisks of Disk.SCSI and CDRom.IDE,
	// the deviceIndex should start from 1.
	// +kubebuilder:default=0
	// +kubebuilder:validation:Minimum=0
	// +optional
	// +kubebuilder:validation:Optional
	DeviceIndex int32 `json:"deviceIndex,omitempty"`
}

NutanixMachineVMDiskDeviceProperties defines the device properties for a NutanixMachineVMDisk

func (*NutanixMachineVMDiskDeviceProperties) DeepCopy added in v1.6.0

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

func (*NutanixMachineVMDiskDeviceProperties) DeepCopyInto added in v1.6.0

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

type NutanixMachineVMStorageConfig added in v1.6.0

type NutanixMachineVMStorageConfig struct {
	// diskMode specifies the disk mode.
	// The valid values are Standard and Flash, and the default is Standard.
	// +kubebuilder:default=Standard
	// +kubebuilder:validation:Required
	DiskMode NutanixMachineDiskMode `json:"diskMode"`

	// storageContainer refers to the storage_container used by the VM disk.
	// +optional
	// +kubebuilder:validation:Optional
	StorageContainer *NutanixResourceIdentifier `json:"storageContainer"`
}

NutanixMachineVMStorageConfig defines the storage configuration for a NutanixMachineVMDisk

func (*NutanixMachineVMStorageConfig) DeepCopy added in v1.6.0

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

func (*NutanixMachineVMStorageConfig) DeepCopyInto added in v1.6.0

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

type NutanixResourceIdentifier

type NutanixResourceIdentifier struct {
	// Type is the identifier type to use for this resource.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum:=uuid;name
	Type NutanixIdentifierType `json:"type"`

	// uuid is the UUID of the resource in the PC.
	// +optional
	// +kubebuilder:validation:Format=uuid
	// +kubebuilder:validation:MaxLength=36
	// +kubebuilder:validation:MinLength=36
	UUID *string `json:"uuid,omitempty"`

	// name is the resource name in the PC
	// +optional
	// +kubebuilder:validation:MinLength=1
	Name *string `json:"name,omitempty"`
}

NutanixResourceIdentifier holds the identity of a Nutanix PC resource (cluster, image, subnet, etc.) +union +kubebuilder:validation:XValidation:rule="self.type == 'name' ? has(self.name) : !has(self.name)",message="'name' must be set when type is 'name', and forbidden otherwise" +kubebuilder:validation:XValidation:rule="self.type == 'uuid' ? has(self.uuid) && self.uuid.contains('-') : !has(self.uuid)",message="'uuid' must be set when type is 'uuid', and forbidden otherwise"

func (*NutanixResourceIdentifier) DeepCopy

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

func (*NutanixResourceIdentifier) DeepCopyInto

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

func (NutanixResourceIdentifier) DisplayString added in v1.7.0

func (nri NutanixResourceIdentifier) DisplayString() string

DisplayString returns a human-readable string representation of the NutanixResourceIdentifier that includes both the type and value, suitable for error messages and logging.

func (NutanixResourceIdentifier) EqualTo added in v1.7.0

EqualTo checks if two NutanixResourceIdentifiers are equal based on their type and value.

func (NutanixResourceIdentifier) IsName added in v1.5.4

func (nri NutanixResourceIdentifier) IsName() bool

func (NutanixResourceIdentifier) IsUUID added in v1.5.4

func (nri NutanixResourceIdentifier) IsUUID() bool

func (NutanixResourceIdentifier) String added in v1.5.4

func (nri NutanixResourceIdentifier) String() string

Jump to

Keyboard shortcuts

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