v1alpha2

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

package v1alpha2 contains API Schema definitions for the infrastructure v1alpha2 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io +k8s:openapi-gen=true

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

Index

Constants

View Source
const (
	// LoadBalancerAvailableCondition documents the availability of the container that implements the cluster load balancer.
	//
	// NOTE: When the load balancer provisioning starts the process completes almost immediately and within
	// the same reconciliation, so the user will always see a transition from no condition to available without
	// having evidence that the operation is started/is in progress.
	LoadBalancerAvailableCondition clusterv1.ConditionType = "LoadBalancerAvailable"

	// LoadBalancerProvisioningFailedReason (Severity=Warning) documents a LXCCluster controller detecting
	// an error while provisioning the container that provides the cluster load balancer; those kind of
	// errors are usually transient and failed provisioning are automatically re-tried by the controller.
	LoadBalancerProvisioningFailedReason = "LoadBalancerProvisioningFailed"

	// LoadBalancerProvisioningAbortedReason (Severity=Error) documents a LXCCluster controller detecting
	// an error while provisioning the cluster load balancer due to configuration not supported by the
	// the remote server.
	LoadBalancerProvisioningAbortedReason = "LoadBalancerProvisioningAbortedReason"
)
View Source
const (
	// InstanceProvisionedCondition documents the status of the provisioning of the instance
	// generated by a LXCMachine.
	//
	// NOTE: When the instance provisioning starts the process completes almost immediately and within
	// the same reconciliation, so the user will always see a transition from Wait to Provisioned without
	// having evidence that the operation is started/is in progress.
	InstanceProvisionedCondition clusterv1.ConditionType = "InstanceProvisioned"

	// WaitingForClusterInfrastructureReason (Severity=Info) documents a LXCMachine waiting for the cluster
	// infrastructure to be ready before starting to create the instance that provides the LXCMachine
	// infrastructure.
	WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure"

	// WaitingForBootstrapDataReason (Severity=Info) documents a LXCMachine waiting for the bootstrap
	// script to be ready before starting to create the instance that provides the LXCMachine infrastructure.
	WaitingForBootstrapDataReason = "WaitingForBootstrapData"

	// CreatingInstanceReason (Severity=Info) documents a LXCMachine waiting for the instance that
	// provides the LXCMachine infrastructure to be created.
	CreatingInstanceReason = "CreatingInstance"

	// InstanceProvisioningFailedReason (Severity=Warning) documents a LXCMachine controller detecting
	// an error while provisioning the instance that provides the LXCMachine infrastructure; those kind of
	// errors are usually transient and failed provisioning are automatically re-tried by the controller.
	InstanceProvisioningFailedReason = "InstanceProvisioningFailed"

	// InstanceProvisioningAbortedReason (Severity=Error) documents a LXCMachine controller detecting
	// a terminal error while provisioning the instance that provides the LXCMachine infrastructure.
	InstanceProvisioningAbortedReason = "InstanceProvisioningAborted"

	// InstanceDeletedReason (Severity=Error) documents a LXCMachine controller detecting
	// the underlying instance has been deleted unexpectedly.
	InstanceDeletedReason = "InstanceDeleted"
)
View Source
const (
	// ClusterFinalizer allows LXCClusterReconciler to clean up resources associated with LXCCluster before
	// removing it from the apiserver.
	ClusterFinalizer = "lxccluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer allows ReconcileLXCMachine to clean up resources associated with LXCMachine before
	// removing it from the apiserver.
	MachineFinalizer = "lxcmachine.infrastructure.cluster.x-k8s.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha2"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

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

Functions

This section is empty.

Types

type LXCCluster

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

	Spec   LXCClusterSpec   `json:"spec,omitempty"`
	Status LXCClusterStatus `json:"status,omitempty"`
}

LXCCluster is the Schema for the lxcclusters API.

func (*LXCCluster) DeepCopy

func (in *LXCCluster) DeepCopy() *LXCCluster

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

func (*LXCCluster) DeepCopyInto

func (in *LXCCluster) DeepCopyInto(out *LXCCluster)

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

func (*LXCCluster) DeepCopyObject

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

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

func (*LXCCluster) GetConditions

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

GetConditions returns the set of conditions for this object.

func (*LXCCluster) GetLXCSecretNamespacedName

func (c *LXCCluster) GetLXCSecretNamespacedName() types.NamespacedName

GetLXCSecretNamespacedName returns the client.ObjectKey for the secret containing LXC credentials.

func (*LXCCluster) GetLoadBalancerInstanceName

func (c *LXCCluster) GetLoadBalancerInstanceName() string

GetLoadBalancerInstanceName returns the instance name for the cluster load balancer.

func (*LXCCluster) GetV1Beta2Conditions

func (c *LXCCluster) GetV1Beta2Conditions() []metav1.Condition

GetV1Beta2Conditions returns the set of conditions for this object.

func (*LXCCluster) SetConditions

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

SetConditions sets the conditions on this object.

func (*LXCCluster) SetV1Beta2Conditions

func (c *LXCCluster) SetV1Beta2Conditions(conditions []metav1.Condition)

SetV1Beta2Conditions sets conditions for an API object.

type LXCClusterList

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

LXCClusterList contains a list of LXCCluster.

func (*LXCClusterList) DeepCopy

func (in *LXCClusterList) DeepCopy() *LXCClusterList

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

func (*LXCClusterList) DeepCopyInto

func (in *LXCClusterList) DeepCopyInto(out *LXCClusterList)

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

func (*LXCClusterList) DeepCopyObject

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

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

type LXCClusterLoadBalancer

type LXCClusterLoadBalancer struct {
	// LXC will spin up a plain Ubuntu instance with haproxy installed.
	//
	// The controller will automatically update the list of backends on the haproxy configuration as control plane nodes are added or removed from the cluster.
	//
	// No other configuration is required for "lxc" mode. The load balancer instance can be configured through the .instanceSpec field.
	//
	// The load balancer container is a single point of failure to access the workload cluster control plane. Therefore, it should only be used for development or evaluation clusters.
	//
	// +optional
	LXC *LXCLoadBalancerInstance `json:"lxc,omitempty"`

	// OCI will spin up an OCI instance running the kindest/haproxy image.
	//
	// The controller will automatically update the list of backends on the haproxy configuration as control plane nodes are added or removed from the cluster.
	//
	// No other configuration is required for "oci" mode. The load balancer instance can be configured through the .instanceSpec field.
	//
	// The load balancer container is a single point of failure to access the workload cluster control plane. Therefore, it should only be used for development or evaluation clusters.
	//
	// Requires server extensions: "instance_oci"
	//
	// +optional
	OCI *LXCLoadBalancerInstance `json:"oci,omitempty"`

	// OVN will create a network load balancer.
	//
	// The controller will automatically update the list of backends for the network load balancer as control plane nodes are added or removed from the cluster.
	//
	// The cluster administrator is responsible to ensure that the OVN network is configured properly and that the LXCMachineTemplate objects have appropriate profiles to use the OVN network.
	//
	// When using the "ovn" mode, the load balancer address must be set in `.spec.controlPlaneEndpoint.host` on the LXCCluster object.
	//
	// Requires server extensions: "network_load_balancer", "network_load_balancer_health_checks"
	//
	// +optional
	OVN *LXCLoadBalancerOVN `json:"ovn,omitempty"`

	// External will not create a load balancer. It must be used alongside something like kube-vip, otherwise the cluster will fail to provision.
	//
	// When using the "external" mode, the load balancer address must be set in `.spec.controlPlaneEndpoint.host` on the LXCCluster object.
	//
	// +optional
	External *LXCLoadBalancerExternal `json:"external,omitempty"`
}

LXCClusterLoadBalancer is configuration for provisioning the load balancer of the cluster.

+kubebuilder:validation:MaxProperties:=1 +kubebuilder:validation:MinProperties:=1

func (*LXCClusterLoadBalancer) DeepCopy

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

func (*LXCClusterLoadBalancer) DeepCopyInto

func (in *LXCClusterLoadBalancer) DeepCopyInto(out *LXCClusterLoadBalancer)

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

type LXCClusterSpec

type LXCClusterSpec struct {
	// ControlPlaneEndpoint represents the endpoint to communicate with the control plane.
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty"`

	// SecretRef references a secret with credentials to access the LXC (e.g. Incus, LXD) server.
	SecretRef SecretRef `json:"secretRef,omitempty"`

	// LoadBalancer is configuration for provisioning the load balancer of the cluster.
	LoadBalancer LXCClusterLoadBalancer `json:"loadBalancer"`

	// Unprivileged will launch unprivileged LXC containers for the cluster machines.
	//
	// Known limitations apply for unprivileged LXC containers (e.g. cannot use NFS volumes).
	//
	// +optional
	Unprivileged bool `json:"unprivileged"`

	// Do not apply the default kubeadm profile on container instances.
	//
	// In this case, the cluster administrator is responsible to create the
	// profile manually and set the `.spec.template.spec.profiles` field of all
	// LXCMachineTemplate objects.
	//
	// For more details on the default kubeadm profile that is applied, see
	// https://lxc.github.io/cluster-api-provider-incus/reference/profile/kubeadm.html
	//
	// +optional
	SkipDefaultKubeadmProfile bool `json:"skipDefaultKubeadmProfile"`
}

LXCClusterSpec defines the desired state of LXCCluster.

func (*LXCClusterSpec) DeepCopy

func (in *LXCClusterSpec) DeepCopy() *LXCClusterSpec

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

func (*LXCClusterSpec) DeepCopyInto

func (in *LXCClusterSpec) DeepCopyInto(out *LXCClusterSpec)

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

type LXCClusterStatus

type LXCClusterStatus struct {
	// Ready denotes that the LXC cluster (infrastructure) is ready.
	//
	// +optional
	Ready bool `json:"ready"`

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

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

LXCClusterStatus defines the observed state of LXCCluster.

func (*LXCClusterStatus) DeepCopy

func (in *LXCClusterStatus) DeepCopy() *LXCClusterStatus

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

func (*LXCClusterStatus) DeepCopyInto

func (in *LXCClusterStatus) DeepCopyInto(out *LXCClusterStatus)

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

type LXCClusterTemplate

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

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

LXCClusterTemplate is the Schema for the lxcclustertemplates API.

func (*LXCClusterTemplate) DeepCopy

func (in *LXCClusterTemplate) DeepCopy() *LXCClusterTemplate

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

func (*LXCClusterTemplate) DeepCopyInto

func (in *LXCClusterTemplate) DeepCopyInto(out *LXCClusterTemplate)

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

func (*LXCClusterTemplate) DeepCopyObject

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

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

type LXCClusterTemplateList

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

LXCClusterTemplateList contains a list of LXCClusterTemplate.

func (*LXCClusterTemplateList) DeepCopy

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

func (*LXCClusterTemplateList) DeepCopyInto

func (in *LXCClusterTemplateList) DeepCopyInto(out *LXCClusterTemplateList)

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

func (*LXCClusterTemplateList) DeepCopyObject

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

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

type LXCClusterTemplateResource

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

LXCClusterTemplateResource describes the data needed to create a LXCCluster from a template.

func (*LXCClusterTemplateResource) DeepCopy

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

func (*LXCClusterTemplateResource) DeepCopyInto

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

type LXCClusterTemplateSpec

type LXCClusterTemplateSpec struct {
	Template LXCClusterTemplateResource `json:"template"`
}

LXCClusterTemplateSpec defines the desired state of LXCClusterTemplate.

func (*LXCClusterTemplateSpec) DeepCopy

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

func (*LXCClusterTemplateSpec) DeepCopyInto

func (in *LXCClusterTemplateSpec) DeepCopyInto(out *LXCClusterTemplateSpec)

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

type LXCClusterV1Beta2Status

type LXCClusterV1Beta2Status struct {
	// conditions represents the observations of a LXCCluster's current state.
	// Known condition types are Ready, LoadBalancerAvailable, Deleting, Paused.
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=32
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

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

func (*LXCClusterV1Beta2Status) DeepCopy

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

func (*LXCClusterV1Beta2Status) DeepCopyInto

func (in *LXCClusterV1Beta2Status) DeepCopyInto(out *LXCClusterV1Beta2Status)

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

type LXCLoadBalancerExternal

type LXCLoadBalancerExternal struct {
}

func (*LXCLoadBalancerExternal) DeepCopy

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

func (*LXCLoadBalancerExternal) DeepCopyInto

func (in *LXCLoadBalancerExternal) DeepCopyInto(out *LXCLoadBalancerExternal)

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

type LXCLoadBalancerInstance

type LXCLoadBalancerInstance struct {
	// InstanceSpec can be used to adjust the load balancer instance configuration.
	//
	// +optional
	InstanceSpec LXCLoadBalancerMachineSpec `json:"instanceSpec,omitempty"`
}

func (*LXCLoadBalancerInstance) DeepCopy

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

func (*LXCLoadBalancerInstance) DeepCopyInto

func (in *LXCLoadBalancerInstance) DeepCopyInto(out *LXCLoadBalancerInstance)

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

type LXCLoadBalancerMachineSpec

type LXCLoadBalancerMachineSpec struct {
	// Flavor is configuration for the instance size (e.g. t3.micro, or c2-m4).
	//
	// Examples:
	//
	//   - `t3.micro` -- match specs of an EC2 t3.micro instance
	//   - `c2-m4` -- 2 cores, 4 GB RAM
	//
	// +optional
	Flavor string `json:"flavor,omitempty"`

	// Profiles is a list of profiles to attach to the instance.
	//
	// +optional
	Profiles []string `json:"profiles,omitempty"`

	// Image to use for provisioning the load balancer machine. If not set,
	// a default image based on the load balancer type will be used.
	//
	//   - "oci": ghcr.io/neoaggelos/cluster-api-provider-lxc/haproxy:v0.0.1
	//   - "lxc": haproxy from the default simplestreams server
	//
	// +optional
	Image LXCMachineImageSource `json:"image"`
}

LXCLoadBalancerMachineSpec is configuration for the container that will host the cluster load balancer, when using the "lxc" or "oci" load balancer type.

func (*LXCLoadBalancerMachineSpec) DeepCopy

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

func (*LXCLoadBalancerMachineSpec) DeepCopyInto

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

type LXCLoadBalancerOVN

type LXCLoadBalancerOVN struct {
	// NetworkName is the name of the network to create the load balancer.
	NetworkName string `json:"networkName,omitempty"`
}

func (*LXCLoadBalancerOVN) DeepCopy

func (in *LXCLoadBalancerOVN) DeepCopy() *LXCLoadBalancerOVN

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

func (*LXCLoadBalancerOVN) DeepCopyInto

func (in *LXCLoadBalancerOVN) DeepCopyInto(out *LXCLoadBalancerOVN)

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

type LXCMachine

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

	Spec   LXCMachineSpec   `json:"spec,omitempty"`
	Status LXCMachineStatus `json:"status,omitempty"`
}

LXCMachine is the Schema for the lxcmachines API.

func (*LXCMachine) DeepCopy

func (in *LXCMachine) DeepCopy() *LXCMachine

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

func (*LXCMachine) DeepCopyInto

func (in *LXCMachine) DeepCopyInto(out *LXCMachine)

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

func (*LXCMachine) DeepCopyObject

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

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

func (*LXCMachine) GetConditions

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

GetConditions returns the set of conditions for this object.

func (*LXCMachine) GetExpectedProviderID

func (c *LXCMachine) GetExpectedProviderID() string

GetExpectedProviderID returns the expected providerID that the Kubernetes node should have.

func (*LXCMachine) GetInstanceName

func (c *LXCMachine) GetInstanceName() string

func (*LXCMachine) GetV1Beta2Conditions

func (c *LXCMachine) GetV1Beta2Conditions() []metav1.Condition

GetV1Beta2Conditions returns the set of conditions for this object.

func (*LXCMachine) SetConditions

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

SetConditions sets the conditions on this object.

func (*LXCMachine) SetV1Beta2Conditions

func (c *LXCMachine) SetV1Beta2Conditions(conditions []metav1.Condition)

SetV1Beta2Conditions sets conditions for an API object.

type LXCMachineImageSource

type LXCMachineImageSource struct {
	// Name is the image name or alias.
	//
	// Note that Incus and Canonical LXD use incompatible image servers
	// for Ubuntu images. To address this issue, setting image name to
	// `ubuntu:VERSION` is a shortcut for:
	//
	//   - Incus: "images:ubuntu/VERSION/cloud" (from https://images.linuxcontainers.org)
	//   - LXD: "ubuntu:VERSION" (from https://cloud-images.ubuntu.com/releases)
	//
	// +optional
	Name string `json:"name"`

	// Fingerprint is the image fingerprint.
	//
	// +optional
	Fingerprint string `json:"fingerprint"`

	// Server is the remote server, e.g. "https://images.linuxcontainers.org"
	//
	// +optional
	Server string `json:"server,omitempty"`

	// Protocol is the protocol to use for fetching the image, e.g. "simplestreams".
	//
	// +optional
	Protocol string `json:"protocol,omitempty"`
}

func (*LXCMachineImageSource) DeepCopy

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

func (*LXCMachineImageSource) DeepCopyInto

func (in *LXCMachineImageSource) DeepCopyInto(out *LXCMachineImageSource)

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

func (*LXCMachineImageSource) IsZero

func (s *LXCMachineImageSource) IsZero() bool

type LXCMachineList

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

LXCMachineList contains a list of LXCMachine.

func (*LXCMachineList) DeepCopy

func (in *LXCMachineList) DeepCopy() *LXCMachineList

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

func (*LXCMachineList) DeepCopyInto

func (in *LXCMachineList) DeepCopyInto(out *LXCMachineList)

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

func (*LXCMachineList) DeepCopyObject

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

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

type LXCMachineSpec

type LXCMachineSpec struct {
	// ProviderID is the container name in ProviderID format (lxc:///<containername>).
	//
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// InstanceType is "container" or "virtual-machine". Empty defaults to "container".
	//
	// +kubebuilder:validation:Enum:=container;virtual-machine;""
	// +optional
	InstanceType string `json:"instanceType,omitempty"`

	// Flavor is configuration for the instance size (e.g. t3.micro, or c2-m4).
	//
	// Examples:
	//
	//   - `t3.micro` -- match specs of an EC2 t3.micro instance
	//   - `c2-m4` -- 2 cores, 4 GB RAM
	//
	// +optional
	Flavor string `json:"flavor,omitempty"`

	// Profiles is a list of profiles to attach to the instance.
	//
	// +optional
	Profiles []string `json:"profiles,omitempty"`

	// Devices allows overriding the configuration of the instance disk or network.
	//
	// Device configuration must be formatted using the syntax "<device>,<key>=<value>".
	//
	// For example, to specify a different network for an instance, you can use:
	//
	// “`yaml
	//   # override device "eth0", to be of type "nic" and use network "my-network"
	//   devices:
	//   - eth0,type=nic,network=my-network
	// “`
	//
	// +optional
	Devices []string `json:"devices,omitempty"`

	// Config allows overriding instance configuration keys.
	//
	// Note that the provider will always set the following configuration keys:
	//
	// - "cloud-init.user-data": cloud-init config data
	// - "user.cluster-name": name of owning cluster
	// - "user.cluster-namespace": namespace of owning cluster
	// - "user.cluster-role": instance role (e.g. control-plane, worker)
	// - "user.machine-name": name of machine (should match instance hostname)
	//
	// See https://linuxcontainers.org/incus/docs/main/reference/instance_options/#instance-options
	// for details.
	//
	// +optional
	Config map[string]string `json:"config,omitempty"`

	// Image to use for provisioning the machine. If not set, a kubeadm image
	// from the default upstream simplestreams source will be used, based on
	// the version of the machine.
	//
	// Note that the default source does not support images for all Kubernetes
	// versions, refer to the documentation for more details on which versions
	// are supported and how to build a base image for any version.
	//
	// +optional
	Image LXCMachineImageSource `json:"image"`
}

LXCMachineSpec defines the desired state of LXCMachine.

func (*LXCMachineSpec) DeepCopy

func (in *LXCMachineSpec) DeepCopy() *LXCMachineSpec

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

func (*LXCMachineSpec) DeepCopyInto

func (in *LXCMachineSpec) DeepCopyInto(out *LXCMachineSpec)

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

type LXCMachineStatus

type LXCMachineStatus struct {
	// Ready denotes that the LXC machine is ready.
	//
	// +optional
	Ready bool `json:"ready,omitempty"`

	// LoadBalancerConfigured will be set to true once for each control plane node, after the load balancer instance is reconfigured.
	//
	// +optional
	LoadBalancerConfigured bool `json:"loadBalancerConfigured,omitempty"`

	// Addresses is the list of addresses of the LXC machine.
	//
	// +optional
	Addresses []clusterv1.MachineAddress `json:"addresses"`

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

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

LXCMachineStatus defines the observed state of LXCMachine.

func (*LXCMachineStatus) DeepCopy

func (in *LXCMachineStatus) DeepCopy() *LXCMachineStatus

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

func (*LXCMachineStatus) DeepCopyInto

func (in *LXCMachineStatus) DeepCopyInto(out *LXCMachineStatus)

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

type LXCMachineTemplate

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

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

LXCMachineTemplate is the Schema for the lxcmachinetemplates API.

func (*LXCMachineTemplate) DeepCopy

func (in *LXCMachineTemplate) DeepCopy() *LXCMachineTemplate

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

func (*LXCMachineTemplate) DeepCopyInto

func (in *LXCMachineTemplate) DeepCopyInto(out *LXCMachineTemplate)

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

func (*LXCMachineTemplate) DeepCopyObject

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

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

type LXCMachineTemplateList

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

LXCMachineTemplateList contains a list of LXCMachineTemplate.

func (*LXCMachineTemplateList) DeepCopy

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

func (*LXCMachineTemplateList) DeepCopyInto

func (in *LXCMachineTemplateList) DeepCopyInto(out *LXCMachineTemplateList)

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

func (*LXCMachineTemplateList) DeepCopyObject

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

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

type LXCMachineTemplateResource

type LXCMachineTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"`
	// Spec is the specification of the desired behavior of the machine.
	Spec LXCMachineSpec `json:"spec"`
}

LXCMachineTemplateResource describes the data needed to create a LXCMachine from a template.

func (*LXCMachineTemplateResource) DeepCopy

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

func (*LXCMachineTemplateResource) DeepCopyInto

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

type LXCMachineTemplateSpec

type LXCMachineTemplateSpec struct {
	Template LXCMachineTemplateResource `json:"template"`
}

LXCMachineTemplateSpec defines the desired state of LXCMachineTemplate.

func (*LXCMachineTemplateSpec) DeepCopy

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

func (*LXCMachineTemplateSpec) DeepCopyInto

func (in *LXCMachineTemplateSpec) DeepCopyInto(out *LXCMachineTemplateSpec)

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

type LXCMachineV1Beta2Status

type LXCMachineV1Beta2Status struct {
	// conditions represents the observations of a LXCMachine's current state.
	// Known condition types are Ready, InstanceProvisioned, Deleting, Paused.
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=32
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

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

func (*LXCMachineV1Beta2Status) DeepCopy

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

func (*LXCMachineV1Beta2Status) DeepCopyInto

func (in *LXCMachineV1Beta2Status) DeepCopyInto(out *LXCMachineV1Beta2Status)

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

type SecretRef

type SecretRef struct {
	// Name is the name of the secret to use. The secret must already exist in the same namespace as the parent object.
	Name string `json:"name"`
}

SecretRef is a reference to a secret in the cluster.

func (*SecretRef) DeepCopy

func (in *SecretRef) DeepCopy() *SecretRef

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

func (*SecretRef) DeepCopyInto

func (in *SecretRef) DeepCopyInto(out *SecretRef)

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