infrastructure.cluster.x-k8s.io/v1alpha2
package v1alpha2 contains API Schema definitions for the infrastructure v1alpha2 API group
Resource Types:Devices
([]string alias)
(Appears on: LXCMachineSpec)
LXCCluster
LXCCluster is the Schema for the lxcclusters API.
| Field | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||
specLXCClusterSpec |
|
||||||||||
statusLXCClusterStatus |
LXCClusterLoadBalancer
(Appears on: LXCClusterSpec)
LXCClusterLoadBalancer is configuration for provisioning the load balancer of the cluster.
| Field | Description |
|---|---|
lxcLXCLoadBalancerInstance |
(Optional)
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. |
ociLXCLoadBalancerInstance |
(Optional)
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: |
ovnLXCLoadBalancerOVN |
(Optional)
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 Requires server extensions: |
kubeVIPLXCLoadBalancerKubeVIP |
(Optional)
KubeVIP will configure kube-vip on the control plane instances. When using kube-vip, the controller will automatically inject /etc/kubernetes/manifests/kube-vip.yaml into all control plane nodes of the cluster. When using the “kube-vip” mode, the load balancer address must be set in |
externalLXCLoadBalancerExternal |
(Optional)
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 |
LXCClusterSpec
(Appears on: LXCCluster, LXCClusterTemplateResource)
LXCClusterSpec defines the desired state of LXCCluster.
| Field | Description |
|---|---|
controlPlaneEndpointsigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint |
ControlPlaneEndpoint represents the endpoint to communicate with the control plane. |
secretRefSecretRef |
SecretRef references a secret with credentials to access the LXC (e.g. Incus, LXD) server. |
loadBalancerLXCClusterLoadBalancer |
LoadBalancer is configuration for provisioning the load balancer of the cluster. |
unprivilegedbool |
(Optional)
Unprivileged will launch unprivileged LXC containers for the cluster machines. Known limitations apply for unprivileged LXC containers (e.g. cannot use NFS volumes). |
skipDefaultKubeadmProfilebool |
(Optional)
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 For more details on the default kubeadm profile that is applied, see https://capn.linuxcontainers.org/reference/profile/kubeadm.html |
LXCClusterStatus
(Appears on: LXCCluster)
LXCClusterStatus defines the observed state of LXCCluster.
| Field | Description |
|---|---|
readybool |
(Optional)
Ready denotes that the LXC cluster (infrastructure) is ready. |
conditionssigs.k8s.io/cluster-api/api/v1beta1.Conditions |
(Optional)
Conditions defines current service state of the LXCCluster. |
v1beta2LXCClusterV1Beta2Status |
(Optional)
V1Beta2 groups all status fields that will be added in LXCCluster’s status with the v1beta2 version. |
LXCClusterTemplate
LXCClusterTemplate is the Schema for the lxcclustertemplates API.
| Field | Description | ||
|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||
specLXCClusterTemplateSpec |
|
LXCClusterTemplateResource
(Appears on: LXCClusterTemplateSpec)
LXCClusterTemplateResource describes the data needed to create a LXCCluster from a template.
| Field | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
metadatasigs.k8s.io/cluster-api/api/v1beta1.ObjectMeta |
(Optional)
Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Refer to the Kubernetes API documentation for the fields of themetadata field.
|
||||||||||
specLXCClusterSpec |
|
LXCClusterTemplateSpec
(Appears on: LXCClusterTemplate)
LXCClusterTemplateSpec defines the desired state of LXCClusterTemplate.
| Field | Description |
|---|---|
templateLXCClusterTemplateResource |
LXCClusterV1Beta2Status
(Appears on: LXCClusterStatus)
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.
| Field | Description |
|---|---|
conditions[]Kubernetes meta/v1.Condition |
(Optional)
conditions represents the observations of a LXCCluster’s current state. Known condition types are Ready, LoadBalancerAvailable, Deleting, Paused. |
LXCLoadBalancerExternal
(Appears on: LXCClusterLoadBalancer)
LXCLoadBalancerInstance
(Appears on: LXCClusterLoadBalancer)
| Field | Description |
|---|---|
instanceSpecLXCLoadBalancerMachineSpec |
(Optional)
InstanceSpec can be used to adjust the load balancer instance configuration. |
customHAProxyConfigTemplatestring |
(Optional)
CustomHAProxyConfigTemplate allows you to replace the default HAProxy config file content. Please use it with caution, as there are no checks to ensure the validity of the configuration. |
LXCLoadBalancerKubeVIP
(Appears on: LXCClusterLoadBalancer)
| Field | Description |
|---|---|
imagestring |
(Optional)
Image is the kube-vip image to use. If not set, this is ghcr.io/kube-vip/kube-vip:v0.6.4 |
interfacestring |
(Optional)
Interface is the name of the interface where the VIP will be configured. If not set, the default interface is used. |
kubeconfigPathstring |
(Optional)
KubeconfigPath is the kubeconfig host path to use for kube-vip. If not set, this is: - /etc/kubernetes/super-admin.conf for the bootstrap control plane node (see https://github.com/kube-vip/kube-vip/issues/684#issuecomment-1883955927) - /etc/kubernetes/admin.conf for the rest of the control plane nodes KubeconfigPath is useful when not using the kubeadm bootstrap provider. |
manifestPathstring |
(Optional)
ManifestPath is the path on the host where the kube-vip static pod manifest will be created. If not set, this is /etc/kubernetes/manifests/kube-vip.yaml ManifestPath is useful when not using the kubeadm bootstrap provider. |
LXCLoadBalancerMachineSpec
(Appears on: LXCLoadBalancerInstance)
LXCLoadBalancerMachineSpec is configuration for the container that will host the cluster load balancer, when using the “lxc” or “oci” load balancer type.
| Field | Description |
|---|---|
flavorstring |
(Optional)
Flavor is configuration for the instance size (e.g. t3.micro, or c2-m4). Examples:
|
profiles[]string |
(Optional)
Profiles is a list of profiles to attach to the instance. |
imageLXCMachineImageSource |
(Optional)
Image to use for provisioning the load balancer machine. If not set, a default image based on the load balancer type will be used.
|
targetstring |
(Optional)
Target where the load balancer machine should be provisioned, when infrastructure is a production cluster. Can be one of:
Target is ignored when infrastructure is single-node (e.g. for development purposes). For more information on cluster groups, you can refer to https://linuxcontainers.org/incus/docs/main/explanation/clustering/#cluster-groups |
LXCLoadBalancerOVN
(Appears on: LXCClusterLoadBalancer)
| Field | Description |
|---|---|
networkNamestring |
NetworkName is the name of the network to create the load balancer. |
LXCMachine
LXCMachine is the Schema for the lxcmachines API.
| Field | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||||||||
specLXCMachineSpec |
|
||||||||||||||||
statusLXCMachineStatus |
LXCMachineImageSource
(Appears on: LXCLoadBalancerMachineSpec, LXCMachineSpec)
| Field | Description |
|---|---|
namestring |
(Optional)
Name is the image name or alias. Note that Incus and Canonical LXD use incompatible image servers. To help mitigate this issue, the following image names are recognized: For Incus:
For LXD:
Any instances of |
fingerprintstring |
(Optional)
Fingerprint is the image fingerprint. |
serverstring |
(Optional)
Server is the remote server, e.g. “https://images.linuxcontainers.org” |
protocolstring |
(Optional)
Protocol is the protocol to use for fetching the image, e.g. “simplestreams”. |
LXCMachineSpec
(Appears on: LXCMachine, LXCMachineTemplateResource)
LXCMachineSpec defines the desired state of LXCMachine.
| Field | Description |
|---|---|
providerIDstring |
(Optional)
ProviderID is the container name in ProviderID format (lxc:/// |
instanceTypestring |
(Optional)
InstanceType is InstanceType may also be set to |
flavorstring |
(Optional)
Flavor is configuration for the instance size (e.g. t3.micro, or c2-m4). Examples:
|
profiles[]string |
(Optional)
Profiles is a list of profiles to attach to the instance. |
devicesDevices |
(Optional)
Devices allows overriding the configuration of the instance disk or network. Device configuration must be formatted using the syntax “ For example, to specify a different network for an instance, you can use:
|
configmap[string]string |
(Optional)
Config allows overriding instance configuration keys. Note that the provider will always set the following configuration keys:
See https://linuxcontainers.org/incus/docs/main/reference/instance_options/#instance-options for details. |
imageLXCMachineImageSource |
(Optional)
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. |
targetstring |
(Optional)
Target where the machine should be provisioned, when infrastructure is a production cluster. Can be one of:
Target is ignored when infrastructure is single-node (e.g. for development purposes). For more information on cluster groups, you can refer to https://linuxcontainers.org/incus/docs/main/explanation/clustering/#cluster-groups |
LXCMachineStatus
(Appears on: LXCMachine)
LXCMachineStatus defines the observed state of LXCMachine.
| Field | Description |
|---|---|
readybool |
(Optional)
Ready denotes that the LXC machine is ready. |
loadBalancerConfiguredbool |
(Optional)
LoadBalancerConfigured will be set to true once for each control plane node, after the load balancer instance is reconfigured. |
addresses[]sigs.k8s.io/cluster-api/api/v1beta1.MachineAddress |
(Optional)
Addresses is the list of addresses of the LXC machine. |
conditionssigs.k8s.io/cluster-api/api/v1beta1.Conditions |
(Optional)
Conditions defines current service state of the LXCMachine. |
v1beta2LXCMachineV1Beta2Status |
(Optional)
V1Beta2 groups all status fields that will be added in LXCMachine’s status with the v1beta2 version. |
LXCMachineTemplate
LXCMachineTemplate is the Schema for the lxcmachinetemplates API.
| Field | Description | ||
|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||
specLXCMachineTemplateSpec |
|
LXCMachineTemplateResource
(Appears on: LXCMachineTemplateSpec)
LXCMachineTemplateResource describes the data needed to create a LXCMachine from a template.
| Field | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
metadatasigs.k8s.io/cluster-api/api/v1beta1.ObjectMeta |
(Optional)
Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata Refer to the Kubernetes API documentation for the fields of themetadata field.
|
||||||||||||||||
specLXCMachineSpec |
Spec is the specification of the desired behavior of the machine.
|
LXCMachineTemplateSpec
(Appears on: LXCMachineTemplate)
LXCMachineTemplateSpec defines the desired state of LXCMachineTemplate.
| Field | Description |
|---|---|
templateLXCMachineTemplateResource |
LXCMachineV1Beta2Status
(Appears on: LXCMachineStatus)
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.
| Field | Description |
|---|---|
conditions[]Kubernetes meta/v1.Condition |
(Optional)
conditions represents the observations of a LXCMachine’s current state. Known condition types are Ready, InstanceProvisioned, Deleting, Paused. |
SecretRef
(Appears on: LXCClusterSpec)
SecretRef is a reference to a secret in the cluster.
| Field | Description |
|---|---|
namestring |
Name is the name of the secret to use. The secret must already exist in the same namespace as the parent object. |
Generated with gen-crd-api-reference-docs.