v1alpha1

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the osac v1alpha1 API group +kubebuilder:object:generate=true +groupName=osac.openshift.io

Index

Constants

View Source
const (
	ConditionAccepted              = "Accepted"
	ConditionNamespaceCreated      = "NamespaceCreated"
	ConditionControlPlaneCreated   = "ControlPlaneCreated"
	ConditionControlPlaneAvailable = "ControlPlaneAvailable"
	ConditionClusterAvailable      = "ClusterAvailable"
	ConditionProgressing           = "Progressing"
	ConditionDeleting              = "Deleting"
	ConditionCompleted             = "Completed"
	ConditionAvailable             = "Available"
)

Common condition constants

View Source
const (
	ReasonInitialized      = "Initialized"
	ReasonAsExpected       = "AsExpected"
	ReasonCreated          = "Created"
	ReasonProgressing      = "Progressing"
	ReasonFailed           = "Failed"
	ReasonDeleting         = "Deleting"
	ReasonWebhookTriggered = "WebhookTriggered"
	ReasonWebhookFailed    = "WebhookFailed"
)

Common reason constants

View Source
const (
	// SubnetProvisioningSucceeded indicates successful provisioning
	SubnetProvisioningSucceeded = "ProvisioningSucceeded"

	// SubnetProvisioningFailed indicates provisioning failed
	SubnetProvisioningFailed = "ProvisioningFailed"

	// SubnetDeletionSucceeded indicates successful deletion
	SubnetDeletionSucceeded = "DeletionSucceeded"

	// SubnetDeletionFailed indicates deletion failed
	SubnetDeletionFailed = "DeletionFailed"

	// SubnetNetworkProviderError indicates an error from the network provider
	SubnetNetworkProviderError = "NetworkProviderError"
)

Reason constants for common Subnet scenarios

View Source
const (
	TenantReasonFound                 = "Found"
	TenantReasonNotFound              = "NotFound"
	TenantReasonSharedDefault         = "SharedDefault"
	TenantReasonMultipleFound         = "MultipleFound"
	TenantReasonMultipleDefaultsFound = "MultipleDefaultsFound"
)

Reason constants for Tenant conditions

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "osac.openshift.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func GetPublicIPPoolStatusCondition

func GetPublicIPPoolStatusCondition(pool *PublicIPPool, conditionType PublicIPPoolConditionType) *metav1.Condition

GetPublicIPPoolStatusCondition returns the condition with the specified type from the PublicIPPool status

func GetPublicIPStatusCondition

func GetPublicIPStatusCondition(ip *PublicIP, conditionType PublicIPConditionType) *metav1.Condition

GetPublicIPStatusCondition returns the condition with the specified type from the PublicIP status

func GetStatusCondition

func GetStatusCondition(subnet *Subnet, conditionType SubnetConditionType) *metav1.Condition

GetStatusCondition returns the condition with the specified type from the Subnet status

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

func SetPublicIPPoolStatusCondition

func SetPublicIPPoolStatusCondition(pool *PublicIPPool, condition metav1.Condition)

SetPublicIPPoolStatusCondition sets the condition with the specified type in the PublicIPPool status

func SetPublicIPStatusCondition

func SetPublicIPStatusCondition(ip *PublicIP, condition metav1.Condition)

SetPublicIPStatusCondition sets the condition with the specified type in the PublicIP status

func SetStatusCondition

func SetStatusCondition(subnet *Subnet, condition metav1.Condition)

SetStatusCondition sets the condition with the specified type in the Subnet status

Types

type ClusterNetworkSpec

type ClusterNetworkSpec struct {
	// PodCIDR is the CIDR for the cluster's pod network.
	// Defaults to 10.128.0.0/14 if not specified.
	// +kubebuilder:validation:Optional
	// Coarse format check only — full CIDR validation (e.g. net.ParseCIDR) is done server-side.
	// +kubebuilder:validation:Pattern=`^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$`
	PodCIDR string `json:"podCIDR,omitempty"`
	// ServiceCIDR is the CIDR for the cluster's service network.
	// Defaults to 172.30.0.0/16 if not specified.
	// +kubebuilder:validation:Optional
	// Coarse format check only — full CIDR validation (e.g. net.ParseCIDR) is done server-side.
	// +kubebuilder:validation:Pattern=`^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$`
	ServiceCIDR string `json:"serviceCIDR,omitempty"`
}

ClusterNetworkSpec defines networking configuration for a cluster.

func (*ClusterNetworkSpec) DeepCopy

func (in *ClusterNetworkSpec) DeepCopy() *ClusterNetworkSpec

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

func (*ClusterNetworkSpec) DeepCopyInto

func (in *ClusterNetworkSpec) DeepCopyInto(out *ClusterNetworkSpec)

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

type ClusterOrder

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

	Spec   ClusterOrderSpec   `json:"spec,omitempty"`
	Status ClusterOrderStatus `json:"status,omitempty"`
}

ClusterOrder is the Schema for the clusterorders API

func (*ClusterOrder) DeepCopy

func (in *ClusterOrder) DeepCopy() *ClusterOrder

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

func (*ClusterOrder) DeepCopyInto

func (in *ClusterOrder) DeepCopyInto(out *ClusterOrder)

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

func (*ClusterOrder) DeepCopyObject

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

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

func (*ClusterOrder) EnsureClusterReference

func (co *ClusterOrder) EnsureClusterReference()

func (*ClusterOrder) GetClusterReferenceHostedClusterName

func (co *ClusterOrder) GetClusterReferenceHostedClusterName() string

func (*ClusterOrder) GetClusterReferenceNamespace

func (co *ClusterOrder) GetClusterReferenceNamespace() string

func (*ClusterOrder) GetClusterReferenceRoleBindingName

func (co *ClusterOrder) GetClusterReferenceRoleBindingName() string

func (*ClusterOrder) GetClusterReferenceServiceAccountName

func (co *ClusterOrder) GetClusterReferenceServiceAccountName() string

func (*ClusterOrder) GetName

func (co *ClusterOrder) GetName() string

GetName returns the name of the ClusterOrder resource

func (ClusterOrder) IsStatusConditionFalse

func (co ClusterOrder) IsStatusConditionFalse(conditionType string) bool

func (ClusterOrder) IsStatusConditionPresentAndEqual

func (co ClusterOrder) IsStatusConditionPresentAndEqual(conditionType string, status metav1.ConditionStatus) bool

func (ClusterOrder) IsStatusConditionTrue

func (co ClusterOrder) IsStatusConditionTrue(conditionType string) bool

func (*ClusterOrder) RemoveStatusCondition

func (co *ClusterOrder) RemoveStatusCondition(conditionType string) bool

func (*ClusterOrder) SetClusterReferenceHostedClusterName

func (co *ClusterOrder) SetClusterReferenceHostedClusterName(name string)

func (*ClusterOrder) SetClusterReferenceNamespace

func (co *ClusterOrder) SetClusterReferenceNamespace(name string)

func (*ClusterOrder) SetClusterReferenceRoleBindingName

func (co *ClusterOrder) SetClusterReferenceRoleBindingName(name string)

func (*ClusterOrder) SetClusterReferenceServiceAccountName

func (co *ClusterOrder) SetClusterReferenceServiceAccountName(name string)

func (*ClusterOrder) SetStatusCondition

func (co *ClusterOrder) SetStatusCondition(conditionType string, status metav1.ConditionStatus, message string, reason string) bool

type ClusterOrderClusterReferenceType

type ClusterOrderClusterReferenceType struct {
	// Namespace that contains the HostedCluster resource
	Namespace          string `json:"namespace"`
	HostedClusterName  string `json:"hostedClusterName"`
	ServiceAccountName string `json:"serviceAccountName"`
	RoleBindingName    string `json:"roleBindingName"`
}

ClusterOrderClusterReferenceType contains a reference to the namespace created by this ClusterOrder

func (*ClusterOrderClusterReferenceType) DeepCopy

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

func (*ClusterOrderClusterReferenceType) DeepCopyInto

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

type ClusterOrderConditionType

type ClusterOrderConditionType string

ClusterOrderConditionType is a valid value for .status.conditions.type

const (
	// ClusterOrderConditionAccepted means the order has been accepted but work has not yet started
	ClusterOrderConditionAccepted ClusterOrderConditionType = "Accepted"

	// ClusterOrderConditionProgressing means that an update is in progress
	ClusterOrderConditionProgressing ClusterOrderConditionType = "Progressing"

	// ClusterOrderConditionControlPlaneAvailable means the cluster control plane is ready
	ClusterOrderConditionControlPlaneAvailable ClusterOrderConditionType = "ControlPlaneAvailable"

	// ClusterOrderConditionAvailable means the cluster is available
	ClusterOrderConditionAvailable ClusterOrderConditionType = "Available"
)

type ClusterOrderList

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

ClusterOrderList contains a list of ClusterOrder

func (*ClusterOrderList) DeepCopy

func (in *ClusterOrderList) DeepCopy() *ClusterOrderList

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

func (*ClusterOrderList) DeepCopyInto

func (in *ClusterOrderList) DeepCopyInto(out *ClusterOrderList)

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

func (*ClusterOrderList) DeepCopyObject

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

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

type ClusterOrderPhaseType

type ClusterOrderPhaseType string

ClusterOrderPhaseType is a valid value for .status.phase

const (
	// ClusterOrderPhaseProgressing means an update is in progress
	ClusterOrderPhaseProgressing ClusterOrderPhaseType = "Progressing"

	// ClusterOrderPhaseFailed means the cluster deployment or update has failed
	ClusterOrderPhaseFailed ClusterOrderPhaseType = "Failed"

	// ClusterOrderPhaseReady means the cluster and all associated resources are ready
	ClusterOrderPhaseReady ClusterOrderPhaseType = "Ready"

	// ClusterOrderPhaseDeleting means there has been a request to delete the ClusterOrder
	ClusterOrderPhaseDeleting ClusterOrderPhaseType = "Deleting"
)

type ClusterOrderSpec

type ClusterOrderSpec struct {
	// TemplateID is the unique identigier of the cluster template to use when creating this cluster
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern=^[a-zA-Z_][a-zA-Z0-9._]*$
	TemplateID string `json:"templateID,omitempty"`
	// TemplateParameters is a JSON-encoded map of the parameter values for the
	// selected cluster template.
	// +kubebuilder:validation:Optional
	TemplateParameters string `json:"templateParameters,omitempty"`
	// NodeRequests defines the types of nodes and number of each type of node that will be used
	// to build the cluster. This value is optional and if not provided will be filled in with template-provided
	// defaults. The selected template may limit what node types you can request.
	// +kubebuilder:validation:Optional
	NodeRequests []NodeRequest `json:"nodeRequests,omitempty"`

	// PullSecret contains credentials for authenticating to container image repositories.
	// If not provided, the provider's default pull secret is used.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MaxLength=262144
	PullSecret string `json:"pullSecret,omitempty"`
	// SSHPublicKey is an SSH public key installed on cluster worker nodes.
	// If not provided, the provider's default SSH key is used.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MaxLength=16384
	SSHPublicKey string `json:"sshPublicKey,omitempty"`
	// ReleaseImage is the OCP release image URL that controls the OpenShift version.
	// If not provided, the template's default release image is used.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MaxLength=512
	// +kubebuilder:validation:Pattern=`^.+/.+:.+$`
	ReleaseImage string `json:"releaseImage,omitempty"`
	// Network contains cluster networking configuration.
	// +kubebuilder:validation:Optional
	Network *ClusterNetworkSpec `json:"network,omitempty"`
}

ClusterOrderSpec defines the desired state of ClusterOrder

func (*ClusterOrderSpec) DeepCopy

func (in *ClusterOrderSpec) DeepCopy() *ClusterOrderSpec

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

func (*ClusterOrderSpec) DeepCopyInto

func (in *ClusterOrderSpec) DeepCopyInto(out *ClusterOrderSpec)

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

type ClusterOrderStatus

type ClusterOrderStatus struct {
	// Phase provides a single-value overview of the state of the ClusterOrder
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase ClusterOrderPhaseType `json:"phase,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the ClusterOrder
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// Reference to the namespace that contains the HostedCluster resource
	// +kubebuilder:validation:Optional
	ClusterReference *ClusterOrderClusterReferenceType `json:"clusterReference,omitempty"`

	// NodeRequests reflects how many nodes are currently associated with the ClusterOrder
	NodeRequests []NodeRequest `json:"nodeRequests,omitempty"`

	// Jobs tracks the history of provision and deprovision operations
	// Ordered chronologically, with latest operations at the end
	// Limited to the last N jobs (configurable via OSAC_MAX_JOB_HISTORY, default 10)
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// DesiredConfigVersion is a hash of the current spec, used to detect spec changes
	// that require re-provisioning.
	// +kubebuilder:validation:Optional
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`
}

ClusterOrderStatus defines the observed state of ClusterOrder

func (*ClusterOrderStatus) DeepCopy

func (in *ClusterOrderStatus) DeepCopy() *ClusterOrderStatus

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

func (*ClusterOrderStatus) DeepCopyInto

func (in *ClusterOrderStatus) DeepCopyInto(out *ClusterOrderStatus)

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

type ComputeInstance

type ComputeInstance struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of ComputeInstance
	// +required
	Spec ComputeInstanceSpec `json:"spec"`

	// status defines the observed state of ComputeInstance
	// +optional
	Status ComputeInstanceStatus `json:"status,omitempty,omitzero"`
}

ComputeInstance is the Schema for the computeinstances API

func (*ComputeInstance) DeepCopy

func (in *ComputeInstance) DeepCopy() *ComputeInstance

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

func (*ComputeInstance) DeepCopyInto

func (in *ComputeInstance) DeepCopyInto(out *ComputeInstance)

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

func (*ComputeInstance) DeepCopyObject

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

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

func (*ComputeInstance) EnsureTenantReference

func (ci *ComputeInstance) EnsureTenantReference()

func (*ComputeInstance) EnsureVirtualMachineReference

func (ci *ComputeInstance) EnsureVirtualMachineReference()

func (*ComputeInstance) GetIPAddress

func (ci *ComputeInstance) GetIPAddress() string

func (*ComputeInstance) GetName

func (ci *ComputeInstance) GetName() string

GetName returns the name of the ComputeInstance resource

func (*ComputeInstance) GetStatusCondition

func (ci *ComputeInstance) GetStatusCondition(conditionType ComputeInstanceConditionType) *metav1.Condition

GetStatusCondition returns the condition with the given type

func (*ComputeInstance) GetTenantReferenceName

func (ci *ComputeInstance) GetTenantReferenceName() string

func (*ComputeInstance) GetTenantReferenceNamespace

func (ci *ComputeInstance) GetTenantReferenceNamespace() string

func (*ComputeInstance) GetVirtualMachineReferenceKubeVirtVirtualMachineName

func (ci *ComputeInstance) GetVirtualMachineReferenceKubeVirtVirtualMachineName() string

func (*ComputeInstance) GetVirtualMachineReferenceNamespace

func (ci *ComputeInstance) GetVirtualMachineReferenceNamespace() string

func (*ComputeInstance) IsStatusConditionFalse

func (ci *ComputeInstance) IsStatusConditionFalse(conditionType ComputeInstanceConditionType) bool

IsStatusConditionFalse returns true if the condition with the given type is false

func (*ComputeInstance) IsStatusConditionTrue

func (ci *ComputeInstance) IsStatusConditionTrue(conditionType ComputeInstanceConditionType) bool

IsStatusConditionTrue returns true if the condition with the given type is true

func (*ComputeInstance) IsStatusConditionUnknown

func (ci *ComputeInstance) IsStatusConditionUnknown(conditionType ComputeInstanceConditionType) bool

IsStatusConditionUnknown returns true if the condition with the given type is unknown

func (*ComputeInstance) SetIPAddress

func (ci *ComputeInstance) SetIPAddress(ip string)

func (*ComputeInstance) SetStatusCondition

func (ci *ComputeInstance) SetStatusCondition(conditionType ComputeInstanceConditionType, status metav1.ConditionStatus, message string, reason string) bool

func (*ComputeInstance) SetTenantReferenceName

func (ci *ComputeInstance) SetTenantReferenceName(name string)

func (*ComputeInstance) SetTenantReferenceNamespace

func (ci *ComputeInstance) SetTenantReferenceNamespace(name string)

func (*ComputeInstance) SetVirtualMachineReferenceKubeVirtVirtualMachineName

func (ci *ComputeInstance) SetVirtualMachineReferenceKubeVirtVirtualMachineName(name string)

func (*ComputeInstance) SetVirtualMachineReferenceNamespace

func (ci *ComputeInstance) SetVirtualMachineReferenceNamespace(name string)

type ComputeInstanceConditionType

type ComputeInstanceConditionType string

ComputeInstanceConditionType is a valid value for .status.conditions.type

const (
	// ComputeInstanceConditionConfigurationApplied means the current spec configuration has been applied.
	// True when desiredConfigVersion == reconciledConfigVersion, False while configuration is being applied.
	ComputeInstanceConditionConfigurationApplied ComputeInstanceConditionType = "ConfigurationApplied"

	// ComputeInstanceConditionAvailable means the compute instance is available
	ComputeInstanceConditionAvailable ComputeInstanceConditionType = "Available"

	// ComputeInstanceConditionRestartInProgress indicates a restart is in progress
	ComputeInstanceConditionRestartInProgress ComputeInstanceConditionType = "RestartInProgress"

	// ComputeInstanceConditionRestartFailed indicates a restart request has failed
	ComputeInstanceConditionRestartFailed ComputeInstanceConditionType = "RestartFailed"

	// ComputeInstanceConditionProvisioned means the infrastructure resources (compute, storage) have been allocated.
	// True when the KubeVirt VirtualMachine exists and storage provisioning is complete.
	ComputeInstanceConditionProvisioned ComputeInstanceConditionType = "Provisioned"

	// ComputeInstanceConditionRestartRequired means the compute instance requires a restart for
	// configuration changes to take effect. Synced from KubeVirt VM.Status.Conditions[RestartRequired].
	ComputeInstanceConditionRestartRequired ComputeInstanceConditionType = "RestartRequired"
)

type ComputeInstanceList

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

ComputeInstanceList contains a list of ComputeInstance

func (*ComputeInstanceList) DeepCopy

func (in *ComputeInstanceList) DeepCopy() *ComputeInstanceList

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

func (*ComputeInstanceList) DeepCopyInto

func (in *ComputeInstanceList) DeepCopyInto(out *ComputeInstanceList)

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

func (*ComputeInstanceList) DeepCopyObject

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

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

type ComputeInstancePhaseType

type ComputeInstancePhaseType string

ComputeInstancePhaseType is a valid value for .status.phase

const (
	// ComputeInstancePhaseStarting means the compute instance is starting
	ComputeInstancePhaseStarting ComputeInstancePhaseType = "Starting"

	// ComputeInstancePhaseRunning means the compute instance is running
	ComputeInstancePhaseRunning ComputeInstancePhaseType = "Running"

	// ComputeInstancePhaseFailed means the compute instance deployment or update has failed
	ComputeInstancePhaseFailed ComputeInstancePhaseType = "Failed"

	// ComputeInstancePhaseDeleting means there has been a request to delete the ComputeInstance
	ComputeInstancePhaseDeleting ComputeInstancePhaseType = "Deleting"

	// ComputeInstancePhaseStopping means the compute instance is in the process of being stopped
	ComputeInstancePhaseStopping ComputeInstancePhaseType = "Stopping"

	// ComputeInstancePhaseStopped means the compute instance is stopped
	ComputeInstancePhaseStopped ComputeInstancePhaseType = "Stopped"

	// ComputeInstancePhasePaused means the compute instance is paused
	ComputeInstancePhasePaused ComputeInstancePhaseType = "Paused"
)

type ComputeInstanceSpec

type ComputeInstanceSpec struct {
	// TemplateID is the unique identifier of the compute instance template to use when creating this compute instance
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=^[a-zA-Z_][a-zA-Z0-9._]*$
	TemplateID string `json:"templateID"`

	// TemplateParameters allows passing additional template-specific parameters as JSON-encoded key-value pairs.
	// This complements the explicit fields (cores, memoryGiB, etc.) and is used for:
	// - Template-specific parameters not covered by explicit fields (e.g., exposed_ports)
	// - Custom parameters defined by specific templates
	// +kubebuilder:validation:Optional
	TemplateParameters string `json:"templateParameters,omitempty"`

	// Image defines the VM image configuration
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="image is immutable"
	Image ImageSpec `json:"image"`

	// Cores is the number of CPU cores
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=128
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="cores is immutable"
	Cores int32 `json:"cores"`

	// MemoryGiB is the memory in gibibytes
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="memoryGiB is immutable"
	MemoryGiB int32 `json:"memoryGiB"`

	// BootDisk is the primary boot disk
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="bootDisk is immutable"
	BootDisk DiskSpec `json:"bootDisk"`

	// AdditionalDisks are supplementary disks
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="additionalDisks is immutable"
	AdditionalDisks []DiskSpec `json:"additionalDisks,omitempty"`

	// RunStrategy controls VM running state (MUTABLE)
	// +kubebuilder:validation:Required
	RunStrategy RunStrategyType `json:"runStrategy"`

	// UserDataSecretRef references cloud-init user data
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="userDataSecretRef is immutable"
	UserDataSecretRef *corev1.LocalObjectReference `json:"userDataSecretRef,omitempty"`

	// SSHKey is the SSH public key
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="sshKey is immutable"
	SSHKey string `json:"sshKey,omitempty"`

	// SubnetRef is the name of the Subnet CR in the hub cluster
	// This references the Kubernetes CR name (not the fulfillment ID)
	// +kubebuilder:validation:Optional
	SubnetRef string `json:"subnetRef,omitempty"`

	// RestartRequestedAt is a timestamp signal to request a VM restart (MUTABLE).
	//
	// Set this field to the current time (usually NOW) to request a restart.
	// The controller will execute the restart if this timestamp is greater than
	// status.lastRestartedAt.
	//
	// This is a declarative signal mechanism - the timestamp is a monotonically
	// increasing value to detect new restart requests, not a scheduled time.
	// Typically set to the current time for immediate restarts.
	//
	// External schedulers can set this field on a schedule to implement
	// scheduled maintenance windows if needed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Format=date-time
	RestartRequestedAt *metav1.Time `json:"restartRequestedAt,omitempty"`
}

ComputeInstanceSpec defines the desired state of ComputeInstance

func (*ComputeInstanceSpec) DeepCopy

func (in *ComputeInstanceSpec) DeepCopy() *ComputeInstanceSpec

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

func (*ComputeInstanceSpec) DeepCopyInto

func (in *ComputeInstanceSpec) DeepCopyInto(out *ComputeInstanceSpec)

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

type ComputeInstanceStatus

type ComputeInstanceStatus struct {
	// Phase provides a single-value overview of the state of the ComputeInstance
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Starting;Running;Failed;Deleting;Stopping;Stopped;Paused
	Phase ComputeInstancePhaseType `json:"phase,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the ComputeInstance
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// Reference to the KubeVirt VirtualMachine CR created by this ComputeInstance
	// +kubebuilder:validation:Optional
	VirtualMachineReference *VirtualMachineReferenceType `json:"virtualMachineReference,omitempty"`

	// Reference to the tenant that contains the ComputeInstance resources
	// +kubebuilder:validation:Optional
	TenantReference *TenantReferenceType `json:"tenantReference,omitempty"`

	// DesiredConfigVersion is the version (hash) of the desired configuration of the ComputeInstance
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`

	// LastRestartedAt records when the last restart was initiated by the controller.
	//
	// This is set to spec.restartRequestedAt when the controller processes a restart request.
	// It will be empty if no restart has been performed yet.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=date-time
	LastRestartedAt *metav1.Time `json:"lastRestartedAt,omitempty"`

	// Jobs tracks the history of provision and deprovision operations
	// Ordered chronologically, with latest operations at the end
	// Limited to the last N jobs (configurable via OSAC_MAX_JOB_HISTORY, default 10)
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// IPAddress is the primary IP address of the running instance, taken from the KubeVirt VirtualMachineInstance.
	// Populated when the instance is ready (phase Running).
	// +kubebuilder:validation:Optional
	IPAddress string `json:"ipAddress,omitempty"`
}

ComputeInstanceStatus defines the observed state of ComputeInstance.

func (*ComputeInstanceStatus) DeepCopy

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

func (*ComputeInstanceStatus) DeepCopyInto

func (in *ComputeInstanceStatus) DeepCopyInto(out *ComputeInstanceStatus)

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

type DiskSpec

type DiskSpec struct {
	// SizeGiB is the size of the disk in gibibytes
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	SizeGiB int32 `json:"sizeGiB"`
}

DiskSpec defines disk configuration

func (*DiskSpec) DeepCopy

func (in *DiskSpec) DeepCopy() *DiskSpec

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

func (*DiskSpec) DeepCopyInto

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

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

type ImageSourceType

type ImageSourceType string

ImageSourceType defines valid image source types +kubebuilder:validation:Enum=registry

const (
	// ImageSourceTypeRegistry indicates the image is from an OCI registry
	ImageSourceTypeRegistry ImageSourceType = "registry"
)

type ImageSpec

type ImageSpec struct {
	// SourceType specifies the type of image source (currently only "registry" supported)
	// +kubebuilder:validation:Required
	SourceType ImageSourceType `json:"sourceType"`

	// SourceRef is the OCI image reference for the VM
	// Example: "quay.io/fedora/fedora-coreos:stable"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	SourceRef string `json:"sourceRef"`
}

ImageSpec defines the VM image configuration

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

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

type JobState

type JobState string

JobState represents the current state of a job +kubebuilder:validation:Enum=Pending;Waiting;Running;Succeeded;Failed;Canceled;Unknown

const (
	// JobStatePending indicates the job is pending execution
	JobStatePending JobState = "Pending"
	// JobStateWaiting indicates the job is waiting for dependencies
	JobStateWaiting JobState = "Waiting"
	// JobStateRunning indicates the job is currently running
	JobStateRunning JobState = "Running"
	// JobStateSucceeded indicates the job completed successfully
	JobStateSucceeded JobState = "Succeeded"
	// JobStateFailed indicates the job failed
	JobStateFailed JobState = "Failed"
	// JobStateCanceled indicates the job was canceled
	JobStateCanceled JobState = "Canceled"
	// JobStateUnknown indicates the job state is unknown
	JobStateUnknown JobState = "Unknown"
)

func (JobState) IsSuccessful

func (s JobState) IsSuccessful() bool

IsSuccessful returns true if the job completed successfully

func (JobState) IsTerminal

func (s JobState) IsTerminal() bool

IsTerminal returns true if the job state is terminal (will not change)

type JobStatus

type JobStatus struct {
	// JobID is the job identifier from the provisioning provider
	// For AAP Direct: job ID from AAP API response
	// For EDA: auto-incremented "eda-webhook-N"
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	JobID string `json:"jobID"`

	// Type indicates the operation type
	// +kubebuilder:validation:Required
	Type JobType `json:"type"`

	// Timestamp when this job was created/triggered
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=date-time
	Timestamp metav1.Time `json:"timestamp"`

	// State is the current state of the job
	// +kubebuilder:validation:Required
	State JobState `json:"state"`

	// Message provides human-readable status or error information
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	Message string `json:"message,omitempty"`

	// BlockDeletionOnFailure indicates whether CR deletion should be blocked if this job fails
	// AAP Direct sets this to true to prevent orphaned cloud resources
	// EDA sets this to false as webhook handles cleanup
	// +kubebuilder:validation:Optional
	BlockDeletionOnFailure bool `json:"blockDeletionOnFailure,omitempty"`

	// ConfigVersion is the DesiredConfigVersion at the time this job was triggered.
	// Used to determine retry behavior on failure: if ConfigVersion differs from
	// the current DesiredConfigVersion, a new job is triggered immediately.
	// If they match, the controller retries with exponential backoff.
	// +kubebuilder:validation:Optional
	ConfigVersion string `json:"configVersion,omitempty"`
}

JobStatus represents the status of a provisioning or deprovisioning job

func (*JobStatus) DeepCopy

func (in *JobStatus) DeepCopy() *JobStatus

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

func (*JobStatus) DeepCopyInto

func (in *JobStatus) DeepCopyInto(out *JobStatus)

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

type JobType

type JobType string

JobType represents the type of job operation +kubebuilder:validation:Enum=provision;deprovision

const (
	// JobTypeProvision indicates a provisioning operation
	JobTypeProvision JobType = "provision"
	// JobTypeDeprovision indicates a deprovisioning operation
	JobTypeDeprovision JobType = "deprovision"
)

type NodeRequest

type NodeRequest struct {
	// ResourceClass describes the type of node you are requesting
	// +kubebuilder:validation:Required
	ResourceClass string `json:"resourceClass"`
	// NumberOfNodes describes the number of nodes you want of the given resource class
	// +kubebuilder:validation:Required
	NumberOfNodes int `json:"numberOfNodes"`
}

func (*NodeRequest) DeepCopy

func (in *NodeRequest) DeepCopy() *NodeRequest

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

func (*NodeRequest) DeepCopyInto

func (in *NodeRequest) DeepCopyInto(out *NodeRequest)

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

type PublicIP

type PublicIP struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of PublicIP
	// +required
	Spec PublicIPSpec `json:"spec"`

	// status defines the observed state of PublicIP
	// +optional
	Status PublicIPStatus `json:"status,omitempty,omitzero"`
}

PublicIP is the Schema for the publicips API

func (*PublicIP) DeepCopy

func (in *PublicIP) DeepCopy() *PublicIP

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

func (*PublicIP) DeepCopyInto

func (in *PublicIP) DeepCopyInto(out *PublicIP)

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

func (*PublicIP) DeepCopyObject

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

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

func (*PublicIP) GetName

func (p *PublicIP) GetName() string

GetName returns the name of the PublicIP resource

type PublicIPConditionType

type PublicIPConditionType string

PublicIPConditionType is a valid value for .status.conditions.type

const (
	// PublicIPConditionConfigurationApplied indicates whether the controller
	// has processed the current spec version
	PublicIPConditionConfigurationApplied PublicIPConditionType = "ConfigurationApplied"
)

type PublicIPList

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

PublicIPList contains a list of PublicIP

func (*PublicIPList) DeepCopy

func (in *PublicIPList) DeepCopy() *PublicIPList

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

func (*PublicIPList) DeepCopyInto

func (in *PublicIPList) DeepCopyInto(out *PublicIPList)

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

func (*PublicIPList) DeepCopyObject

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

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

type PublicIPPhaseType

type PublicIPPhaseType string

PublicIPPhaseType is a valid value for .status.phase

const (
	// PublicIPPhaseProgressing means an update is in progress
	PublicIPPhaseProgressing PublicIPPhaseType = "Progressing"

	// PublicIPPhaseFailed means the IP provisioning has failed
	PublicIPPhaseFailed PublicIPPhaseType = "Failed"

	// PublicIPPhaseReady means the IP and all associated resources are ready
	PublicIPPhaseReady PublicIPPhaseType = "Ready"

	// PublicIPPhaseDeleting means there has been a request to delete the PublicIP
	PublicIPPhaseDeleting PublicIPPhaseType = "Deleting"
)

type PublicIPPool

type PublicIPPool struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of PublicIPPool
	// +required
	Spec PublicIPPoolSpec `json:"spec"`

	// status defines the observed state of PublicIPPool
	// +optional
	Status PublicIPPoolStatus `json:"status,omitempty,omitzero"`
}

PublicIPPool is the Schema for the publicippools API

func (*PublicIPPool) DeepCopy

func (in *PublicIPPool) DeepCopy() *PublicIPPool

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

func (*PublicIPPool) DeepCopyInto

func (in *PublicIPPool) DeepCopyInto(out *PublicIPPool)

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

func (*PublicIPPool) DeepCopyObject

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

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

func (*PublicIPPool) GetName

func (p *PublicIPPool) GetName() string

GetName returns the name of the PublicIPPool resource

type PublicIPPoolConditionType

type PublicIPPoolConditionType string

PublicIPPoolConditionType is a valid value for .status.conditions.type

const (
	// PublicIPPoolConditionConfigurationApplied indicates whether the controller
	// has processed the current spec version
	PublicIPPoolConditionConfigurationApplied PublicIPPoolConditionType = "ConfigurationApplied"
)

type PublicIPPoolList

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

PublicIPPoolList contains a list of PublicIPPool

func (*PublicIPPoolList) DeepCopy

func (in *PublicIPPoolList) DeepCopy() *PublicIPPoolList

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

func (*PublicIPPoolList) DeepCopyInto

func (in *PublicIPPoolList) DeepCopyInto(out *PublicIPPoolList)

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

func (*PublicIPPoolList) DeepCopyObject

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

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

type PublicIPPoolPhaseType

type PublicIPPoolPhaseType string

PublicIPPoolPhaseType is a valid value for .status.phase

const (
	// PublicIPPoolPhaseProgressing means an update is in progress
	PublicIPPoolPhaseProgressing PublicIPPoolPhaseType = "Progressing"

	// PublicIPPoolPhaseFailed means the pool provisioning has failed
	PublicIPPoolPhaseFailed PublicIPPoolPhaseType = "Failed"

	// PublicIPPoolPhaseReady means the pool and all associated resources are ready
	PublicIPPoolPhaseReady PublicIPPoolPhaseType = "Ready"

	// PublicIPPoolPhaseDeleting means there has been a request to delete the PublicIPPool
	PublicIPPoolPhaseDeleting PublicIPPoolPhaseType = "Deleting"
)

type PublicIPPoolSpec

type PublicIPPoolSpec struct {
	// CIDRs is the list of CIDR blocks for this pool. All CIDRs must match the declared IPFamily.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	CIDRs []string `json:"cidrs"`

	// IPFamily indicates the IP address family for this pool (IPv4 or IPv6)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=IPv4;IPv6
	IPFamily string `json:"ipFamily"`

	// ImplementationStrategy determines the backend used to advertise IPs (e.g., metallb-l2).
	// Defaults to metallb-l2 for v7.0.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=metallb-l2
	ImplementationStrategy string `json:"implementationStrategy,omitempty"`
}

PublicIPPoolSpec defines the desired state of PublicIPPool

func (*PublicIPPoolSpec) DeepCopy

func (in *PublicIPPoolSpec) DeepCopy() *PublicIPPoolSpec

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

func (*PublicIPPoolSpec) DeepCopyInto

func (in *PublicIPPoolSpec) DeepCopyInto(out *PublicIPPoolSpec)

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

type PublicIPPoolStatus

type PublicIPPoolStatus struct {
	// Phase provides a single-value overview of the state of the PublicIPPool
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase PublicIPPoolPhaseType `json:"phase,omitempty"`

	// DesiredConfigVersion is a hash of the spec, used to detect spec changes and control retry behavior.
	// +kubebuilder:validation:Optional
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`

	// Jobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the PublicIPPool
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// Total is the total number of usable IP addresses across all CIDRs in this pool.
	// Uses int64 to accommodate large IPv6 CIDR ranges.
	// +kubebuilder:validation:Optional
	Total int64 `json:"total,omitempty"`

	// Allocated is the number of IPs currently allocated from the pool.
	// +kubebuilder:validation:Optional
	Allocated int64 `json:"allocated,omitempty"`

	// Available is the number of IPs available for allocation.
	// +kubebuilder:validation:Optional
	Available int64 `json:"available,omitempty"`
}

PublicIPPoolStatus defines the observed state of PublicIPPool

func (*PublicIPPoolStatus) DeepCopy

func (in *PublicIPPoolStatus) DeepCopy() *PublicIPPoolStatus

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

func (*PublicIPPoolStatus) DeepCopyInto

func (in *PublicIPPoolStatus) DeepCopyInto(out *PublicIPPoolStatus)

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

type PublicIPSpec

type PublicIPSpec struct {
	// Pool is the name of the PublicIPPool this IP is allocated from.
	// This field is immutable after creation.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="pool is immutable"
	Pool string `json:"pool"`

	// ComputeInstance is the optional name of the ComputeInstance this IP is attached to.
	// Setting this field triggers attachment of the IP to the referenced instance.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	ComputeInstance string `json:"computeInstance,omitempty"`
}

PublicIPSpec defines the desired state of PublicIP

func (*PublicIPSpec) DeepCopy

func (in *PublicIPSpec) DeepCopy() *PublicIPSpec

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

func (*PublicIPSpec) DeepCopyInto

func (in *PublicIPSpec) DeepCopyInto(out *PublicIPSpec)

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

type PublicIPStateType

type PublicIPStateType string

PublicIPStateType is a valid value for .status.state

const (
	// PublicIPStatePending means the IP allocation is pending
	PublicIPStatePending PublicIPStateType = "Pending"

	// PublicIPStateAllocated means the IP has been allocated from the pool
	PublicIPStateAllocated PublicIPStateType = "Allocated"

	// PublicIPStateAttached means the IP is attached to a ComputeInstance
	PublicIPStateAttached PublicIPStateType = "Attached"

	// PublicIPStateReleasing means the IP is being released back to the pool
	PublicIPStateReleasing PublicIPStateType = "Releasing"

	// PublicIPStateFailed means provisioning or release failed
	PublicIPStateFailed PublicIPStateType = "Failed"
)

type PublicIPStatus

type PublicIPStatus struct {
	// Phase provides a single-value overview of the state of the PublicIP
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase PublicIPPhaseType `json:"phase,omitempty"`

	// DesiredConfigVersion is a hash of the spec, used to detect spec changes and control retry behavior.
	// +kubebuilder:validation:Optional
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`

	// Jobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the PublicIP
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// Address is the allocated public IP address
	// +kubebuilder:validation:Optional
	Address string `json:"address,omitempty"`

	// State tracks the attachment lifecycle of the PublicIP
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Pending;Allocated;Attached;Releasing;Failed
	State PublicIPStateType `json:"state,omitempty"`
}

PublicIPStatus defines the observed state of PublicIP

func (*PublicIPStatus) DeepCopy

func (in *PublicIPStatus) DeepCopy() *PublicIPStatus

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

func (*PublicIPStatus) DeepCopyInto

func (in *PublicIPStatus) DeepCopyInto(out *PublicIPStatus)

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

type RunStrategyType

type RunStrategyType string

RunStrategyType defines valid VM run strategies +kubebuilder:validation:Enum=Always;Halted

const (
	// RunStrategyAlways means the VM should always be running
	RunStrategyAlways RunStrategyType = "Always"

	// RunStrategyHalted means the VM should be stopped
	RunStrategyHalted RunStrategyType = "Halted"
)

type SecurityGroup

type SecurityGroup struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of SecurityGroup
	// +required
	Spec SecurityGroupSpec `json:"spec"`

	// status defines the observed state of SecurityGroup
	// +optional
	Status SecurityGroupStatus `json:"status,omitempty,omitzero"`
}

SecurityGroup is the Schema for the securitygroups API

func (*SecurityGroup) DeepCopy

func (in *SecurityGroup) DeepCopy() *SecurityGroup

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

func (*SecurityGroup) DeepCopyInto

func (in *SecurityGroup) DeepCopyInto(out *SecurityGroup)

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

func (*SecurityGroup) DeepCopyObject

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

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

func (*SecurityGroup) GetName

func (s *SecurityGroup) GetName() string

GetName returns the name of the SecurityGroup resource

type SecurityGroupList

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

SecurityGroupList contains a list of SecurityGroup

func (*SecurityGroupList) DeepCopy

func (in *SecurityGroupList) DeepCopy() *SecurityGroupList

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

func (*SecurityGroupList) DeepCopyInto

func (in *SecurityGroupList) DeepCopyInto(out *SecurityGroupList)

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

func (*SecurityGroupList) DeepCopyObject

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

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

type SecurityGroupPhaseType

type SecurityGroupPhaseType string

SecurityGroupPhaseType is a valid value for .status.phase +kubebuilder:validation:Enum=Progressing;Ready;Failed;Deleting

const (
	// SecurityGroupPhaseProgressing means an update is in progress
	SecurityGroupPhaseProgressing SecurityGroupPhaseType = "Progressing"

	// SecurityGroupPhaseReady means the security group and all associated resources are ready
	SecurityGroupPhaseReady SecurityGroupPhaseType = "Ready"

	// SecurityGroupPhaseFailed means the security group provisioning has failed
	SecurityGroupPhaseFailed SecurityGroupPhaseType = "Failed"

	// SecurityGroupPhaseDeleting means there has been a request to delete the SecurityGroup
	SecurityGroupPhaseDeleting SecurityGroupPhaseType = "Deleting"
)

type SecurityGroupProtocol

type SecurityGroupProtocol string

SecurityGroupProtocol represents network protocol types +kubebuilder:validation:Enum=tcp;udp;icmp;all

const (
	// SecurityGroupProtocolTCP represents TCP protocol
	SecurityGroupProtocolTCP SecurityGroupProtocol = "tcp"

	// SecurityGroupProtocolUDP represents UDP protocol
	SecurityGroupProtocolUDP SecurityGroupProtocol = "udp"

	// SecurityGroupProtocolICMP represents ICMP protocol
	SecurityGroupProtocolICMP SecurityGroupProtocol = "icmp"

	// SecurityGroupProtocolAll represents all protocols
	SecurityGroupProtocolAll SecurityGroupProtocol = "all"
)

type SecurityGroupSpec

type SecurityGroupSpec struct {
	// VirtualNetwork is the ID of the parent VirtualNetwork
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	VirtualNetwork string `json:"virtualNetwork"`

	// IngressRules defines the ingress security rules
	// +kubebuilder:validation:Optional
	IngressRules []SecurityRule `json:"ingressRules,omitempty"`

	// EgressRules defines the egress security rules
	// +kubebuilder:validation:Optional
	EgressRules []SecurityRule `json:"egressRules,omitempty"`
}

SecurityGroupSpec defines the desired state of SecurityGroup

func (*SecurityGroupSpec) DeepCopy

func (in *SecurityGroupSpec) DeepCopy() *SecurityGroupSpec

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

func (*SecurityGroupSpec) DeepCopyInto

func (in *SecurityGroupSpec) DeepCopyInto(out *SecurityGroupSpec)

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

type SecurityGroupStatus

type SecurityGroupStatus struct {
	// Phase provides a single-value overview of the state of the SecurityGroup
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Ready;Failed;Deleting
	Phase SecurityGroupPhaseType `json:"phase,omitempty"`

	// DesiredConfigVersion is a hash of the spec, used to detect spec changes and control retry behavior.
	// +kubebuilder:validation:Optional
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`

	// Jobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// BackendSecurityGroupID stores provider-specific security group identifier
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	BackendSecurityGroupID string `json:"backendSecurityGroupId,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the SecurityGroup
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

SecurityGroupStatus defines the observed state of SecurityGroup

func (*SecurityGroupStatus) DeepCopy

func (in *SecurityGroupStatus) DeepCopy() *SecurityGroupStatus

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

func (*SecurityGroupStatus) DeepCopyInto

func (in *SecurityGroupStatus) DeepCopyInto(out *SecurityGroupStatus)

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

type SecurityRule

type SecurityRule struct {
	// Protocol specifies the network protocol
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=tcp;udp;icmp;all
	Protocol SecurityGroupProtocol `json:"protocol"`

	// PortFrom specifies the start of the port range
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	PortFrom *int32 `json:"portFrom,omitempty"`

	// PortTo specifies the end of the port range
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	PortTo *int32 `json:"portTo,omitempty"`

	// SourceCIDR specifies the source CIDR block for this rule
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	SourceCIDR string `json:"sourceCidr,omitempty"`

	// DestinationCIDR specifies the destination CIDR block for this rule
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	DestinationCIDR string `json:"destinationCidr,omitempty"`
}

SecurityRule defines a single security rule for ingress or egress traffic

func (*SecurityRule) DeepCopy

func (in *SecurityRule) DeepCopy() *SecurityRule

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

func (*SecurityRule) DeepCopyInto

func (in *SecurityRule) DeepCopyInto(out *SecurityRule)

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

type Subnet

type Subnet struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of Subnet
	// +required
	Spec SubnetSpec `json:"spec"`

	// status defines the observed state of Subnet
	// +optional
	Status SubnetStatus `json:"status,omitempty,omitzero"`
}

Subnet is the Schema for the subnets API

func (*Subnet) DeepCopy

func (in *Subnet) DeepCopy() *Subnet

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

func (*Subnet) DeepCopyInto

func (in *Subnet) DeepCopyInto(out *Subnet)

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

func (*Subnet) DeepCopyObject

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

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

func (*Subnet) GetName

func (s *Subnet) GetName() string

GetName returns the name of the Subnet resource

type SubnetConditionType

type SubnetConditionType string

SubnetConditionType is a valid value for .status.conditions.type

const (
	// SubnetConditionAccepted means the order has been accepted but work has not yet started
	SubnetConditionAccepted SubnetConditionType = "Accepted"

	// SubnetConditionProgressing means that an update is in progress
	SubnetConditionProgressing SubnetConditionType = "Progressing"

	// SubnetConditionReady means the subnet is ready
	SubnetConditionReady SubnetConditionType = "Ready"

	// SubnetConditionNetworkProvisioned means the network has been provisioned
	SubnetConditionNetworkProvisioned SubnetConditionType = "NetworkProvisioned"

	// SubnetConditionNetworkReady means the network is ready
	SubnetConditionNetworkReady SubnetConditionType = "NetworkReady"
)

type SubnetList

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

SubnetList contains a list of Subnet

func (*SubnetList) DeepCopy

func (in *SubnetList) DeepCopy() *SubnetList

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

func (*SubnetList) DeepCopyInto

func (in *SubnetList) DeepCopyInto(out *SubnetList)

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

func (*SubnetList) DeepCopyObject

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

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

type SubnetPhaseType

type SubnetPhaseType string

SubnetPhaseType is a valid value for .status.phase

const (
	// SubnetPhaseProgressing means an update is in progress
	SubnetPhaseProgressing SubnetPhaseType = "Progressing"

	// SubnetPhaseFailed means the subnet provisioning has failed
	SubnetPhaseFailed SubnetPhaseType = "Failed"

	// SubnetPhaseReady means the subnet and all associated resources are ready
	SubnetPhaseReady SubnetPhaseType = "Ready"

	// SubnetPhaseDeleting means there has been a request to delete the Subnet
	SubnetPhaseDeleting SubnetPhaseType = "Deleting"
)

type SubnetSpec

type SubnetSpec struct {
	// VirtualNetwork is the ID of the parent VirtualNetwork
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	VirtualNetwork string `json:"virtualNetwork"`

	// IPv4CIDR is the IPv4 CIDR block for this subnet
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	IPv4CIDR string `json:"ipv4Cidr,omitempty"`

	// IPv6CIDR is the IPv6 CIDR block for this subnet
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	IPv6CIDR string `json:"ipv6Cidr,omitempty"`
}

SubnetSpec defines the desired state of Subnet

func (*SubnetSpec) DeepCopy

func (in *SubnetSpec) DeepCopy() *SubnetSpec

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

func (*SubnetSpec) DeepCopyInto

func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)

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

type SubnetStatus

type SubnetStatus struct {
	// Phase provides a single-value overview of the state of the Subnet
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase SubnetPhaseType `json:"phase,omitempty"`

	// DesiredConfigVersion is a hash of the spec, used to detect spec changes and control retry behavior.
	// +kubebuilder:validation:Optional
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`

	// Jobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the Subnet
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// BackendNetworkID stores provider-specific network identifier
	// +kubebuilder:validation:Optional
	BackendNetworkID string `json:"backendNetworkId,omitempty"`
}

SubnetStatus defines the observed state of Subnet

func (*SubnetStatus) DeepCopy

func (in *SubnetStatus) DeepCopy() *SubnetStatus

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

func (*SubnetStatus) DeepCopyInto

func (in *SubnetStatus) DeepCopyInto(out *SubnetStatus)

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

type Tenant

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

	Spec   TenantSpec   `json:"spec,omitempty"`
	Status TenantStatus `json:"status,omitempty"`
}

Tenant is the Schema for the tenants API.

func (*Tenant) DeepCopy

func (in *Tenant) DeepCopy() *Tenant

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

func (*Tenant) DeepCopyInto

func (in *Tenant) DeepCopyInto(out *Tenant)

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

func (*Tenant) DeepCopyObject

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

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

func (*Tenant) GetStatusCondition

func (t *Tenant) GetStatusCondition(conditionType TenantConditionType) *metav1.Condition

func (*Tenant) SetStatusCondition

func (t *Tenant) SetStatusCondition(conditionType TenantConditionType, status metav1.ConditionStatus, reason, message string) bool

type TenantConditionType

type TenantConditionType string

TenantConditionType is a valid value for .status.conditions.type

const (
	// TenantConditionNamespaceReady indicates whether the tenant namespace
	// exists on the target cluster.
	TenantConditionNamespaceReady TenantConditionType = "NamespaceReady"

	// TenantConditionStorageClassReady indicates whether a valid StorageClass
	// has been found for the tenant (tenant-specific or shared Default).
	TenantConditionStorageClassReady TenantConditionType = "StorageClassReady"
)

type TenantList

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

TenantList contains a list of Tenant.

func (*TenantList) DeepCopy

func (in *TenantList) DeepCopy() *TenantList

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

func (*TenantList) DeepCopyInto

func (in *TenantList) DeepCopyInto(out *TenantList)

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

func (*TenantList) DeepCopyObject

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

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

type TenantPhaseType

type TenantPhaseType string
const (
	TenantPhaseProgressing TenantPhaseType = "Progressing"
	TenantPhaseReady       TenantPhaseType = "Ready"
)

type TenantReferenceType

type TenantReferenceType struct {
	// Name of the tenant
	Name string `json:"name"`
	// Namespace of the tenant
	Namespace string `json:"namespace"`
}

TenantReferenceType contains a reference to the tenant that contains the ComputeInstance resources

func (*TenantReferenceType) DeepCopy

func (in *TenantReferenceType) DeepCopy() *TenantReferenceType

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

func (*TenantReferenceType) DeepCopyInto

func (in *TenantReferenceType) DeepCopyInto(out *TenantReferenceType)

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

type TenantSpec

type TenantSpec struct {
}

TenantSpec defines the desired state of Tenant.

func (*TenantSpec) DeepCopy

func (in *TenantSpec) DeepCopy() *TenantSpec

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

func (*TenantSpec) DeepCopyInto

func (in *TenantSpec) DeepCopyInto(out *TenantSpec)

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

type TenantStatus

type TenantStatus struct {
	// Phase is the phase of the tenant
	Phase TenantPhaseType `json:"phase,omitempty"`

	// Namespace is the namespace allocated to the tenant on the target cluster
	Namespace string `json:"namespace,omitempty"`

	// StorageClass is the StorageClass allocated to the tenant on the target cluster
	StorageClass string `json:"storageClass,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the Tenant
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

TenantStatus defines the observed state of Tenant.

func (*TenantStatus) DeepCopy

func (in *TenantStatus) DeepCopy() *TenantStatus

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

func (*TenantStatus) DeepCopyInto

func (in *TenantStatus) DeepCopyInto(out *TenantStatus)

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

type VirtualMachineReferenceType

type VirtualMachineReferenceType struct {
	// Namespace that contains the VirtualMachine resources
	Namespace                  string `json:"namespace"`
	KubeVirtVirtualMachineName string `json:"kubeVirtVirtualMachineName"`
}

VirtualMachineReferenceType contains a reference to the KubeVirt VirtualMachine CR created by this ComputeInstance

func (*VirtualMachineReferenceType) DeepCopy

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

func (*VirtualMachineReferenceType) DeepCopyInto

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

type VirtualNetwork

type VirtualNetwork struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of VirtualNetwork
	// +required
	Spec VirtualNetworkSpec `json:"spec"`

	// status defines the observed state of VirtualNetwork
	// +optional
	Status VirtualNetworkStatus `json:"status,omitempty,omitzero"`
}

VirtualNetwork is the Schema for the virtualnetworks API

func (*VirtualNetwork) DeepCopy

func (in *VirtualNetwork) DeepCopy() *VirtualNetwork

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

func (*VirtualNetwork) DeepCopyInto

func (in *VirtualNetwork) DeepCopyInto(out *VirtualNetwork)

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

func (*VirtualNetwork) DeepCopyObject

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

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

func (*VirtualNetwork) GetName

func (v *VirtualNetwork) GetName() string

GetName returns the name of the VirtualNetwork resource

type VirtualNetworkList

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

VirtualNetworkList contains a list of VirtualNetwork

func (*VirtualNetworkList) DeepCopy

func (in *VirtualNetworkList) DeepCopy() *VirtualNetworkList

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

func (*VirtualNetworkList) DeepCopyInto

func (in *VirtualNetworkList) DeepCopyInto(out *VirtualNetworkList)

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

func (*VirtualNetworkList) DeepCopyObject

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

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

type VirtualNetworkPhaseType

type VirtualNetworkPhaseType string

VirtualNetworkPhaseType is a valid value for .status.phase +kubebuilder:validation:Enum=Progressing;Ready;Failed;Deleting

const (
	// VirtualNetworkPhaseProgressing means an update is in progress
	VirtualNetworkPhaseProgressing VirtualNetworkPhaseType = "Progressing"

	// VirtualNetworkPhaseReady means the virtual network and all associated resources are ready
	VirtualNetworkPhaseReady VirtualNetworkPhaseType = "Ready"

	// VirtualNetworkPhaseFailed means the virtual network provisioning has failed
	VirtualNetworkPhaseFailed VirtualNetworkPhaseType = "Failed"

	// VirtualNetworkPhaseDeleting means there has been a request to delete the VirtualNetwork
	VirtualNetworkPhaseDeleting VirtualNetworkPhaseType = "Deleting"
)

type VirtualNetworkSpec

type VirtualNetworkSpec struct {
	// Region is the cloud region where this VirtualNetwork will be provisioned
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Region string `json:"region"`

	// IPv4CIDR is the IPv4 CIDR block for this virtual network
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	IPv4CIDR string `json:"ipv4Cidr,omitempty"`

	// IPv6CIDR is the IPv6 CIDR block for this virtual network
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	IPv6CIDR string `json:"ipv6Cidr,omitempty"`

	// NetworkClass is the name of the NetworkClass that defines implementation strategy
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	NetworkClass string `json:"networkClass"`

	// ImplementationStrategy determines the underlying network backend and Ansible role to use.
	// This value is derived from the NetworkClass at creation time and stored here for direct
	// access by controllers and provisioning systems.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	ImplementationStrategy string `json:"implementationStrategy,omitempty"`
}

VirtualNetworkSpec defines the desired state of VirtualNetwork

func (*VirtualNetworkSpec) DeepCopy

func (in *VirtualNetworkSpec) DeepCopy() *VirtualNetworkSpec

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

func (*VirtualNetworkSpec) DeepCopyInto

func (in *VirtualNetworkSpec) DeepCopyInto(out *VirtualNetworkSpec)

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

type VirtualNetworkStatus

type VirtualNetworkStatus struct {
	// Phase provides a single-value overview of the state of the VirtualNetwork
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Ready;Failed;Deleting
	Phase VirtualNetworkPhaseType `json:"phase,omitempty"`

	// DesiredConfigVersion is a hash of the spec, used to detect spec changes and control retry behavior.
	// +kubebuilder:validation:Optional
	DesiredConfigVersion string `json:"desiredConfigVersion,omitempty"`

	// Jobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	Jobs []JobStatus `json:"jobs,omitempty"`

	// BackendNetworkID stores provider-specific network identifier
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	BackendNetworkID string `json:"backendNetworkId,omitempty"`

	// Conditions holds an array of metav1.Condition that describe the state of the VirtualNetwork
	// +kubebuilder:validation:Optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

VirtualNetworkStatus defines the observed state of VirtualNetwork

func (*VirtualNetworkStatus) DeepCopy

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

func (*VirtualNetworkStatus) DeepCopyInto

func (in *VirtualNetworkStatus) DeepCopyInto(out *VirtualNetworkStatus)

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

Jump to

Keyboard shortcuts

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