v1alpha1

package
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 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"
	ConditionReady                 = "Ready"
)

Common condition constants

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

	ReasonTenantNotReady      = "TenantNotReady"
	ReasonProvisioningStorage = "ProvisioningStorage"
	ReasonWaitingForVM        = "WaitingForVM"
	ReasonInfrastructureReady = "InfrastructureReady"
	ReasonProvisioningFailed  = "ProvisioningFailed"
)

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"
	TenantReasonMultipleFound = "MultipleFound"
	TenantReasonNoProvider    = "NoProvider"
)

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 GetExternalIPAttachmentStatusCondition added in v0.0.6

func GetExternalIPAttachmentStatusCondition(attachment *ExternalIPAttachment, conditionType ExternalIPAttachmentConditionType) *metav1.Condition

GetExternalIPAttachmentStatusCondition returns the condition with the specified type from the ExternalIPAttachment status

func GetExternalIPPoolStatusCondition added in v0.0.6

func GetExternalIPPoolStatusCondition(pool *ExternalIPPool, conditionType ExternalIPPoolConditionType) *metav1.Condition

GetExternalIPPoolStatusCondition returns the condition with the specified type from the ExternalIPPool status

func GetExternalIPStatusCondition added in v0.0.6

func GetExternalIPStatusCondition(ip *ExternalIP, conditionType ExternalIPConditionType) *metav1.Condition

GetExternalIPStatusCondition returns the condition with the specified type from the ExternalIP status

func GetNATGatewayStatusCondition added in v0.0.7

func GetNATGatewayStatusCondition(gateway *NATGateway, conditionType NATGatewayConditionType) *metav1.Condition

GetNATGatewayStatusCondition returns the condition with the specified type from the NATGateway status

func GetPublicIPAttachmentStatusCondition added in v0.0.3

func GetPublicIPAttachmentStatusCondition(attachment *PublicIPAttachment, conditionType PublicIPAttachmentConditionType) *metav1.Condition

GetPublicIPAttachmentStatusCondition returns the condition with the specified type from the PublicIPAttachment status

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 SetExternalIPAttachmentStatusCondition added in v0.0.6

func SetExternalIPAttachmentStatusCondition(attachment *ExternalIPAttachment, condition metav1.Condition)

SetExternalIPAttachmentStatusCondition sets the condition with the specified type in the ExternalIPAttachment status

func SetExternalIPPoolStatusCondition added in v0.0.6

func SetExternalIPPoolStatusCondition(pool *ExternalIPPool, condition metav1.Condition)

SetExternalIPPoolStatusCondition sets the condition with the specified type in the ExternalIPPool status

func SetExternalIPStatusCondition added in v0.0.6

func SetExternalIPStatusCondition(ip *ExternalIP, condition metav1.Condition)

SetExternalIPStatusCondition sets the condition with the specified type in the ExternalIP status

func SetNATGatewayStatusCondition added in v0.0.7

func SetNATGatewayStatusCondition(gateway *NATGateway, condition metav1.Condition)

SetNATGatewayStatusCondition sets the condition with the specified type in the NATGateway status

func SetPublicIPAttachmentStatusCondition added in v0.0.3

func SetPublicIPAttachmentStatusCondition(attachment *PublicIPAttachment, condition metav1.Condition)

SetPublicIPAttachmentStatusCondition sets the condition with the specified type in the PublicIPAttachment status

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"

	// ClusterOrderConditionClusterStorageReady indicates whether StorageClasses
	// and CSI drivers are installed on the CaaS cluster for this tenant.
	// Owned by the OSAC Storage Controller. Does not gate Phase=Ready.
	ClusterOrderConditionClusterStorageReady ClusterOrderConditionType = "ClusterStorageReady"
)

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._]*$
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="templateID is immutable"
	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"`

	// ProvisioningJobs 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
	ProvisioningJobs []JobStatus `json:"provisioningJobs,omitempty"`

	// ClusterStorageJobs holds the history of cluster storage provisioning/deprovisioning jobs
	// +kubebuilder:validation:Optional
	ClusterStorageJobs []JobStatus `json:"clusterStorageJobs,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 ClusterStorageStatus added in v0.0.6

type ClusterStorageStatus struct {
	// ClusterName identifies the target cluster.
	ClusterName string `json:"clusterName"`
	// Ready indicates whether StorageClasses are installed on this cluster.
	Ready bool `json:"ready"`
	// Reason provides a machine-readable reason for the current state.
	Reason string `json:"reason,omitempty"`
}

ClusterStorageStatus tracks StorageClass installation status for a single cluster.

func (*ClusterStorageStatus) DeepCopy added in v0.0.6

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

func (*ClusterStorageStatus) DeepCopyInto added in v0.0.6

func (in *ClusterStorageStatus) DeepCopyInto(out *ClusterStorageStatus)

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) GetPublicIPAddress added in v0.0.3

func (ci *ComputeInstance) GetPublicIPAddress() string

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) SetPublicIPAddress added in v0.0.3

func (ci *ComputeInstance) SetPublicIPAddress(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"

	// ComputeInstanceConditionReady means the compute instance is ready (KubeVirt VM readiness reflected on the CR).
	ComputeInstanceConditionReady ComputeInstanceConditionType = "Ready"

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

	// GuestOSFamily specifies the guest operating system family for the VM.
	// To support future OS families, this field is a freeform string.
	// Currently, any value other than "windows" will be treated as "linux".
	// This field is immutable after creation.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="guestOSFamily is immutable"
	GuestOSFamily string `json:"guestOSFamily,omitempty"`

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

	// NetworkAttachments defines multiple NICs when more than one subnet (and optional security groups per NIC) is required.
	// The first entry is the primary subnet for VM placement (subnet-namespace annotation).
	// Subnet references (per NetworkAttachment) are immutable but security groups can be changed.
	//
	// Why immutability is required:
	// Currently, ComputeInstances are created with a single NIC. The VM instance must be created in the namespace
	// of the subnet it uses (the subnet-namespace annotation determines VM placement). This architectural constraint
	// means that changing the subnet would require recreating the VM in a different namespace, which is not supported.
	// Similarly, the array size cannot change because adding/removing NICs would require changing the primary subnet
	// or the VM's namespace, both of which are immutable after VM creation.
	//
	// Immutability enforcement:
	// - The +listType=map with +listMapKey=subnetRef markers correlate entries by subnetRef for updates
	// - The size check below prevents adding or removing entries
	// - The per-item subnetRef validation (self == oldSelf) prevents changing keys of existing entries
	// Combined, these ensure only securityGroupRefs can be modified.
	//
	// MaxItems is required for CEL cost budget calculation: NetworkAttachment.SubnetRef has a CEL validation
	// rule (self == oldSelf for immutability). Without maxItems, Kubernetes cannot bound the cost of iterating
	// over array items to validate this rule, causing CRD installation to fail with "estimated rule cost exceeds budget".
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MaxItems=8
	// +kubebuilder:validation:XValidation:rule="size(oldSelf) == 0 || (size(self) == size(oldSelf) && self.all(na, oldSelf.exists(old, old.subnetRef == na.subnetRef)))",message="cannot change or add/remove network attachments after initial assignment"
	// +listType=map
	// +listMapKey=subnetRef
	NetworkAttachments []NetworkAttachment `json:"networkAttachments,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.

func (ComputeInstanceSpec) PrimarySubnetRef added in v0.0.2

func (s ComputeInstanceSpec) PrimarySubnetRef() string

PrimarySubnetRef returns the Subnet CR name used for VM placement and the subnet-namespace annotation: the first networkAttachments[].subnetRef when that list is non-empty, otherwise empty string.

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

	// ProvisioningJobs 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
	ProvisioningJobs []JobStatus `json:"provisioningJobs,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"`

	// PublicIPAddress is the public IP address attached to this instance via a PublicIP CR.
	// Populated when a PublicIP CR in state "Attached" references this ComputeInstance.
	// +kubebuilder:validation:Optional
	PublicIPAddress string `json:"publicIPAddress,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 ExternalIP added in v0.0.6

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

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

	// spec defines the desired state of ExternalIP
	// +required
	Spec ExternalIPSpec `json:"spec"`

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

ExternalIP is the Schema for the externalips API

func (*ExternalIP) DeepCopy added in v0.0.6

func (in *ExternalIP) DeepCopy() *ExternalIP

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

func (*ExternalIP) DeepCopyInto added in v0.0.6

func (in *ExternalIP) DeepCopyInto(out *ExternalIP)

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

func (*ExternalIP) DeepCopyObject added in v0.0.6

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

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

func (*ExternalIP) GetName added in v0.0.6

func (p *ExternalIP) GetName() string

GetName returns the name of the ExternalIP resource

type ExternalIPAttachment added in v0.0.6

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

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

	// spec defines the desired state of ExternalIPAttachment
	// +required
	Spec ExternalIPAttachmentSpec `json:"spec"`

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

ExternalIPAttachment is the Schema for the externalipattachments API

func (*ExternalIPAttachment) DeepCopy added in v0.0.6

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

func (*ExternalIPAttachment) DeepCopyInto added in v0.0.6

func (in *ExternalIPAttachment) DeepCopyInto(out *ExternalIPAttachment)

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

func (*ExternalIPAttachment) DeepCopyObject added in v0.0.6

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

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

func (*ExternalIPAttachment) GetName added in v0.0.6

func (p *ExternalIPAttachment) GetName() string

GetName returns the name of the ExternalIPAttachment resource

type ExternalIPAttachmentConditionType added in v0.0.6

type ExternalIPAttachmentConditionType string

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

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

type ExternalIPAttachmentList added in v0.0.6

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

ExternalIPAttachmentList contains a list of ExternalIPAttachment

func (*ExternalIPAttachmentList) DeepCopy added in v0.0.6

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

func (*ExternalIPAttachmentList) DeepCopyInto added in v0.0.6

func (in *ExternalIPAttachmentList) DeepCopyInto(out *ExternalIPAttachmentList)

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

func (*ExternalIPAttachmentList) DeepCopyObject added in v0.0.6

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

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

type ExternalIPAttachmentPhaseType added in v0.0.6

type ExternalIPAttachmentPhaseType string

ExternalIPAttachmentPhaseType is a valid value for .status.phase

const (
	// ExternalIPAttachmentPhaseProgressing means the attach or detach operation is in progress
	ExternalIPAttachmentPhaseProgressing ExternalIPAttachmentPhaseType = "Progressing"

	// ExternalIPAttachmentPhaseFailed means the attach or detach operation has failed
	ExternalIPAttachmentPhaseFailed ExternalIPAttachmentPhaseType = "Failed"

	// ExternalIPAttachmentPhaseReady means the external IP is attached and routing traffic
	ExternalIPAttachmentPhaseReady ExternalIPAttachmentPhaseType = "Ready"

	// ExternalIPAttachmentPhaseDeleting means a detach operation is in progress
	ExternalIPAttachmentPhaseDeleting ExternalIPAttachmentPhaseType = "Deleting"
)

type ExternalIPAttachmentSpec added in v0.0.6

type ExternalIPAttachmentSpec struct {
	// ExternalIP is the name of the ExternalIP resource to attach.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ExternalIP string `json:"externalIP"`

	// ComputeInstance is the name of the ComputeInstance to attach to.
	// Exactly one target field must be set.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	ComputeInstance *string `json:"computeInstance,omitempty"`
}

ExternalIPAttachmentSpec defines the desired state of ExternalIPAttachment. The entire spec is immutable after creation: to change the target, delete the attachment and create a new one. +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec is immutable after creation"

func (*ExternalIPAttachmentSpec) DeepCopy added in v0.0.6

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

func (*ExternalIPAttachmentSpec) DeepCopyInto added in v0.0.6

func (in *ExternalIPAttachmentSpec) DeepCopyInto(out *ExternalIPAttachmentSpec)

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

type ExternalIPAttachmentStatus added in v0.0.6

type ExternalIPAttachmentStatus struct {
	// Phase provides a single-value overview of the state of the ExternalIPAttachment
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase ExternalIPAttachmentPhaseType `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"`

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

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

ExternalIPAttachmentStatus defines the observed state of ExternalIPAttachment

func (*ExternalIPAttachmentStatus) DeepCopy added in v0.0.6

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

func (*ExternalIPAttachmentStatus) DeepCopyInto added in v0.0.6

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

type ExternalIPConditionType added in v0.0.6

type ExternalIPConditionType string

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

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

type ExternalIPList added in v0.0.6

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

ExternalIPList contains a list of ExternalIP

func (*ExternalIPList) DeepCopy added in v0.0.6

func (in *ExternalIPList) DeepCopy() *ExternalIPList

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

func (*ExternalIPList) DeepCopyInto added in v0.0.6

func (in *ExternalIPList) DeepCopyInto(out *ExternalIPList)

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

func (*ExternalIPList) DeepCopyObject added in v0.0.6

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

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

type ExternalIPPhaseType added in v0.0.6

type ExternalIPPhaseType string

ExternalIPPhaseType is a valid value for .status.phase

const (
	// ExternalIPPhaseProgressing means an update is in progress
	ExternalIPPhaseProgressing ExternalIPPhaseType = "Progressing"

	// ExternalIPPhaseFailed means the IP provisioning has failed
	ExternalIPPhaseFailed ExternalIPPhaseType = "Failed"

	// ExternalIPPhaseReady means the IP and all associated resources are ready
	ExternalIPPhaseReady ExternalIPPhaseType = "Ready"

	// ExternalIPPhaseDeleting means there has been a request to delete the ExternalIP
	ExternalIPPhaseDeleting ExternalIPPhaseType = "Deleting"
)

type ExternalIPPool added in v0.0.6

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

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

	// spec defines the desired state of ExternalIPPool
	// +required
	Spec ExternalIPPoolSpec `json:"spec"`

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

ExternalIPPool is the Schema for the externalippools API

func (*ExternalIPPool) DeepCopy added in v0.0.6

func (in *ExternalIPPool) DeepCopy() *ExternalIPPool

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

func (*ExternalIPPool) DeepCopyInto added in v0.0.6

func (in *ExternalIPPool) DeepCopyInto(out *ExternalIPPool)

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

func (*ExternalIPPool) DeepCopyObject added in v0.0.6

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

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

func (*ExternalIPPool) GetName added in v0.0.6

func (p *ExternalIPPool) GetName() string

GetName returns the name of the ExternalIPPool resource

type ExternalIPPoolConditionType added in v0.0.6

type ExternalIPPoolConditionType string

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

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

type ExternalIPPoolList added in v0.0.6

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

ExternalIPPoolList contains a list of ExternalIPPool

func (*ExternalIPPoolList) DeepCopy added in v0.0.6

func (in *ExternalIPPoolList) DeepCopy() *ExternalIPPoolList

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

func (*ExternalIPPoolList) DeepCopyInto added in v0.0.6

func (in *ExternalIPPoolList) DeepCopyInto(out *ExternalIPPoolList)

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

func (*ExternalIPPoolList) DeepCopyObject added in v0.0.6

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

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

type ExternalIPPoolPhaseType added in v0.0.6

type ExternalIPPoolPhaseType string

ExternalIPPoolPhaseType is a valid value for .status.phase

const (
	// ExternalIPPoolPhaseProgressing means an update is in progress
	ExternalIPPoolPhaseProgressing ExternalIPPoolPhaseType = "Progressing"

	// ExternalIPPoolPhaseFailed means the pool provisioning has failed
	ExternalIPPoolPhaseFailed ExternalIPPoolPhaseType = "Failed"

	// ExternalIPPoolPhaseReady means the pool and all associated resources are ready
	ExternalIPPoolPhaseReady ExternalIPPoolPhaseType = "Ready"

	// ExternalIPPoolPhaseDeleting means there has been a request to delete the ExternalIPPool
	ExternalIPPoolPhaseDeleting ExternalIPPoolPhaseType = "Deleting"
)

type ExternalIPPoolSpec added in v0.0.6

type ExternalIPPoolSpec 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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="cidrs is immutable"
	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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ipFamily is immutable"
	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;netris
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="implementationStrategy is immutable"
	ImplementationStrategy string `json:"implementationStrategy,omitempty"`
}

ExternalIPPoolSpec defines the desired state of ExternalIPPool

func (*ExternalIPPoolSpec) DeepCopy added in v0.0.6

func (in *ExternalIPPoolSpec) DeepCopy() *ExternalIPPoolSpec

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

func (*ExternalIPPoolSpec) DeepCopyInto added in v0.0.6

func (in *ExternalIPPoolSpec) DeepCopyInto(out *ExternalIPPoolSpec)

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

type ExternalIPPoolStatus added in v0.0.6

type ExternalIPPoolStatus struct {
	// Phase provides a single-value overview of the state of the ExternalIPPool
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase ExternalIPPoolPhaseType `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"`

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

	// Conditions holds an array of metav1.Condition that describe the state of the ExternalIPPool
	// +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"`
}

ExternalIPPoolStatus defines the observed state of ExternalIPPool

func (*ExternalIPPoolStatus) DeepCopy added in v0.0.6

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

func (*ExternalIPPoolStatus) DeepCopyInto added in v0.0.6

func (in *ExternalIPPoolStatus) DeepCopyInto(out *ExternalIPPoolStatus)

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

type ExternalIPSpec added in v0.0.6

type ExternalIPSpec struct {
	// Pool is the name of the ExternalIPPool 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"`
}

ExternalIPSpec defines the desired state of ExternalIP

func (*ExternalIPSpec) DeepCopy added in v0.0.6

func (in *ExternalIPSpec) DeepCopy() *ExternalIPSpec

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

func (*ExternalIPSpec) DeepCopyInto added in v0.0.6

func (in *ExternalIPSpec) DeepCopyInto(out *ExternalIPSpec)

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

type ExternalIPStateType added in v0.0.6

type ExternalIPStateType string

ExternalIPStateType is a valid value for .status.state

const (
	// ExternalIPStatePending means the IP allocation is pending
	ExternalIPStatePending ExternalIPStateType = "Pending"

	// ExternalIPStateAllocated means the IP has been allocated from the pool
	ExternalIPStateAllocated ExternalIPStateType = "Allocated"

	// ExternalIPStateFailed means provisioning failed
	ExternalIPStateFailed ExternalIPStateType = "Failed"
)

type ExternalIPStatus added in v0.0.6

type ExternalIPStatus struct {
	// Phase provides a single-value overview of the state of the ExternalIP
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase ExternalIPPhaseType `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"`

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

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

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

	// State tracks the attachment lifecycle of the ExternalIP
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Pending;Allocated;Failed
	State ExternalIPStateType `json:"state,omitempty"`

	// Attached indicates whether a ExternalIPAttachment has successfully attached this IP to a target.
	// +kubebuilder:validation:Optional
	Attached bool `json:"attached,omitempty"`
}

ExternalIPStatus defines the observed state of ExternalIP

func (*ExternalIPStatus) DeepCopy added in v0.0.6

func (in *ExternalIPStatus) DeepCopy() *ExternalIPStatus

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

func (*ExternalIPStatus) DeepCopyInto added in v0.0.6

func (in *ExternalIPStatus) DeepCopyInto(out *ExternalIPStatus)

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 AAP job identifier from the provisioning provider API response.
	// +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 sets this to true to prevent orphaned cloud resources when deprovisioning fails.
	// +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 NATGateway added in v0.0.7

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

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

	// spec defines the desired state of NATGateway
	// +required
	Spec NATGatewaySpec `json:"spec"`

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

NATGateway is the Schema for the natgateways API

func (*NATGateway) DeepCopy added in v0.0.7

func (in *NATGateway) DeepCopy() *NATGateway

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

func (*NATGateway) DeepCopyInto added in v0.0.7

func (in *NATGateway) DeepCopyInto(out *NATGateway)

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

func (*NATGateway) DeepCopyObject added in v0.0.7

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

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

func (*NATGateway) GetName added in v0.0.7

func (n *NATGateway) GetName() string

GetName returns the name of the NATGateway resource

type NATGatewayConditionType added in v0.0.7

type NATGatewayConditionType string

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

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

type NATGatewayList added in v0.0.7

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

NATGatewayList contains a list of NATGateway

func (*NATGatewayList) DeepCopy added in v0.0.7

func (in *NATGatewayList) DeepCopy() *NATGatewayList

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

func (*NATGatewayList) DeepCopyInto added in v0.0.7

func (in *NATGatewayList) DeepCopyInto(out *NATGatewayList)

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

func (*NATGatewayList) DeepCopyObject added in v0.0.7

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

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

type NATGatewayPhaseType added in v0.0.7

type NATGatewayPhaseType string

NATGatewayPhaseType is a valid value for .status.phase

const (
	// NATGatewayPhaseProgressing means the SNAT rule is being configured
	NATGatewayPhaseProgressing NATGatewayPhaseType = "Progressing"

	// NATGatewayPhaseFailed means the SNAT rule configuration has failed
	NATGatewayPhaseFailed NATGatewayPhaseType = "Failed"

	// NATGatewayPhaseReady means the SNAT rule is active and egress traffic is being NATted
	NATGatewayPhaseReady NATGatewayPhaseType = "Ready"

	// NATGatewayPhaseDeleting means the SNAT rule is being removed
	NATGatewayPhaseDeleting NATGatewayPhaseType = "Deleting"
)

type NATGatewaySpec added in v0.0.7

type NATGatewaySpec struct {
	// VirtualNetwork is the name of the parent VirtualNetwork whose egress
	// traffic is source-NATted through this gateway.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	VirtualNetwork string `json:"virtualNetwork"`

	// ExternalIP is the name of the ExternalIP resource to use as the SNAT
	// source address for outbound traffic.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	ExternalIP string `json:"externalIP"`
}

NATGatewaySpec defines the desired state of NATGateway. The entire spec is immutable after creation: to change the configuration, delete the NATGateway and create a new one. +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec is immutable after creation"

func (*NATGatewaySpec) DeepCopy added in v0.0.7

func (in *NATGatewaySpec) DeepCopy() *NATGatewaySpec

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

func (*NATGatewaySpec) DeepCopyInto added in v0.0.7

func (in *NATGatewaySpec) DeepCopyInto(out *NATGatewaySpec)

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

type NATGatewayStatus added in v0.0.7

type NATGatewayStatus struct {
	// Phase provides a single-value overview of the state of the NATGateway
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Ready;Failed;Deleting
	Phase NATGatewayPhaseType `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"`

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

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

NATGatewayStatus defines the observed state of NATGateway

func (*NATGatewayStatus) DeepCopy added in v0.0.7

func (in *NATGatewayStatus) DeepCopy() *NATGatewayStatus

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

func (*NATGatewayStatus) DeepCopyInto added in v0.0.7

func (in *NATGatewayStatus) DeepCopyInto(out *NATGatewayStatus)

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

type NetworkAttachment added in v0.0.2

type NetworkAttachment struct {
	// SubnetRef is the name of the Subnet CR in the same namespace as the ComputeInstance.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="subnetRef is immutable"
	SubnetRef string `json:"subnetRef"`

	// SecurityGroupRefs lists SecurityGroup CR names in the same namespace as the ComputeInstance.
	// Mutable - can be changed to add/remove security groups without recreating the VM.
	// +kubebuilder:validation:Optional
	SecurityGroupRefs []string `json:"securityGroupRefs,omitempty"`
}

NetworkAttachment defines one NIC: a Subnet CR on the hub plus optional SecurityGroup CR names.

func (*NetworkAttachment) DeepCopy added in v0.0.2

func (in *NetworkAttachment) DeepCopy() *NetworkAttachment

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

func (*NetworkAttachment) DeepCopyInto added in v0.0.2

func (in *NetworkAttachment) DeepCopyInto(out *NetworkAttachment)

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

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 PublicIPAttachment added in v0.0.3

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

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

	// spec defines the desired state of PublicIPAttachment
	// +required
	Spec PublicIPAttachmentSpec `json:"spec"`

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

PublicIPAttachment is the Schema for the publicipattachments API

func (*PublicIPAttachment) DeepCopy added in v0.0.3

func (in *PublicIPAttachment) DeepCopy() *PublicIPAttachment

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

func (*PublicIPAttachment) DeepCopyInto added in v0.0.3

func (in *PublicIPAttachment) DeepCopyInto(out *PublicIPAttachment)

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

func (*PublicIPAttachment) DeepCopyObject added in v0.0.3

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

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

func (*PublicIPAttachment) GetName added in v0.0.3

func (p *PublicIPAttachment) GetName() string

GetName returns the name of the PublicIPAttachment resource

type PublicIPAttachmentConditionType added in v0.0.3

type PublicIPAttachmentConditionType string

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

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

type PublicIPAttachmentList added in v0.0.3

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

PublicIPAttachmentList contains a list of PublicIPAttachment

func (*PublicIPAttachmentList) DeepCopy added in v0.0.3

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

func (*PublicIPAttachmentList) DeepCopyInto added in v0.0.3

func (in *PublicIPAttachmentList) DeepCopyInto(out *PublicIPAttachmentList)

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

func (*PublicIPAttachmentList) DeepCopyObject added in v0.0.3

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

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

type PublicIPAttachmentPhaseType added in v0.0.3

type PublicIPAttachmentPhaseType string

PublicIPAttachmentPhaseType is a valid value for .status.phase

const (
	// PublicIPAttachmentPhaseProgressing means the attach or detach operation is in progress
	PublicIPAttachmentPhaseProgressing PublicIPAttachmentPhaseType = "Progressing"

	// PublicIPAttachmentPhaseFailed means the attach or detach operation has failed
	PublicIPAttachmentPhaseFailed PublicIPAttachmentPhaseType = "Failed"

	// PublicIPAttachmentPhaseReady means the public IP is attached and routing traffic
	PublicIPAttachmentPhaseReady PublicIPAttachmentPhaseType = "Ready"

	// PublicIPAttachmentPhaseDeleting means a detach operation is in progress
	PublicIPAttachmentPhaseDeleting PublicIPAttachmentPhaseType = "Deleting"
)

type PublicIPAttachmentSpec added in v0.0.3

type PublicIPAttachmentSpec struct {
	// PublicIP is the name of the PublicIP resource to attach.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	PublicIP string `json:"publicIP"`

	// ComputeInstance is the name of the ComputeInstance to attach to.
	// Exactly one target field must be set.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	ComputeInstance *string `json:"computeInstance,omitempty"`
}

PublicIPAttachmentSpec defines the desired state of PublicIPAttachment. The entire spec is immutable after creation: to change the target, delete the attachment and create a new one. +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec is immutable after creation"

func (*PublicIPAttachmentSpec) DeepCopy added in v0.0.3

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

func (*PublicIPAttachmentSpec) DeepCopyInto added in v0.0.3

func (in *PublicIPAttachmentSpec) DeepCopyInto(out *PublicIPAttachmentSpec)

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

type PublicIPAttachmentStatus added in v0.0.3

type PublicIPAttachmentStatus struct {
	// Phase provides a single-value overview of the state of the PublicIPAttachment
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Progressing;Failed;Ready;Deleting
	Phase PublicIPAttachmentPhaseType `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"`

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

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

PublicIPAttachmentStatus defines the observed state of PublicIPAttachment

func (*PublicIPAttachmentStatus) DeepCopy added in v0.0.3

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

func (*PublicIPAttachmentStatus) DeepCopyInto added in v0.0.3

func (in *PublicIPAttachmentStatus) DeepCopyInto(out *PublicIPAttachmentStatus)

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

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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="cidrs is immutable"
	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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ipFamily is immutable"
	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;netris
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="implementationStrategy is immutable"
	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"`

	// ProvisioningJobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	ProvisioningJobs []JobStatus `json:"provisioningJobs,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"`
}

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"

	// PublicIPStateFailed means provisioning 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"`

	// ProvisioningJobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	ProvisioningJobs []JobStatus `json:"provisioningJobs,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;Failed
	State PublicIPStateType `json:"state,omitempty"`

	// Attached indicates whether a PublicIPAttachment has successfully attached this IP to a target.
	// +kubebuilder:validation:Optional
	Attached bool `json:"attached,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 ResolvedStorageClass added in v0.0.2

type ResolvedStorageClass struct {
	// Name is the name of the resolved Kubernetes StorageClass.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Tier is the storage tier this StorageClass provides,
	// taken from the osac.openshift.io/storage-tier label.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^[a-z0-9]([a-z0-9._-]*[a-z0-9])?$`
	Tier string `json:"tier"`
}

ResolvedStorageClass captures a single resolved StorageClass for a specific storage tier. The OSAC Storage Controller populates one entry per tier.

func (*ResolvedStorageClass) DeepCopy added in v0.0.2

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

func (*ResolvedStorageClass) DeepCopyInto added in v0.0.2

func (in *ResolvedStorageClass) DeepCopyInto(out *ResolvedStorageClass)

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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="virtualNetwork is immutable"
	VirtualNetwork string `json:"virtualNetwork"`

	// ImplementationStrategy determines the backend used to enforce security rules.
	// Set by the fulfillment-service; defaults to network_policy when empty.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="implementationStrategy is immutable"
	ImplementationStrategy string `json:"implementationStrategy,omitempty"`

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

	// ProvisioningJobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	ProvisioningJobs []JobStatus `json:"provisioningJobs,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 StorageBackendStatus added in v0.0.6

type StorageBackendStatus struct {
	// Name is the storage backend identifier (e.g., "vast-1").
	Name string `json:"name"`
	// Provider is the storage provider type (e.g., "vast").
	Provider string `json:"provider"`
	// Ready indicates whether this backend is provisioned for the tenant.
	Ready bool `json:"ready"`
	// Message provides human-readable status or error information.
	Message string `json:"message,omitempty"`
}

StorageBackendStatus tracks provisioning status for a single storage backend.

func (*StorageBackendStatus) DeepCopy added in v0.0.6

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

func (*StorageBackendStatus) DeepCopyInto added in v0.0.6

func (in *StorageBackendStatus) DeepCopyInto(out *StorageBackendStatus)

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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="virtualNetwork is immutable"
	VirtualNetwork string `json:"virtualNetwork"`

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

	// IPv6CIDR is the IPv6 CIDR block for this subnet
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ipv6Cidr is immutable"
	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"`

	// ProvisioningJobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	ProvisioningJobs []JobStatus `json:"provisioningJobs,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. Owned by the Tenant controller.
	TenantConditionNamespaceReady TenantConditionType = "NamespaceReady"

	// TenantConditionStorageBackendReady indicates whether the tenant's storage
	// backend is provisioned (hub Secret exists with credentials).
	// Owned by the OSAC Storage Controller.
	TenantConditionStorageBackendReady TenantConditionType = "StorageBackendReady"

	// TenantConditionClusterStorageReady indicates whether StorageClasses and CSI
	// drivers are installed on the target cluster for this tenant.
	// Owned by the OSAC Storage Controller.
	TenantConditionClusterStorageReady TenantConditionType = "ClusterStorageReady"
)

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"
	TenantPhaseFailed      TenantPhaseType = "Failed"
	TenantPhaseDeleting    TenantPhaseType = "Deleting"
)

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

	// StorageClasses lists all resolved StorageClass mappings for the tenant,
	// one per storage tier.
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=tier
	StorageClasses []ResolvedStorageClass `json:"storageClasses,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"`

	// ProvisioningJobs holds the history of provisioning jobs triggered for this tenant
	ProvisioningJobs []JobStatus `json:"provisioningJobs,omitempty"`

	// StorageBackendJobs holds the history of storage backend provisioning/deprovisioning jobs
	StorageBackendJobs []JobStatus `json:"storageBackendJobs,omitempty"`

	// ClusterStorageJobs holds the history of cluster storage provisioning/deprovisioning jobs
	ClusterStorageJobs []JobStatus `json:"clusterStorageJobs,omitempty"`

	// StorageBackends tracks per-backend provisioning status.
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	StorageBackends []StorageBackendStatus `json:"storageBackends,omitempty"`

	// ClusterStorage tracks per-cluster StorageClass installation status.
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=clusterName
	ClusterStorage []ClusterStorageStatus `json:"clusterStorage,omitempty"`
}

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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="region is immutable"
	Region string `json:"region"`

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

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

	// NetworkClass is the name of the NetworkClass that defines implementation strategy.
	// When omitted, the platform default NetworkClass is used.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="networkClass is immutable"
	NetworkClass string `json:"networkClass,omitempty"`

	// 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
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="implementationStrategy is immutable"
	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"`

	// ProvisioningJobs holds an array of JobStatus tracking provisioning and deprovisioning operations
	// +kubebuilder:validation:Optional
	ProvisioningJobs []JobStatus `json:"provisioningJobs,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