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
- Variables
- type LXCCluster
- func (in *LXCCluster) DeepCopy() *LXCCluster
- func (in *LXCCluster) DeepCopyInto(out *LXCCluster)
- func (in *LXCCluster) DeepCopyObject() runtime.Object
- func (c *LXCCluster) GetConditions() clusterv1.Conditions
- func (c *LXCCluster) GetLXCSecretNamespacedName() types.NamespacedName
- func (c *LXCCluster) GetLoadBalancerInstanceName() string
- func (c *LXCCluster) GetV1Beta2Conditions() []metav1.Condition
- func (c *LXCCluster) SetConditions(conditions clusterv1.Conditions)
- func (c *LXCCluster) SetV1Beta2Conditions(conditions []metav1.Condition)
- type LXCClusterList
- type LXCClusterLoadBalancer
- type LXCClusterSpec
- type LXCClusterStatus
- type LXCClusterTemplate
- type LXCClusterTemplateList
- type LXCClusterTemplateResource
- type LXCClusterTemplateSpec
- type LXCClusterV1Beta2Status
- type LXCLoadBalancerExternal
- type LXCLoadBalancerInstance
- type LXCLoadBalancerMachineSpec
- type LXCLoadBalancerOVN
- type LXCMachine
- func (in *LXCMachine) DeepCopy() *LXCMachine
- func (in *LXCMachine) DeepCopyInto(out *LXCMachine)
- func (in *LXCMachine) DeepCopyObject() runtime.Object
- func (c *LXCMachine) GetConditions() clusterv1.Conditions
- func (c *LXCMachine) GetExpectedProviderID() string
- func (c *LXCMachine) GetInstanceName() string
- func (c *LXCMachine) GetV1Beta2Conditions() []metav1.Condition
- func (c *LXCMachine) SetConditions(conditions clusterv1.Conditions)
- func (c *LXCMachine) SetV1Beta2Conditions(conditions []metav1.Condition)
- type LXCMachineImageSource
- type LXCMachineList
- type LXCMachineSpec
- type LXCMachineStatus
- type LXCMachineTemplate
- type LXCMachineTemplateList
- type LXCMachineTemplateResource
- type LXCMachineTemplateSpec
- type LXCMachineV1Beta2Status
- type SecretRef
Constants ¶
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" )
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" )
const ( // ClusterFinalizer allows LXCClusterReconciler to clean up resources associated with LXCCluster before // removing it from the apiserver. ClusterFinalizer = "lxccluster.infrastructure.cluster.x-k8s.io" )
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 ¶
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 ¶
func (in *LXCClusterLoadBalancer) DeepCopy() *LXCClusterLoadBalancer
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 ¶
func (in *LXCClusterTemplateList) DeepCopy() *LXCClusterTemplateList
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 ¶
func (in *LXCClusterTemplateResource) DeepCopy() *LXCClusterTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LXCClusterTemplateResource.
func (*LXCClusterTemplateResource) DeepCopyInto ¶
func (in *LXCClusterTemplateResource) DeepCopyInto(out *LXCClusterTemplateResource)
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 ¶
func (in *LXCClusterTemplateSpec) DeepCopy() *LXCClusterTemplateSpec
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 ¶
func (in *LXCClusterV1Beta2Status) DeepCopy() *LXCClusterV1Beta2Status
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 ¶
func (in *LXCLoadBalancerExternal) DeepCopy() *LXCLoadBalancerExternal
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 ¶
func (in *LXCLoadBalancerInstance) DeepCopy() *LXCLoadBalancerInstance
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 ¶
func (in *LXCLoadBalancerMachineSpec) DeepCopy() *LXCLoadBalancerMachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LXCLoadBalancerMachineSpec.
func (*LXCLoadBalancerMachineSpec) DeepCopyInto ¶
func (in *LXCLoadBalancerMachineSpec) DeepCopyInto(out *LXCLoadBalancerMachineSpec)
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 ¶
func (in *LXCMachineImageSource) DeepCopy() *LXCMachineImageSource
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 ¶
func (in *LXCMachineTemplateList) DeepCopy() *LXCMachineTemplateList
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 ¶
func (in *LXCMachineTemplateResource) DeepCopy() *LXCMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LXCMachineTemplateResource.
func (*LXCMachineTemplateResource) DeepCopyInto ¶
func (in *LXCMachineTemplateResource) DeepCopyInto(out *LXCMachineTemplateResource)
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 ¶
func (in *LXCMachineTemplateSpec) DeepCopy() *LXCMachineTemplateSpec
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 ¶
func (in *LXCMachineV1Beta2Status) DeepCopy() *LXCMachineV1Beta2Status
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.
func (*SecretRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.