Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=unbounded-cloud.io
Index ¶
- Constants
- Variables
- func ComponentEnabled(component *SiteComponentSpec) bool
- func MachineConfigurationVersionName(configurationName string, version int32) string
- func Resource(resource string) schema.GroupResource
- type AgentDownloadsSpec
- type AgentSpec
- type AgentStatus
- type AzureHostSpec
- type BastionSSHSpec
- type CloudInitSpec
- type ConfigMapKeySelector
- type DHCPLease
- type DownloadSource
- type ExternalHostSpec
- type GantryComponentSpec
- type HostSpec
- type KubernetesSpec
- type LocalDNSSpec
- type LocalObjectReference
- type MachinaComponentSpec
- type Machine
- type MachineConfiguration
- type MachineConfigurationAgent
- type MachineConfigurationHostSpec
- type MachineConfigurationKubernetes
- type MachineConfigurationList
- type MachineConfigurationRef
- type MachineConfigurationRefStatus
- type MachineConfigurationSpec
- type MachineConfigurationStatus
- type MachineConfigurationTemplate
- type MachineConfigurationUpdateStrategy
- type MachineConfigurationUpdateStrategyType
- type MachineConfigurationVersion
- type MachineConfigurationVersionList
- type MachineConfigurationVersionSpec
- type MachineConfigurationVersionStatus
- type MachineList
- type MachineOperation
- type MachineOperationCredential
- type MachineOperationCredentialAuth
- type MachineOperationCredentialAuthMode
- type MachineOperationCredentialList
- type MachineOperationCredentialSpec
- type MachineOperationList
- type MachineOperationSpec
- type MachineOperationStatus
- type MachineOperationTargetInput
- type MachineOperationTargetStatus
- type MachinePhase
- type MachineSpec
- type MachineStatus
- type MetalmanComponentSpec
- type NamespacedSecretReference
- type OperationKind
- type OperationPhase
- type OperationStage
- type OverriddenWorkload
- type OverrideStatus
- type PXESpec
- type ProviderMachineReference
- type ProviderMachineSnapshot
- type ProviderOperationStatus
- type RedfishSpec
- type RedfishStatus
- type SSHSpec
- type SSHStatus
- type SecretKeySelector
- type Site
- type SiteComponentSpec
- type SiteComponents
- type SiteList
- type SiteSpec
- type SiteStatus
- type StorageComponentSpec
- type TPMStatus
Constants ¶
const ( // MachineConditionProvisioned indicates that the machine has been // successfully provisioned. The observedGeneration field on the // condition tracks which generation of the Machine spec was // provisioned. MachineConditionProvisioned = "Provisioned" // MachineConditionSSHReachable indicates whether the machine is // reachable via SSH. The lastTransitionTime and message fields are // updated on probe results. MachineConditionSSHReachable = "SSHReachable" // MachineConditionProvisioning indicates that the machine is // currently being provisioned. The lastTransitionTime records when // provisioning started, which is used to detect stale provisioning // attempts (e.g. after a controller restart). MachineConditionProvisioning = "Provisioning" // MachineConditionAgentBootstrapped indicates whether the unbounded // agent completed initial node bootstrap. Status is False with Reason // "Running" while the agent is preparing the nspawn node, False with // a failure reason when nspawn startup or kubelet TLS bootstrap fails, // and True with Reason "Succeeded" once the kubelet has bootstrapped. MachineConditionAgentBootstrapped = "AgentBootstrapped" // MachineConditionNodeUpdated indicates the result of a node // update performed by the agent daemon. Status is True with // Reason "Succeeded" after a successful update, and False with // Reason "Failed" when the update fails. While the update is in // progress the status is False with Reason "InProgress". MachineConditionNodeUpdated = "NodeUpdated" // MachineConditionConfigurationPending indicates that no // MachineConfiguration has been assigned to this Machine, either // directly via configurationRef or through a machineSelector // match. The Machine remains in a waiting state until a // configuration is assigned. MachineConditionConfigurationPending = "ConfigurationPending" // MachineConditionRepavePending indicates that the Machine's desired // configuration version has not yet been applied to the running Node. // For OnDelete updates this remains True until the operator deletes // the Node and the agent repaves with the desired version. MachineConditionRepavePending = "RepavePending" )
Condition types for Machine.
const ( // AnnotationProvider associates a Machine with a provider's // controller for reboot/repave operations. AnnotationProvider = "unbounded-cloud.io/provider" // AnnotationConfigurationVersion is set on the Kubernetes Node // object to record which MachineConfigurationVersion was used to // bootstrap the machine. AnnotationConfigurationVersion = "unbounded-cloud.io/machine-configuration-version" )
Annotation keys.
const ( ExternalProviderAzureVM = "AzureVM" ExternalProviderOCIInstance = "OCIInstance" )
External provider names.
const ( // PXEBootProtocolPXE uses DHCP/TFTP PXE boot. PXEBootProtocolPXE = "PXE" // PXEBootProtocolHTTP uses Redfish UEFI HTTP boot. PXEBootProtocolHTTP = "HTTP" // PXEArchitectureAMD64 is the x86_64 target architecture for PXE boot. PXEArchitectureAMD64 = "amd64" // PXEArchitectureARM64 is the aarch64 target architecture for PXE boot. PXEArchitectureARM64 = "arm64" // DefaultPXEArchitecture is used when host.netboot.architecture is omitted. DefaultPXEArchitecture = PXEArchitectureAMD64 // DefaultPXEBootProtocol is used when host.netboot.bootProtocol is omitted. DefaultPXEBootProtocol = PXEBootProtocolPXE )
const ( // MCVConfigurationLabelKey identifies the parent MachineConfiguration. MCVConfigurationLabelKey = "unbounded-cloud.io/machine-configuration" // MCVVersionLabelKey stores the version number as a label for // efficient selection. MCVVersionLabelKey = "unbounded-cloud.io/machine-configuration-version" )
Label keys set on MachineConfigurationVersion objects.
const ( // MachineOperationConditionCompleted indicates whether the operation has // reached a terminal state. MachineOperationConditionCompleted = "Completed" // MachineOperationConditionBootLoaderDownloaded indicates that a metalman // target has downloaded the initial PXE boot loader for the operation. // Once set to True for an operation, it remains latched. MachineOperationConditionBootLoaderDownloaded = "BootLoaderDownloaded" // MachineOperationConditionBootImageWritten indicates that a metalman // target has booted the PXE installer and written the boot image to disk. MachineOperationConditionBootImageWritten = "BootImageWritten" // MachineOperationConditionCloudInitDone indicates that a metalman PXE // target has completed first-boot cloud-init after writing the boot image. MachineOperationConditionCloudInitDone = "CloudInitDone" // MachineOperationConditionProviderOperationStalled reports that an // accepted external provider operation has exceeded its expected duration. MachineOperationConditionProviderOperationStalled = "ProviderOperationStalled" )
Condition types for MachineOperation.
const ( // OverridePhaseNone means no override resolves to any workload for the Site. OverridePhaseNone = "None" // OverridePhaseApplied means every resolved workload carries the hash that // was desired. It reports that the merge was written, not that the pods are // healthy. OverridePhaseApplied = "Applied" // OverridePhaseDegraded means the document could not be used, a workload // failed, or an applied hash differs from the desired one. OverridePhaseDegraded = "Degraded" )
Override phases reported in OverrideStatus.Phase.
These are deliberately not declared as a schema enum. The operator is the only writer and the values come from these constants, so validation could only catch a bug the compiler already prevents. What it would add is a failure mode: a newer operator writing a value an older CRD's enum does not list has its whole status patch rejected, taking every condition on the Site with it, where an unrecognised value would otherwise simply be pruned. Every enum elsewhere in this API is on a spec field, where the input is user-supplied and rejecting it is the point.
const ( // OverrideStateApplied means the merged workload was written and carries // the hash that was desired. OverrideStateApplied = "Applied" // OverrideStatePending means the write was deferred to the next pass // because the cluster moved under this one. Nothing is wrong and no action // is needed. OverrideStatePending = "Pending" // OverrideStateWithheld means the operator declined to write the workload // because an override that could have shaped it could not be used. The // running workload is untouched, which is the point. OverrideStateWithheld = "Withheld" // OverrideStateFailed means the override could not be resolved, merged, or // written. OverrideStateFailed = "Failed" )
Override states reported in OverriddenWorkload.State. See the note above on why these are not a schema enum either.
const ( // MachineOperationTargetConditionRedfishDisableBootOverrideUnsupported // indicates that metalman determined the target BMC does not support // disabling the Redfish boot override. When True, metalman falls back to // setting Hdd/Continuous for this target within this operation only. MachineOperationTargetConditionRedfishDisableBootOverrideUnsupported = "RedfishDisableBootOverrideUnsupported" )
Condition types for MachineOperation targets.
const ( // MachineSiteLabelKey is the canonical site-membership label. It scopes a // Machine to a site and is also the canonical label the net controller // applies to Nodes, superseding the deprecated net.unbounded-cloud.io/site. MachineSiteLabelKey = "unbounded-cloud.io/site" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "unbounded-cloud.io", Version: "v1alpha3"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &runtime.SchemeBuilder{} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func ComponentEnabled ¶ added in v0.1.23
func ComponentEnabled(component *SiteComponentSpec) bool
ComponentEnabled reports whether a component spec enables a component. Components default to disabled unless explicitly enabled.
func MachineConfigurationVersionName ¶ added in v0.1.4
MachineConfigurationVersionName returns the canonical name for a MachineConfigurationVersion child object.
func Resource ¶ added in v0.1.23
func Resource(resource string) schema.GroupResource
Resource returns a GroupResource for this API group.
Types ¶
type AgentDownloadsSpec ¶ added in v0.1.3
type AgentDownloadsSpec struct {
// Kubernetes overrides the download source for kubelet/kubectl/kube-proxy
// (upstream default: https://dl.k8s.io).
// +optional
Kubernetes *DownloadSource `json:"kubernetes,omitempty"`
// Containerd overrides the download source for containerd
// (upstream default: https://github.com/containerd/containerd).
// +optional
Containerd *DownloadSource `json:"containerd,omitempty"`
// Runc overrides the download source for runc
// (upstream default: https://github.com/opencontainers/runc).
// +optional
Runc *DownloadSource `json:"runc,omitempty"`
// CNI overrides the download source for CNI plugins
// (upstream default: https://github.com/containernetworking/plugins).
// +optional
CNI *DownloadSource `json:"cni,omitempty"`
// Crictl overrides the download source for crictl
// (upstream default: https://github.com/kubernetes-sigs/cri-tools).
// +optional
Crictl *DownloadSource `json:"crictl,omitempty"`
// CoreDNS overrides the download source for CoreDNS.
// +optional
CoreDNS *DownloadSource `json:"coreDNS,omitempty"`
}
AgentDownloadsSpec overrides the download sources for the artifacts the agent installs into the nspawn rootfs. Each entry is optional; unset entries fall back to the upstream defaults.
func (*AgentDownloadsSpec) DeepCopy ¶ added in v0.1.3
func (in *AgentDownloadsSpec) DeepCopy() *AgentDownloadsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentDownloadsSpec.
func (*AgentDownloadsSpec) DeepCopyInto ¶ added in v0.1.3
func (in *AgentDownloadsSpec) DeepCopyInto(out *AgentDownloadsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentSpec ¶
type AgentSpec struct {
// Image is the OCI image reference used for provisioning the
// nspawn machine (e.g. "ghcr.io/org/repo:tag"). When empty the
// agent falls back to its built-in default image.
// +optional
Image string `json:"image,omitempty"`
// Version pins the unbounded-agent release tag that is downloaded
// onto the host (e.g. "v0.0.10"). When empty the install script
// tracks the latest published release.
// +optional
Version string `json:"version,omitempty"`
// BaseURL overrides the base URL used to construct the
// unbounded-agent download URL. Defaults to the upstream GitHub
// releases URL. The layout under BaseURL must match the GitHub
// releases layout (<base>/latest/download/<asset> and
// <base>/download/<tag>/<asset>).
// +optional
BaseURL string `json:"baseURL,omitempty"`
// URL is a fully qualified download URL for the unbounded-agent
// tarball. When set it overrides Version and BaseURL entirely.
// +optional
URL string `json:"url,omitempty"`
// Downloads overrides the download sources for the binaries the
// agent installs into the nspawn rootfs (kubelet, containerd, runc,
// CNI plugins, crictl). When unset the agent downloads each
// artifact from its upstream default host.
// +optional
Downloads *AgentDownloadsSpec `json:"downloads,omitempty"`
// LocalDNS configures the optional CoreDNS cache inside the nspawn machine.
// +optional
LocalDNS *LocalDNSSpec `json:"localDNS,omitempty"`
}
AgentSpec defines settings for the unbounded node agent.
func (*AgentSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentSpec.
func (*AgentSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentStatus ¶
type AgentStatus struct {
// Image is the OCI image reference that was applied to the
// nspawn machine.
Image string `json:"image,omitempty"`
}
AgentStatus holds the applied agent settings for the machine.
func (*AgentStatus) DeepCopy ¶
func (in *AgentStatus) DeepCopy() *AgentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentStatus.
func (*AgentStatus) DeepCopyInto ¶
func (in *AgentStatus) DeepCopyInto(out *AgentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AzureHostSpec ¶ added in v0.1.23
type AzureHostSpec struct {
// ResourceID is the full Azure Resource Manager ID of the virtual machine.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
ResourceID string `json:"resourceID"`
}
AzureHostSpec identifies one Azure virtual machine. +kubebuilder:validation:XValidation:rule="self.resourceID == oldSelf.resourceID",message="resourceID is immutable"
func (*AzureHostSpec) DeepCopy ¶ added in v0.1.23
func (in *AzureHostSpec) DeepCopy() *AzureHostSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureHostSpec.
func (*AzureHostSpec) DeepCopyInto ¶ added in v0.1.23
func (in *AzureHostSpec) DeepCopyInto(out *AzureHostSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BastionSSHSpec ¶
type BastionSSHSpec struct {
// Host is the hostname or IP address of the bastion, optionally
// including the port (e.g. "1.2.3.4:2222"). When the port is
// omitted, 22 is assumed.
// +kubebuilder:validation:Required
Host string `json:"host"`
// Username is the SSH username for the bastion.
// +kubebuilder:default=azureuser
Username string `json:"username,omitempty"`
// PrivateKeyRef references a secret containing the SSH private key
// for the bastion. If not specified, uses the same key as the
// parent SSHSpec.
// +optional
PrivateKeyRef *SecretKeySelector `json:"privateKeyRef,omitempty"`
}
BastionSSHSpec defines SSH connection details for a bastion host. It mirrors SSHSpec but omits the recursive Bastion field.
func (*BastionSSHSpec) DeepCopy ¶
func (in *BastionSSHSpec) DeepCopy() *BastionSSHSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BastionSSHSpec.
func (*BastionSSHSpec) DeepCopyInto ¶
func (in *BastionSSHSpec) DeepCopyInto(out *BastionSSHSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudInitSpec ¶
type CloudInitSpec struct {
// UserDataConfigMapRef references a ConfigMap containing custom
// cloud-init user-data. The referenced key (default "user-data")
// must contain a valid cloud-init configuration (e.g. a
// #cloud-config YAML document).
// +optional
UserDataConfigMapRef *ConfigMapKeySelector `json:"userDataConfigMapRef,omitempty"`
}
CloudInitSpec defines cloud-init customization for PXE-booted machines. Cloud-init merges vendor-data (managed by unbounded-kube) with user-data (managed by the cluster operator). This spec controls the user-data portion, allowing operators to configure SSH keys, install packages, and perform other host-level customization.
func (*CloudInitSpec) DeepCopy ¶
func (in *CloudInitSpec) DeepCopy() *CloudInitSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudInitSpec.
func (*CloudInitSpec) DeepCopyInto ¶
func (in *CloudInitSpec) DeepCopyInto(out *CloudInitSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapKeySelector ¶
type ConfigMapKeySelector struct {
// Name of the ConfigMap.
Name string `json:"name"`
// Namespace of the ConfigMap.
Namespace string `json:"namespace"`
// Key within the ConfigMap.
// +kubebuilder:default=user-data
Key string `json:"key,omitempty"`
}
ConfigMapKeySelector selects a key from a ConfigMap.
func (*ConfigMapKeySelector) DeepCopy ¶
func (in *ConfigMapKeySelector) DeepCopy() *ConfigMapKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapKeySelector.
func (*ConfigMapKeySelector) DeepCopyInto ¶
func (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DHCPLease ¶
type DHCPLease struct {
// IPv4 is the IP address to assign.
IPv4 string `json:"ipv4"`
// MAC is the MAC address of the network interface.
MAC string `json:"mac"`
// SubnetMask is the subnet mask for the lease.
SubnetMask string `json:"subnetMask"`
// Gateway is the default gateway.
Gateway string `json:"gateway"`
// DNS is a list of DNS server addresses.
// +optional
DNS []string `json:"dns,omitempty"`
}
DHCPLease defines static IPv4 provisioning network settings.
func (*DHCPLease) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DHCPLease.
func (*DHCPLease) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DownloadSource ¶ added in v0.1.3
type DownloadSource struct {
// BaseURL replaces the upstream host + path prefix used to
// construct the download URL. Version and arch substitution are
// preserved so mirrors need to publish assets under the same
// layout as the upstream project.
// +optional
BaseURL string `json:"baseURL,omitempty"`
// URL is a fully qualified download URL template. Version/arch
// substitution via fmt directives is preserved. When set it
// overrides BaseURL entirely.
// +optional
URL string `json:"url,omitempty"`
// Version overrides the version of the artifact that would
// otherwise be derived from the cluster Kubernetes version or the
// agent's compiled-in defaults.
// +optional
Version string `json:"version,omitempty"`
}
DownloadSource configures an override for a binary download source. Exactly one of URL or BaseURL should typically be set; when both are set URL wins. Version overrides the version that would otherwise be derived from the cluster Kubernetes version or agent defaults.
func (*DownloadSource) DeepCopy ¶ added in v0.1.3
func (in *DownloadSource) DeepCopy() *DownloadSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadSource.
func (*DownloadSource) DeepCopyInto ¶ added in v0.1.3
func (in *DownloadSource) DeepCopyInto(out *DownloadSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalHostSpec ¶ added in v0.1.23
type ExternalHostSpec struct {
// Provider selects the registered provider controller and its credentials.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Provider string `json:"provider"`
// ProviderID is an opaque provider-specific host identifier. Providers that
// replace the underlying resource may update it after a successful handoff.
// +optional
ProviderID string `json:"providerID,omitempty"`
// MachineRef identifies an optional provider-owned resource containing rich
// provider-specific state for this Machine.
// +optional
MachineRef *ProviderMachineReference `json:"machineRef,omitempty"`
}
ExternalHostSpec identifies a host owned by a registered external provider. +kubebuilder:validation:XValidation:rule="has(self.providerID) || has(self.machineRef)",message="providerID or machineRef is required" +kubebuilder:validation:XValidation:rule="has(self.machineRef) == has(oldSelf.machineRef) && (!has(self.machineRef) || self.machineRef == oldSelf.machineRef)",message="machineRef is immutable" +kubebuilder:validation:XValidation:rule="self.provider == oldSelf.provider",message="provider is immutable"
func (*ExternalHostSpec) DeepCopy ¶ added in v0.1.23
func (in *ExternalHostSpec) DeepCopy() *ExternalHostSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalHostSpec.
func (*ExternalHostSpec) DeepCopyInto ¶ added in v0.1.23
func (in *ExternalHostSpec) DeepCopyInto(out *ExternalHostSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GantryComponentSpec ¶ added in v0.2.0
type GantryComponentSpec struct {
SiteComponentSpec `json:",inline"`
}
GantryComponentSpec configures the gantry peer-to-peer OCI distribution agent for a site. Gantry is a cluster-wide singleton and, unlike the other components, defaults to enabled: it is reconciled unless a site explicitly sets enabled to false.
func (*GantryComponentSpec) DeepCopy ¶ added in v0.2.0
func (in *GantryComponentSpec) DeepCopy() *GantryComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GantryComponentSpec.
func (*GantryComponentSpec) DeepCopyInto ¶ added in v0.2.0
func (in *GantryComponentSpec) DeepCopyInto(out *GantryComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostSpec ¶ added in v0.1.23
type HostSpec struct {
// Image is an opaque provider-interpreted image identifier. If omitted,
// HostReplace preserves the host's current image.
// +optional
Image string `json:"image,omitempty"`
// Netboot contains the machine-specific network boot configuration owned by
// Metalman.
// +optional
Netboot *PXESpec `json:"netboot,omitempty"`
// Azure identifies an Azure VM managed by the built-in Azure provider.
// +optional
Azure *AzureHostSpec `json:"azure,omitempty"`
// External identifies a host managed by a registered external provider.
// +optional
External *ExternalHostSpec `json:"external,omitempty"`
}
HostSpec contains desired host settings and its mutually exclusive owner. +kubebuilder:validation:XValidation:rule="(has(self.netboot) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.external) ? 1 : 0) <= 1",message="at most one of netboot, azure, or external may be set" +kubebuilder:validation:XValidation:rule="!has(oldSelf.netboot) || has(self.netboot)",message="netboot host ownership is immutable once set" +kubebuilder:validation:XValidation:rule="!has(oldSelf.azure) || has(self.azure)",message="azure host ownership is immutable once set" +kubebuilder:validation:XValidation:rule="!has(oldSelf.external) || has(self.external)",message="external host ownership is immutable once set"
func (*HostSpec) DeepCopy ¶ added in v0.1.23
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostSpec.
func (*HostSpec) DeepCopyInto ¶ added in v0.1.23
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesSpec ¶
type KubernetesSpec struct {
// Version is the Kubernetes version to install (e.g., "v1.34.0").
// When omitted the controller falls back to the cluster's
// Kubernetes version.
// +optional
Version string `json:"version,omitempty"`
// NodeRef references the Node that corresponds to this Machine.
// +optional
NodeRef *LocalObjectReference `json:"nodeRef,omitempty"`
// NodeLabels are labels passed to kubelet's --node-labels flag.
// +optional
NodeLabels map[string]string `json:"nodeLabels,omitempty"`
// RegisterWithTaints are taints passed to kubelet's --register-with-taints flag.
// Each entry uses the standard Kubernetes taint format: key=value:Effect.
// +optional
RegisterWithTaints []string `json:"registerWithTaints,omitempty"`
// BootstrapTokenRef references a bootstrap token Secret in
// kube-system. The secret must be of type
// bootstrap.kubernetes.io/token with the well-known keys
// "token-id" and "token-secret".
// +optional
BootstrapTokenRef *LocalObjectReference `json:"bootstrapTokenRef,omitempty"`
}
KubernetesSpec defines Kubernetes-specific configuration for a Machine.
func (*KubernetesSpec) DeepCopy ¶
func (in *KubernetesSpec) DeepCopy() *KubernetesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesSpec.
func (*KubernetesSpec) DeepCopyInto ¶
func (in *KubernetesSpec) DeepCopyInto(out *KubernetesSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalDNSSpec ¶ added in v0.2.3
type LocalDNSSpec struct {
// +optional
Enabled bool `json:"enabled,omitempty"`
// +optional
NodeListenerIP string `json:"nodeListenerIP,omitempty"`
// +optional
ClusterListenerIP string `json:"clusterListenerIP,omitempty"`
// +optional
MetricsAddress string `json:"metricsAddress,omitempty"`
// +optional
CPULimitInMilliCores *int32 `json:"cpuLimitInMilliCores,omitempty"`
// +optional
MemoryLimitInMB *int32 `json:"memoryLimitInMB,omitempty"`
// +optional
RequiredPlugins []string `json:"requiredPlugins,omitempty"`
// +optional
CorefileTemplate string `json:"corefileTemplate,omitempty"`
}
LocalDNSSpec configures machine-local CoreDNS.
func (*LocalDNSSpec) DeepCopy ¶ added in v0.2.3
func (in *LocalDNSSpec) DeepCopy() *LocalDNSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalDNSSpec.
func (*LocalDNSSpec) DeepCopyInto ¶ added in v0.2.3
func (in *LocalDNSSpec) DeepCopyInto(out *LocalDNSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalObjectReference ¶
type LocalObjectReference struct {
// Name of the referenced resource.
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
}
LocalObjectReference contains enough information to locate the referenced resource.
func (*LocalObjectReference) DeepCopy ¶
func (in *LocalObjectReference) DeepCopy() *LocalObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
func (*LocalObjectReference) DeepCopyInto ¶
func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachinaComponentSpec ¶ added in v0.1.23
type MachinaComponentSpec struct {
SiteComponentSpec `json:",inline"`
}
MachinaComponentSpec configures the machina controller for a site.
func (*MachinaComponentSpec) DeepCopy ¶ added in v0.1.23
func (in *MachinaComponentSpec) DeepCopy() *MachinaComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachinaComponentSpec.
func (*MachinaComponentSpec) DeepCopyInto ¶ added in v0.1.23
func (in *MachinaComponentSpec) DeepCopyInto(out *MachinaComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Machine ¶
type Machine struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MachineSpec `json:"spec,omitempty"`
Status MachineStatus `json:"status,omitempty"`
}
Machine represents a machine that can be managed by machina.
func (*Machine) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Machine.
func (*Machine) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Machine) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineConfiguration ¶ added in v0.1.4
type MachineConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MachineConfigurationSpec `json:"spec,omitempty"`
Status MachineConfigurationStatus `json:"status,omitempty"`
}
MachineConfiguration stores a configuration profile for a class of machines. It acts like a Deployment: edits to the spec automatically create or update a child MachineConfigurationVersion, similar to how Deployment edits create or update ReplicaSets.
func (*MachineConfiguration) DeepCopy ¶ added in v0.1.4
func (in *MachineConfiguration) DeepCopy() *MachineConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfiguration.
func (*MachineConfiguration) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfiguration) DeepCopyInto(out *MachineConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfiguration) DeepCopyObject ¶ added in v0.1.4
func (in *MachineConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineConfigurationAgent ¶ added in v0.1.4
type MachineConfigurationAgent struct {
// Image is the OCI image reference used for provisioning the
// nspawn machine (e.g. "ghcr.io/org/repo:tag").
// +kubebuilder:validation:Required
Image string `json:"image"`
// LocalDNS configures the optional CoreDNS cache for this version.
// +optional
LocalDNS *LocalDNSSpec `json:"localDNS,omitempty"`
}
MachineConfigurationAgent holds agent-specific fields that are part of the versioned configuration.
func (*MachineConfigurationAgent) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationAgent) DeepCopy() *MachineConfigurationAgent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationAgent.
func (*MachineConfigurationAgent) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationAgent) DeepCopyInto(out *MachineConfigurationAgent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationHostSpec ¶ added in v0.1.23
type MachineConfigurationHostSpec struct {
// Image is an opaque provider-interpreted image identifier.
// +optional
Image string `json:"image,omitempty"`
}
MachineConfigurationHostSpec contains versioned, provider-neutral host settings. Per-machine host ownership belongs on Machine.spec.host.
func (*MachineConfigurationHostSpec) DeepCopy ¶ added in v0.1.23
func (in *MachineConfigurationHostSpec) DeepCopy() *MachineConfigurationHostSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationHostSpec.
func (*MachineConfigurationHostSpec) DeepCopyInto ¶ added in v0.1.23
func (in *MachineConfigurationHostSpec) DeepCopyInto(out *MachineConfigurationHostSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationKubernetes ¶ added in v0.1.4
type MachineConfigurationKubernetes struct {
// Version is the Kubernetes version to install (e.g. "v1.34.0").
// +optional
Version string `json:"version,omitempty"`
// NodeLabels are labels passed to kubelet's --node-labels flag.
// +optional
NodeLabels map[string]string `json:"nodeLabels,omitempty"`
// RegisterWithTaints are taints passed to kubelet's
// --register-with-taints flag.
// +optional
RegisterWithTaints []corev1.Taint `json:"registerWithTaints,omitempty"`
}
MachineConfigurationKubernetes holds the Kubernetes-specific fields that are part of the versioned configuration.
func (*MachineConfigurationKubernetes) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationKubernetes) DeepCopy() *MachineConfigurationKubernetes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationKubernetes.
func (*MachineConfigurationKubernetes) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationKubernetes) DeepCopyInto(out *MachineConfigurationKubernetes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationList ¶ added in v0.1.4
type MachineConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MachineConfiguration `json:"items"`
}
MachineConfigurationList contains a list of MachineConfiguration.
func (*MachineConfigurationList) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationList) DeepCopy() *MachineConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationList.
func (*MachineConfigurationList) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationList) DeepCopyInto(out *MachineConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigurationList) DeepCopyObject ¶ added in v0.1.4
func (in *MachineConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineConfigurationRef ¶ added in v0.1.4
type MachineConfigurationRef struct {
// Name is the name of the MachineConfiguration.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// Version is the specific MachineConfigurationVersion number to
// use. If omitted, the controller selects the latest locked
// (deployed) version and populates this field.
// +optional
Version *int32 `json:"version,omitempty"`
}
MachineConfigurationRef references a MachineConfiguration and optionally a specific MachineConfigurationVersion.
func (*MachineConfigurationRef) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationRef) DeepCopy() *MachineConfigurationRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationRef.
func (*MachineConfigurationRef) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationRef) DeepCopyInto(out *MachineConfigurationRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationRefStatus ¶ added in v0.1.4
type MachineConfigurationRefStatus struct {
// Name is the MachineConfiguration name.
Name string `json:"name,omitempty"`
// Version is the MachineConfigurationVersion number that was applied.
Version int32 `json:"version,omitempty"`
// VersionName is the full MachineConfigurationVersion object name
// (e.g. "myconfig-v3").
VersionName string `json:"versionName,omitempty"`
}
MachineConfigurationRefStatus records which configuration version was applied to a Machine.
func (*MachineConfigurationRefStatus) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationRefStatus) DeepCopy() *MachineConfigurationRefStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationRefStatus.
func (*MachineConfigurationRefStatus) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationRefStatus) DeepCopyInto(out *MachineConfigurationRefStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationSpec ¶ added in v0.1.4
type MachineConfigurationSpec struct {
// Template contains the configuration fields that are versioned
// into MachineConfigurationVersion objects.
// +kubebuilder:validation:Required
Template MachineConfigurationTemplate `json:"template"`
// MachineSelector selects machines that should automatically
// receive this configuration. If set, new machines matching the
// selector will be assigned the latest locked version of the
// highest priority configuration that matches.
// +optional
MachineSelector *metav1.LabelSelector `json:"machineSelector,omitempty"`
// Priority determines which configuration is selected when multiple
// configurations match a machine's labels. Higher values take
// precedence. When two configurations have the same priority,
// lexicographic ordering of names is used as a tiebreaker.
// +optional
// +kubebuilder:default=0
Priority int32 `json:"priority,omitempty"`
// UpdateStrategy controls how configuration changes are rolled out
// to machines that reference this configuration.
// +optional
UpdateStrategy MachineConfigurationUpdateStrategy `json:"updateStrategy,omitempty"`
// RevisionHistoryLimit is the number of old
// MachineConfigurationVersions to retain for rollback. Versions
// that are still referenced by a Machine are never deleted
// regardless of this limit, so the actual number of retained
// versions may exceed this value.
// +optional
// +kubebuilder:default=10
// +kubebuilder:validation:Minimum=0
RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
}
MachineConfigurationSpec defines the desired configuration profile for a class of machines.
func (*MachineConfigurationSpec) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationSpec) DeepCopy() *MachineConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationSpec.
func (*MachineConfigurationSpec) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationSpec) DeepCopyInto(out *MachineConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationStatus ¶ added in v0.1.4
type MachineConfigurationStatus struct {
// LatestVersion is the highest version number that has been
// created for this MachineConfiguration. The controller uses this
// to avoid reusing version numbers when versions are deleted.
LatestVersion int32 `json:"latestVersion,omitempty"`
// CurrentVersion is the version number of the latest non-deployed
// (editable) MachineConfigurationVersion. If all versions are
// deployed, this is 0.
CurrentVersion int32 `json:"currentVersion,omitempty"`
// Conditions represent the latest available observations of the
// MachineConfiguration's state.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MachineConfigurationStatus defines the observed state of a MachineConfiguration.
func (*MachineConfigurationStatus) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationStatus) DeepCopy() *MachineConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationStatus.
func (*MachineConfigurationStatus) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationStatus) DeepCopyInto(out *MachineConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationTemplate ¶ added in v0.1.4
type MachineConfigurationTemplate struct {
// Host contains provider-neutral desired host settings.
// +optional
Host *MachineConfigurationHostSpec `json:"host,omitempty"`
// Kubernetes contains Kubernetes-specific configuration such as
// the target version, node labels, and taints.
// +optional
Kubernetes *MachineConfigurationKubernetes `json:"kubernetes,omitempty"`
// Agent contains settings for the unbounded node agent (e.g. the
// OCI image reference for the nspawn machine).
// +optional
Agent *MachineConfigurationAgent `json:"agent,omitempty"`
}
MachineConfigurationTemplate holds the versioned configuration fields. These fields are copied into each MachineConfigurationVersion.
func (*MachineConfigurationTemplate) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationTemplate) DeepCopy() *MachineConfigurationTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationTemplate.
func (*MachineConfigurationTemplate) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationTemplate) DeepCopyInto(out *MachineConfigurationTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationUpdateStrategy ¶ added in v0.1.4
type MachineConfigurationUpdateStrategy struct {
// Type is the update strategy type.
// +kubebuilder:default=OnDelete
Type MachineConfigurationUpdateStrategyType `json:"type,omitempty"`
// unavailable during a RollingUpdate. Only used when Type is
// RollingUpdate. Can be an absolute number or a percentage.
// +optional
MaxUnavailable *int32 `json:"maxUnavailable,omitempty"`
}
MachineConfigurationUpdateStrategy defines the strategy for applying configuration updates.
func (*MachineConfigurationUpdateStrategy) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationUpdateStrategy) DeepCopy() *MachineConfigurationUpdateStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationUpdateStrategy.
func (*MachineConfigurationUpdateStrategy) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationUpdateStrategy) DeepCopyInto(out *MachineConfigurationUpdateStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationUpdateStrategyType ¶ added in v0.1.4
type MachineConfigurationUpdateStrategyType string
MachineConfigurationUpdateStrategyType defines how configuration changes are applied to machines. +kubebuilder:validation:Enum=OnDelete;RollingUpdate
const ( // OnDeleteUpdateStrategy requires the operator to manually // cordon, drain, and delete the Node object to trigger a repave // with the new configuration. OnDeleteUpdateStrategy MachineConfigurationUpdateStrategyType = "OnDelete" // RollingUpdateStrategy automates the cordon/drain/delete cycle // across machines, respecting maxUnavailable. Reserved for future // implementation. RollingUpdateStrategy MachineConfigurationUpdateStrategyType = "RollingUpdate" )
type MachineConfigurationVersion ¶ added in v0.1.4
type MachineConfigurationVersion struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MachineConfigurationVersionSpec `json:"spec,omitempty"`
Status MachineConfigurationVersionStatus `json:"status,omitempty"`
}
MachineConfigurationVersion is an immutable-once-deployed snapshot of a MachineConfiguration's spec at a specific point in time. It acts like a ReplicaSet to a Deployment: the MachineConfiguration controller automatically creates and manages these objects. Versions remain editable until they are deployed (referenced by a Machine). Once deployed, the spec fields become immutable.
func (*MachineConfigurationVersion) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationVersion) DeepCopy() *MachineConfigurationVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationVersion.
func (*MachineConfigurationVersion) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationVersion) DeepCopyInto(out *MachineConfigurationVersion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigurationVersion) DeepCopyObject ¶ added in v0.1.4
func (in *MachineConfigurationVersion) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineConfigurationVersionList ¶ added in v0.1.4
type MachineConfigurationVersionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MachineConfigurationVersion `json:"items"`
}
MachineConfigurationVersionList contains a list of MachineConfigurationVersion.
func (*MachineConfigurationVersionList) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationVersionList) DeepCopy() *MachineConfigurationVersionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationVersionList.
func (*MachineConfigurationVersionList) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationVersionList) DeepCopyInto(out *MachineConfigurationVersionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigurationVersionList) DeepCopyObject ¶ added in v0.1.4
func (in *MachineConfigurationVersionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineConfigurationVersionSpec ¶ added in v0.1.4
type MachineConfigurationVersionSpec struct {
// Version is the monotonically increasing version number within
// the parent MachineConfiguration.
// +kubebuilder:validation:Minimum=1
Version int32 `json:"version"`
// Template is the configuration snapshot copied from the parent
// MachineConfiguration at the time this version was created or
// last updated (while still editable).
Template MachineConfigurationTemplate `json:"template"`
}
MachineConfigurationVersionSpec defines the versioned configuration snapshot.
func (*MachineConfigurationVersionSpec) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationVersionSpec) DeepCopy() *MachineConfigurationVersionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationVersionSpec.
func (*MachineConfigurationVersionSpec) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationVersionSpec) DeepCopyInto(out *MachineConfigurationVersionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineConfigurationVersionStatus ¶ added in v0.1.4
type MachineConfigurationVersionStatus struct {
// Deployed indicates whether any Machine has been provisioned
// using this version. Once true, the spec fields are immutable.
Deployed bool `json:"deployed,omitempty"`
// DeployedMachines is the count of Machines currently referencing
// this version.
DeployedMachines int32 `json:"deployedMachines,omitempty"`
// Conditions represent the latest available observations.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MachineConfigurationVersionStatus defines the observed state of a MachineConfigurationVersion.
func (*MachineConfigurationVersionStatus) DeepCopy ¶ added in v0.1.4
func (in *MachineConfigurationVersionStatus) DeepCopy() *MachineConfigurationVersionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigurationVersionStatus.
func (*MachineConfigurationVersionStatus) DeepCopyInto ¶ added in v0.1.4
func (in *MachineConfigurationVersionStatus) DeepCopyInto(out *MachineConfigurationVersionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineList ¶
type MachineList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Machine `json:"items"`
}
MachineList contains a list of Machine.
func (*MachineList) DeepCopy ¶
func (in *MachineList) DeepCopy() *MachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineList.
func (*MachineList) DeepCopyInto ¶
func (in *MachineList) DeepCopyInto(out *MachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineList) DeepCopyObject ¶
func (in *MachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineOperation ¶ added in v0.1.4
type MachineOperation struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MachineOperationSpec `json:"spec,omitempty"`
Status MachineOperationStatus `json:"status,omitempty"`
}
MachineOperation represents a discrete operation to be performed on a Machine. MachineOperations are created by CLI commands or controllers and processed by the appropriate agent. The in-VM agent handles operations like NodeReboot, while cloud or PXE controllers handle operations like HostReboot, HostPowerOff, and HostPowerOn.
func (*MachineOperation) DeepCopy ¶ added in v0.1.4
func (in *MachineOperation) DeepCopy() *MachineOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperation.
func (*MachineOperation) DeepCopyInto ¶ added in v0.1.4
func (in *MachineOperation) DeepCopyInto(out *MachineOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOperation) DeepCopyObject ¶ added in v0.1.4
func (in *MachineOperation) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineOperationCredential ¶ added in v0.1.8
type MachineOperationCredential struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MachineOperationCredentialSpec `json:"spec,omitempty"`
}
MachineOperationCredential defines the credential source used by external MachineOperation controllers for machines in a site.
func (*MachineOperationCredential) DeepCopy ¶ added in v0.1.8
func (in *MachineOperationCredential) DeepCopy() *MachineOperationCredential
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationCredential.
func (*MachineOperationCredential) DeepCopyInto ¶ added in v0.1.8
func (in *MachineOperationCredential) DeepCopyInto(out *MachineOperationCredential)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOperationCredential) DeepCopyObject ¶ added in v0.1.8
func (in *MachineOperationCredential) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineOperationCredentialAuth ¶ added in v0.1.8
type MachineOperationCredentialAuth struct {
// Mode identifies the credential source.
// +kubebuilder:validation:Required
Mode MachineOperationCredentialAuthMode `json:"mode"`
// SecretRef references provider-specific external plugin configuration. It
// is required for ExternalPlugin mode.
// +optional
SecretRef *NamespacedSecretReference `json:"secretRef,omitempty"`
}
MachineOperationCredentialAuth defines the credential source configuration.
func (*MachineOperationCredentialAuth) DeepCopy ¶ added in v0.1.8
func (in *MachineOperationCredentialAuth) DeepCopy() *MachineOperationCredentialAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationCredentialAuth.
func (*MachineOperationCredentialAuth) DeepCopyInto ¶ added in v0.1.8
func (in *MachineOperationCredentialAuth) DeepCopyInto(out *MachineOperationCredentialAuth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineOperationCredentialAuthMode ¶ added in v0.1.8
type MachineOperationCredentialAuthMode string
MachineOperationCredentialAuthMode identifies the credential source used by a MachineOperation controller. +kubebuilder:validation:Enum=WorkloadIdentity;ExternalPlugin
const ( // MachineOperationCredentialAuthWorkloadIdentity uses OIDC/workload identity // credentials available to the controller process. MachineOperationCredentialAuthWorkloadIdentity MachineOperationCredentialAuthMode = "WorkloadIdentity" // MachineOperationCredentialAuthExternalPlugin delegates credential handling // to provider-specific external plugin configuration. MachineOperationCredentialAuthExternalPlugin MachineOperationCredentialAuthMode = "ExternalPlugin" )
type MachineOperationCredentialList ¶ added in v0.1.8
type MachineOperationCredentialList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MachineOperationCredential `json:"items"`
}
MachineOperationCredentialList contains a list of MachineOperationCredential.
func (*MachineOperationCredentialList) DeepCopy ¶ added in v0.1.8
func (in *MachineOperationCredentialList) DeepCopy() *MachineOperationCredentialList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationCredentialList.
func (*MachineOperationCredentialList) DeepCopyInto ¶ added in v0.1.8
func (in *MachineOperationCredentialList) DeepCopyInto(out *MachineOperationCredentialList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOperationCredentialList) DeepCopyObject ¶ added in v0.1.8
func (in *MachineOperationCredentialList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineOperationCredentialSpec ¶ added in v0.1.8
type MachineOperationCredentialSpec struct {
// SiteName is matched against the Machine site label.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
SiteName string `json:"siteName"`
// Provider identifies the external control provider this credential applies
// to.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Provider string `json:"provider"`
// Auth identifies how the provider should authenticate.
// +kubebuilder:validation:Required
Auth MachineOperationCredentialAuth `json:"auth"`
}
MachineOperationCredentialSpec defines a provider credential source for a site.
func (*MachineOperationCredentialSpec) DeepCopy ¶ added in v0.1.8
func (in *MachineOperationCredentialSpec) DeepCopy() *MachineOperationCredentialSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationCredentialSpec.
func (*MachineOperationCredentialSpec) DeepCopyInto ¶ added in v0.1.8
func (in *MachineOperationCredentialSpec) DeepCopyInto(out *MachineOperationCredentialSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineOperationList ¶ added in v0.1.4
type MachineOperationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MachineOperation `json:"items"`
}
MachineOperationList contains a list of MachineOperation.
func (*MachineOperationList) DeepCopy ¶ added in v0.1.4
func (in *MachineOperationList) DeepCopy() *MachineOperationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationList.
func (*MachineOperationList) DeepCopyInto ¶ added in v0.1.4
func (in *MachineOperationList) DeepCopyInto(out *MachineOperationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOperationList) DeepCopyObject ¶ added in v0.1.4
func (in *MachineOperationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MachineOperationSpec ¶ added in v0.1.4
type MachineOperationSpec struct {
// MachineRef is the name of the Machine CR this operation targets.
// Either machineRef or machineSelector must be set.
// +optional
MachineRef string `json:"machineRef,omitempty"`
// MachineSelector selects machines by labels. When set, the
// controller creates individual MachineOperation children for
// each matched machine. Either machineRef or machineSelector
// must be set.
// +optional
MachineSelector *metav1.LabelSelector `json:"machineSelector,omitempty"`
// OperationKind is the operation to perform on the target machine.
// +kubebuilder:validation:Required
OperationKind OperationKind `json:"operationKind"`
// Parameters is an optional set of key-value pairs passed to the
// operation executor. For example, RestartService uses "service" to
// specify the systemd unit name.
// TODO: Revisit whether map[string]string is sufficient or if we
// need a richer type (e.g. runtime.RawExtension for arbitrary
// JSON, or a typed []OperationParameter struct).
// +optional
Parameters map[string]string `json:"parameters,omitempty"`
// TTLSecondsAfterFinished limits the lifetime of a completed or failed
// MachineOperation. If set, the agent deletes the MachineOperation
// this many seconds after it reaches a terminal phase. If unset, the
// MachineOperation is kept indefinitely.
// +optional
// +kubebuilder:validation:Minimum=0
TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"`
}
MachineOperationSpec defines the desired state of a MachineOperation.
func (*MachineOperationSpec) DeepCopy ¶ added in v0.1.4
func (in *MachineOperationSpec) DeepCopy() *MachineOperationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationSpec.
func (*MachineOperationSpec) DeepCopyInto ¶ added in v0.1.4
func (in *MachineOperationSpec) DeepCopyInto(out *MachineOperationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineOperationStatus ¶ added in v0.1.4
type MachineOperationStatus struct {
// Phase is the current phase of the operation.
Phase OperationPhase `json:"phase,omitempty"`
// Message is a human-readable description of the current state.
// +optional
Message string `json:"message,omitempty"`
// StartedAt is when the agent began executing the operation.
// +optional
StartedAt *metav1.Time `json:"startedAt,omitempty"`
// CompletedAt is when the operation reached a terminal state
// (Complete or Failed).
// +optional
CompletedAt *metav1.Time `json:"completedAt,omitempty"`
// ObservedMachineGeneration is the Machine's metadata.generation
// at the time the agent began executing the operation. Clients
// can compare this to the current Machine generation to determine
// whether the operation acted on the expected machine state.
// +optional
ObservedMachineGeneration int64 `json:"observedMachineGeneration,omitempty"`
// Targets records the per-machine execution state for this operation.
// For single-machine operations this contains one entry. For selector
// operations, targets are snapshotted when execution begins and remain
// authoritative even if selector matches change later.
// +optional
// +listType=map
// +listMapKey=machineRef
Targets []MachineOperationTargetStatus `json:"targets,omitempty"`
// Conditions represent the latest available observations of the
// operation's state.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MachineOperationStatus defines the observed state of a MachineOperation.
func (*MachineOperationStatus) DeepCopy ¶ added in v0.1.4
func (in *MachineOperationStatus) DeepCopy() *MachineOperationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationStatus.
func (*MachineOperationStatus) DeepCopyInto ¶ added in v0.1.4
func (in *MachineOperationStatus) DeepCopyInto(out *MachineOperationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOperationStatus) IsTerminal ¶ added in v0.1.4
func (s *MachineOperationStatus) IsTerminal() bool
IsTerminal returns true if the operation phase is Complete or Failed.
type MachineOperationTargetInput ¶ added in v0.1.23
type MachineOperationTargetInput struct {
// ProviderRef identifies the exact provider-owned resource referenced by
// host.external.machineRef when the operation target was initialized.
// +optional
ProviderRef *ProviderMachineSnapshot `json:"providerRef,omitempty"`
// HostImage is the resolved provider-interpreted host image for HostReplace.
// An empty value instructs the provider to preserve the current image.
// +optional
HostImage string `json:"hostImage,omitempty"`
}
MachineOperationTargetInput is the immutable, controller-resolved input for one MachineOperation target. It is persisted before provider execution so retries do not silently adopt later desired-state changes.
func (*MachineOperationTargetInput) DeepCopy ¶ added in v0.1.23
func (in *MachineOperationTargetInput) DeepCopy() *MachineOperationTargetInput
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationTargetInput.
func (*MachineOperationTargetInput) DeepCopyInto ¶ added in v0.1.23
func (in *MachineOperationTargetInput) DeepCopyInto(out *MachineOperationTargetInput)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachineOperationTargetStatus ¶ added in v0.1.7
type MachineOperationTargetStatus struct {
// MachineRef is the name of the targeted Machine.
// +kubebuilder:validation:Required
MachineRef string `json:"machineRef"`
// Phase is the current lifecycle phase for this target.
// +optional
Phase OperationPhase `json:"phase,omitempty"`
// Stage is the current operation-specific stage for this target.
// +optional
Stage OperationStage `json:"stage,omitempty"`
// Message is a human-readable description of target progress or failure.
// +optional
Message string `json:"message,omitempty"`
// StartedAt is when execution began for this target.
// +optional
StartedAt *metav1.Time `json:"startedAt,omitempty"`
// CompletedAt is when this target reached a terminal phase.
// +optional
CompletedAt *metav1.Time `json:"completedAt,omitempty"`
// ObservedGeneration is the target Machine generation acted on.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Input is the immutable provider input resolved before execution begins.
// +optional
Input *MachineOperationTargetInput `json:"input,omitempty"`
// Attempts is the number of external action attempts made for this target.
// Polling expected state changes does not increment this field.
// +optional
Attempts int32 `json:"attempts,omitempty"`
// LastAttemptAt records when the latest external action attempt occurred.
// +optional
LastAttemptAt *metav1.Time `json:"lastAttemptAt,omitempty"`
// ProviderOperation identifies the resumable external operation for this
// target, when the provider returned one.
// +optional
ProviderOperation *ProviderOperationStatus `json:"providerOperation,omitempty"`
// Conditions represent target-scoped observations for this operation. These
// conditions are not persisted on the Machine, so BMC capability fallbacks
// apply only to this MachineOperation target.
// +optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MachineOperationTargetStatus records execution state for one target Machine.
func (*MachineOperationTargetStatus) DeepCopy ¶ added in v0.1.7
func (in *MachineOperationTargetStatus) DeepCopy() *MachineOperationTargetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOperationTargetStatus.
func (*MachineOperationTargetStatus) DeepCopyInto ¶ added in v0.1.7
func (in *MachineOperationTargetStatus) DeepCopyInto(out *MachineOperationTargetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MachinePhase ¶
type MachinePhase string
MachinePhase represents the current phase of a Machine.
const ( MachinePhasePending MachinePhase = "Pending" MachinePhaseRebooting MachinePhase = "Rebooting" MachinePhaseProvisioning MachinePhase = "Provisioning" MachinePhaseJoining MachinePhase = "Joining" MachinePhaseReady MachinePhase = "Ready" MachinePhaseFailed MachinePhase = "Failed" )
type MachineSpec ¶
type MachineSpec struct {
// SSH contains the SSH connection and credential details for the
// machine.
// +optional
SSH *SSHSpec `json:"ssh,omitempty"`
// PXE contains legacy PXE boot configuration for the machine. New callers
// should use Host.Netboot.
// +optional
PXE *PXESpec `json:"pxe,omitempty"`
// Kubernetes contains Kubernetes-specific configuration.
// +optional
Kubernetes *KubernetesSpec `json:"kubernetes,omitempty"`
// Agent contains settings for the unbounded node agent.
// +optional
Agent *AgentSpec `json:"agent,omitempty"`
// Provider identifies the legacy external control provider for this machine.
// New callers should use Host.External.Provider or Host.Azure.
// +optional
// +kubebuilder:validation:MinLength=1
Provider string `json:"provider,omitempty"`
// ProviderID identifies the underlying infrastructure resource for this
// machine, using a Kubernetes-style provider ID such as
// azure:///subscriptions/.../virtualMachines/name or oci://ocid1.instance...
//
// This is a legacy field. New callers should use Host.External.ProviderID,
// Host.External.MachineRef, or Host.Azure.ResourceID.
// +optional
ProviderID string `json:"providerID,omitempty"`
// Host contains desired host settings and exactly one optional host owner.
// New Machines should set one of Netboot, Azure, or External. Image alone
// may be used with deprecated ownership fields during migration.
// +optional
Host *HostSpec `json:"host,omitempty"`
// ConfigurationRef references a MachineConfiguration (and
// optionally a specific version) that defines the configuration
// profile for this machine. If a specific version is set, that
// version is used at provisioning time; otherwise the latest
// locked version is used and the version field is set by the
// controller.
// +optional
ConfigurationRef *MachineConfigurationRef `json:"configurationRef,omitempty"`
}
MachineSpec defines the desired state of a Machine. +kubebuilder:validation:XValidation:rule="!has(oldSelf.provider) || (has(self.provider) && self.provider == oldSelf.provider)",message="provider is immutable once set" +kubebuilder:validation:XValidation:rule="!has(self.host) || (!has(self.host.netboot) && !has(self.host.azure) && !has(self.host.external)) || (!has(self.pxe) && !has(self.provider) && !has(self.providerID))",message="host ownership cannot be combined with legacy pxe, provider, or providerID fields"
func (*MachineSpec) DeepCopy ¶
func (in *MachineSpec) DeepCopy() *MachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSpec.
func (*MachineSpec) DeepCopyInto ¶
func (in *MachineSpec) DeepCopyInto(out *MachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineSpec) Netboot ¶ added in v0.1.23
func (s *MachineSpec) Netboot() *PXESpec
Netboot returns the canonical network boot configuration, falling back to the released spec.pxe field for existing Machines.
type MachineStatus ¶
type MachineStatus struct {
// Phase is the current phase of the machine. Intended for human
// consumption; follows the state machine rather than driving it.
Phase MachinePhase `json:"phase,omitempty"`
// Message provides additional status information.
Message string `json:"message,omitempty"`
// SSH holds observed SSH state.
// +optional
SSH *SSHStatus `json:"ssh,omitempty"`
// Redfish holds observed Redfish state.
// +optional
Redfish *RedfishStatus `json:"redfish,omitempty"`
// TPM holds observed TPM state.
// +optional
TPM *TPMStatus `json:"tpm,omitempty"`
// Agent holds the applied agent settings.
// +optional
Agent *AgentStatus `json:"agent,omitempty"`
// Configuration records the MachineConfigurationVersion that was
// applied to this machine during the most recent provisioning.
// +optional
Configuration *MachineConfigurationRefStatus `json:"configuration,omitempty"`
// Conditions represent the latest available observations of the
// machine's state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MachineStatus defines the observed state of a Machine.
func (*MachineStatus) DeepCopy ¶
func (in *MachineStatus) DeepCopy() *MachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineStatus.
func (*MachineStatus) DeepCopyInto ¶
func (in *MachineStatus) DeepCopyInto(out *MachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetalmanComponentSpec ¶ added in v0.1.23
type MetalmanComponentSpec struct {
SiteComponentSpec `json:",inline"`
// DHCPAutoInterface lets Metalman choose the DHCP interface automatically.
// +optional
DHCPAutoInterface *bool `json:"dhcpAutoInterface,omitempty"`
// Replicas is the desired number of Metalman replicas. Defaults to 1 when
// omitted.
// +kubebuilder:validation:Minimum=0
// +optional
Replicas *int32 `json:"replicas,omitempty"`
}
MetalmanComponentSpec configures Metalman for a site.
func (*MetalmanComponentSpec) DeepCopy ¶ added in v0.1.23
func (in *MetalmanComponentSpec) DeepCopy() *MetalmanComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetalmanComponentSpec.
func (*MetalmanComponentSpec) DeepCopyInto ¶ added in v0.1.23
func (in *MetalmanComponentSpec) DeepCopyInto(out *MetalmanComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespacedSecretReference ¶ added in v0.1.8
type NamespacedSecretReference struct {
// Name of the secret.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// Namespace of the secret.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Namespace string `json:"namespace"`
}
NamespacedSecretReference contains enough information to locate a Secret.
func (*NamespacedSecretReference) DeepCopy ¶ added in v0.1.8
func (in *NamespacedSecretReference) DeepCopy() *NamespacedSecretReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespacedSecretReference.
func (*NamespacedSecretReference) DeepCopyInto ¶ added in v0.1.8
func (in *NamespacedSecretReference) DeepCopyInto(out *NamespacedSecretReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationKind ¶ added in v0.1.4
type OperationKind string
OperationKind identifies the kind of operation to perform. Predefined operations cover common lifecycle actions; custom operations may be supported by individual cloud controllers. +kubebuilder:validation:Enum=NodeReboot;AgentUpgrade;AgentReset;HostReboot;HostPowerOff;HostPowerOn;HostReplace
const ( // OperationNodeReboot restarts the nspawn-backed node in place without // reprovisioning the rootfs. Services are stopped, the nspawn container // is restarted, and services are brought back up. Handled by the // in-VM agent. OperationNodeReboot OperationKind = "NodeReboot" // OperationAgentUpgrade upgrades the host-side unbounded-agent binary. // Handled by the in-VM agent. OperationAgentUpgrade OperationKind = "AgentUpgrade" // OperationAgentReset resets the host by removing the unbounded-agent and // all associated resources. Handled by the in-VM agent. OperationAgentReset OperationKind = "AgentReset" // OperationHostReboot triggers a full hardware power cycle of the host // via BMC (e.g. Redfish). Handled by the machina controller or cloud // controller. OperationHostReboot OperationKind = "HostReboot" // OperationHostPowerOff powers off the host through an out-of-band provider. OperationHostPowerOff OperationKind = "HostPowerOff" // OperationHostPowerOn powers on the host through an out-of-band provider. OperationHostPowerOn OperationKind = "HostPowerOn" // OperationHostReplace replaces the host VM through an out-of-band provider // and reinstalls the unbounded-agent so the node can rejoin the cluster. OperationHostReplace OperationKind = "HostReplace" )
type OperationPhase ¶ added in v0.1.4
type OperationPhase string
OperationPhase represents the current phase of a MachineOperation.
const ( OperationPhasePending OperationPhase = "Pending" OperationPhaseInProgress OperationPhase = "InProgress" OperationPhaseComplete OperationPhase = "Complete" OperationPhaseFailed OperationPhase = "Failed" )
type OperationStage ¶ added in v0.1.7
type OperationStage string
OperationStage represents the current stage of a target operation.
const ( OperationStagePoweringOff OperationStage = "PoweringOff" OperationStageWaitingOff OperationStage = "WaitingOff" OperationStagePoweringOn OperationStage = "PoweringOn" OperationStageWaitingOn OperationStage = "WaitingOn" OperationStageRepaveRequested OperationStage = "RepaveRequested" OperationStageWaitingRepave OperationStage = "WaitingRepave" OperationStageWaitingCloudInit OperationStage = "WaitingCloudInit" OperationStageWaitingNode OperationStage = "WaitingNode" OperationStageWaitingProvider OperationStage = "WaitingProviderOperation" )
type OverriddenWorkload ¶ added in v0.3.0
type OverriddenWorkload struct {
// Kind and Name identify the workload. Name alone is not unique, because a
// Deployment and a DaemonSet may share one.
Kind string `json:"kind"`
Name string `json:"name"`
// DesiredHash is computed by the operator from the observed ConfigMap.
// AppliedHash is what the workload actually carries. They match when the
// override is in effect and differ when it could not be applied.
// +optional
DesiredHash string `json:"desiredHash,omitempty"`
// +optional
AppliedHash string `json:"appliedHash,omitempty"`
// VersionDrift is set when an override changed a container image, formatted
// as `<container>=<image>`. Such a component is no longer version-matched to
// the operator, and the pin survives operator upgrades, which makes it the
// likeliest cause of an install behaving unlike its reported version.
// +optional
VersionDrift string `json:"versionDrift,omitempty"`
// State is what happened to this workload's override in the last pass: one
// of Applied, Pending, Withheld or Failed.
//
// The hashes alone cannot express it. A workload the operator declined to
// write has no applied hash, and neither does one whose write was deferred
// for a second, and neither does one whose merge failed; reading an empty
// applied hash as "not applied" reported all three identically, and a
// withheld workload appeared in status not at all.
//
// It may be empty when the operator that wrote this status predates the
// field, or when a CRD older than the operator pruned it. Consumers should
// fall back to comparing the hashes.
// +optional
State string `json:"state,omitempty"`
}
OverriddenWorkload reports the override state of one workload.
func (*OverriddenWorkload) DeepCopy ¶ added in v0.3.0
func (in *OverriddenWorkload) DeepCopy() *OverriddenWorkload
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverriddenWorkload.
func (*OverriddenWorkload) DeepCopyInto ¶ added in v0.3.0
func (in *OverriddenWorkload) DeepCopyInto(out *OverriddenWorkload)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OverrideStatus ¶ added in v0.3.0
type OverrideStatus struct {
// Phase is the aggregate state of override processing for this Site: one of
// None, Applied or Degraded.
//
// Applied means every resolved workload carries the hash that was desired.
// It reports that the override merged and was written, not that the
// resulting pods are healthy.
Phase string `json:"phase"`
// ObservedResourceVersion is the resourceVersion of the overrides ConfigMap
// this status was computed from, so a result is traceable to a specific
// input version. Empty when no overrides ConfigMap exists.
// +optional
ObservedResourceVersion string `json:"observedResourceVersion,omitempty"`
// Workloads carries the desired and applied hash for each overridden
// workload.
//
// Both are per workload because contributors differ per workload: a
// Site-wide desired hash would not be comparable to any of them whenever a
// document targets more than one.
// +optional
// +listType=map
// +listMapKey=kind
// +listMapKey=name
Workloads []OverriddenWorkload `json:"workloads,omitempty"`
// Message explains a Degraded phase, naming the ConfigMap key and entry
// index at fault. Empty otherwise.
// +optional
Message string `json:"message,omitempty"`
}
OverrideStatus summarizes user-supplied workload overrides for one Site.
Overrides live in a cluster-scoped ConfigMap and one document routinely targets several components, so this is aggregated per Site rather than per component; component-level detail stays in Conditions.
func (*OverrideStatus) DeepCopy ¶ added in v0.3.0
func (in *OverrideStatus) DeepCopy() *OverrideStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverrideStatus.
func (*OverrideStatus) DeepCopyInto ¶ added in v0.3.0
func (in *OverrideStatus) DeepCopyInto(out *OverrideStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PXESpec ¶
type PXESpec struct {
// Image is an OCI image reference containing the machine disk image.
// The image must contain /disk/disk.img.gz.
// Example: "ghcr.io/azure/host-ubuntu2404:v1"
// +kubebuilder:validation:Required
Image string `json:"image"`
// PullSecretRef references a Docker registry credential Secret used to pull
// Image. The Secret must be type kubernetes.io/dockerconfigjson or
// kubernetes.io/dockercfg.
// +optional
PullSecretRef *NamespacedSecretReference `json:"pullSecretRef,omitempty"`
// Architecture is the target CPU architecture for PXE boot artifacts and
// machine images.
// +kubebuilder:validation:Enum=amd64;arm64
// +kubebuilder:default=amd64
// +optional
Architecture string `json:"architecture,omitempty"`
// NetbootImage is an OCI image reference containing the PXE boot
// artifacts used to install Image. When omitted, metalman uses the
// default netboot image that corresponds to its release.
// +optional
NetbootImage string `json:"netbootImage,omitempty"`
// NetbootPullSecretRef references a Docker registry credential Secret used to
// pull NetbootImage. It is ignored when NetbootImage is omitted; metalman's
// configured default netboot pull secret is used for the default netboot image.
// The Secret must be type kubernetes.io/dockerconfigjson or
// kubernetes.io/dockercfg.
// +optional
NetbootPullSecretRef *NamespacedSecretReference `json:"netbootPullSecretRef,omitempty"`
// BootProtocol selects how metalman should trigger network boot for
// repaves. PXE uses DHCP/TFTP bootfile options. HTTP uses Redfish UEFI
// HTTP boot with a URL derived from the netboot image metadata.
// +kubebuilder:validation:Enum=PXE;HTTP
// +kubebuilder:default=PXE
// +optional
BootProtocol string `json:"bootProtocol,omitempty"`
// DHCPLeases defines static IPv4 provisioning network settings. PXE boot
// uses them as DHCP leases. HTTP boot uses the first entry to configure the
// Redfish UEFI HTTP boot client.
// +optional
DHCPLeases []DHCPLease `json:"dhcpLeases,omitempty"`
// TargetDisk is the block device the installer writes the machine image to.
// Examples: /dev/nvme0n1, /dev/sda, /dev/disk/by-id/...
// When omitted, the installer chooses a target disk automatically.
// +optional
TargetDisk string `json:"targetDisk,omitempty"`
// Redfish configures optional Redfish BMC access.
// +optional
Redfish *RedfishSpec `json:"redfish,omitempty"`
// CloudInit contains optional cloud-init customization for PXE-booted
// machines.
// +optional
CloudInit *CloudInitSpec `json:"cloudInit,omitempty"`
}
PXESpec defines PXE boot configuration for a Machine.
func (*PXESpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PXESpec.
func (*PXESpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PXESpec) TargetArchitecture ¶ added in v0.1.20
TargetArchitecture returns the effective PXE target architecture.
func (*PXESpec) TargetBootProtocol ¶ added in v0.1.20
TargetBootProtocol returns the effective network boot protocol.
type ProviderMachineReference ¶ added in v0.1.23
type ProviderMachineReference struct {
// APIGroup is the API group of the provider-owned Machine resource.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
APIGroup string `json:"apiGroup"`
// Kind is the kind of the provider-owned Machine resource.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Kind string `json:"kind"`
// Name is the name of the cluster-scoped provider-owned Machine resource.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
}
ProviderMachineReference identifies a cluster-scoped provider-owned Machine resource used by an external host provider. API version is intentionally omitted so providers can evolve served versions without rewriting Machines.
func (*ProviderMachineReference) DeepCopy ¶ added in v0.1.23
func (in *ProviderMachineReference) DeepCopy() *ProviderMachineReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderMachineReference.
func (*ProviderMachineReference) DeepCopyInto ¶ added in v0.1.23
func (in *ProviderMachineReference) DeepCopyInto(out *ProviderMachineReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProviderMachineSnapshot ¶ added in v0.1.23
type ProviderMachineSnapshot struct {
// APIGroup is the API group of the provider-owned Machine resource.
// +kubebuilder:validation:Required
APIGroup string `json:"apiGroup"`
// Kind is the kind of the provider-owned Machine resource.
// +kubebuilder:validation:Required
Kind string `json:"kind"`
// Name is the name of the provider-owned Machine resource.
// +kubebuilder:validation:Required
Name string `json:"name"`
// UID detects deletion and recreation of the provider-owned resource.
// +kubebuilder:validation:Required
UID types.UID `json:"uid"`
// Generation records the provider-owned resource generation whose inputs
// were observed.
// +kubebuilder:validation:Minimum=1
Generation int64 `json:"generation"`
}
ProviderMachineSnapshot identifies the exact provider-owned resource observed when a MachineOperation target was initialized.
func (*ProviderMachineSnapshot) DeepCopy ¶ added in v0.1.23
func (in *ProviderMachineSnapshot) DeepCopy() *ProviderMachineSnapshot
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderMachineSnapshot.
func (*ProviderMachineSnapshot) DeepCopyInto ¶ added in v0.1.23
func (in *ProviderMachineSnapshot) DeepCopyInto(out *ProviderMachineSnapshot)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProviderOperationStatus ¶ added in v0.1.23
type ProviderOperationStatus struct {
// Provider is the external provider that accepted the operation.
// +kubebuilder:validation:Required
Provider string `json:"provider"`
// OperationID is the provider-assigned operation identifier.
// +kubebuilder:validation:Required
OperationID string `json:"operationID"`
// ResumeToken is opaque provider data needed to resume polling. Providers
// must not store credentials or other secrets in this field.
// +optional
ResumeToken string `json:"resumeToken,omitempty"`
}
ProviderOperationStatus identifies a resumable operation owned by an external provider.
func (*ProviderOperationStatus) DeepCopy ¶ added in v0.1.23
func (in *ProviderOperationStatus) DeepCopy() *ProviderOperationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderOperationStatus.
func (*ProviderOperationStatus) DeepCopyInto ¶ added in v0.1.23
func (in *ProviderOperationStatus) DeepCopyInto(out *ProviderOperationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RedfishSpec ¶
type RedfishSpec struct {
// URL is the Redfish endpoint URL.
// +kubebuilder:validation:Required
URL string `json:"url"`
// Username is the Redfish username.
// +kubebuilder:validation:Required
Username string `json:"username"`
// DeviceID is the Redfish system device ID. Defaults to "1".
// +kubebuilder:default="1"
DeviceID string `json:"deviceID,omitempty"`
// PasswordRef references a secret containing the Redfish password.
// +kubebuilder:validation:Required
PasswordRef SecretKeySelector `json:"passwordRef"`
}
RedfishSpec defines Redfish BMC connection details.
func (*RedfishSpec) DeepCopy ¶
func (in *RedfishSpec) DeepCopy() *RedfishSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedfishSpec.
func (*RedfishSpec) DeepCopyInto ¶
func (in *RedfishSpec) DeepCopyInto(out *RedfishSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RedfishStatus ¶
type RedfishStatus struct {
// CertFingerprint is the TLS certificate fingerprint for the
// Redfish endpoint, pinned on first connection.
CertFingerprint string `json:"certFingerprint,omitempty"`
}
RedfishStatus holds observed Redfish state.
func (*RedfishStatus) DeepCopy ¶
func (in *RedfishStatus) DeepCopy() *RedfishStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedfishStatus.
func (*RedfishStatus) DeepCopyInto ¶
func (in *RedfishStatus) DeepCopyInto(out *RedfishStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SSHSpec ¶
type SSHSpec struct {
// Host is the hostname or IP address of the machine, optionally
// including the port (e.g. "1.2.3.4:2222"). When the port is
// omitted, 22 is assumed.
// +kubebuilder:validation:Required
Host string `json:"host"`
// Username is the SSH username.
// +kubebuilder:default=azureuser
Username string `json:"username,omitempty"`
// PrivateKeyRef references a secret containing the SSH private key.
// +kubebuilder:validation:Required
PrivateKeyRef SecretKeySelector `json:"privateKeyRef"`
// Bastion configures an optional SSH jump host (bastion) for proxy
// connections. Its structure is identical to SSHSpec minus the
// bastion field itself.
// +optional
Bastion *BastionSSHSpec `json:"bastion,omitempty"`
}
SSHSpec defines SSH connection details. The same structure is reused for both the target machine and the optional bastion host.
func (*SSHSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHSpec.
func (*SSHSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SSHStatus ¶
type SSHStatus struct {
// Fingerprint is the SSH host key fingerprint discovered on
// first connection. Subsequent connections must match this value.
Fingerprint string `json:"fingerprint,omitempty"`
}
SSHStatus holds observed SSH state.
func (*SSHStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHStatus.
func (*SSHStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretKeySelector ¶
type SecretKeySelector struct {
// Name of the secret.
Name string `json:"name"`
// Namespace of the secret.
Namespace string `json:"namespace"`
// Key within the secret.
// +kubebuilder:default=ssh-privatekey
Key string `json:"key,omitempty"`
}
SecretKeySelector selects a key from a Secret.
func (*SecretKeySelector) DeepCopy ¶
func (in *SecretKeySelector) DeepCopy() *SecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
func (*SecretKeySelector) DeepCopyInto ¶
func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Site ¶ added in v0.1.23
type Site struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SiteSpec `json:"spec,omitempty"`
Status SiteStatus `json:"status,omitempty"`
}
Site defines a top-level Unbounded location and the optional components enabled for that location.
func (*Site) DeepCopy ¶ added in v0.1.23
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Site.
func (*Site) DeepCopyInto ¶ added in v0.1.23
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Site) DeepCopyObject ¶ added in v0.1.23
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SiteComponentSpec ¶ added in v0.1.23
type SiteComponentSpec struct {
// Enabled controls whether the component is reconciled.
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
SiteComponentSpec contains common component configuration. Components install into the unbounded-system namespace at the operator's own version, so neither namespace nor image is configurable here.
The generated Deployments and DaemonSets can be customized through workload overrides, a cluster-scoped ConfigMap the operator reads. That surface is deliberately separate from this one: it is cluster-scoped because the net, machina and gantry singletons are shared across Sites, and write access to it is equivalent to cluster-admin. See docs/content/reference/workload-overrides.md.
func (*SiteComponentSpec) DeepCopy ¶ added in v0.1.23
func (in *SiteComponentSpec) DeepCopy() *SiteComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteComponentSpec.
func (*SiteComponentSpec) DeepCopyInto ¶ added in v0.1.23
func (in *SiteComponentSpec) DeepCopyInto(out *SiteComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SiteComponents ¶ added in v0.1.23
type SiteComponents struct {
// Machina configures the machina controller for this site.
// +optional
Machina *MachinaComponentSpec `json:"machina,omitempty"`
// Metalman configures the Metalman PXE controller for this site.
// +optional
Metalman *MetalmanComponentSpec `json:"metalman,omitempty"`
// Storage configures the unbounded-storage supervisor for this site.
// +optional
Storage *StorageComponentSpec `json:"storage,omitempty"`
// Gantry configures the gantry peer-to-peer OCI distribution agent for this
// site. Unlike the other components, gantry defaults to enabled; set
// gantry.enabled to false to opt a site out. The apiserver defaults an
// omitted gantry block to enabled=true so the intent is explicit on read
// (for example the Gantry print column) whenever a components block is
// present. A site that omits the components block entirely is not defaulted.
// +optional
// +kubebuilder:default={enabled: true}
Gantry *GantryComponentSpec `json:"gantry,omitempty"`
}
SiteComponents declares optional components managed by the unbounded operator. Networking (unbounded-net) is not a component: it is a cluster singleton the operator deploys whenever at least one Site exists.
Each field corresponds to a component reconciler registered with the operator. To add a new component, add a typed field here and implement component.ClusterComponent or component.SiteComponent in a package under internal/operator/components, then register it in operator.DefaultRegistry.
func (*SiteComponents) DeepCopy ¶ added in v0.1.23
func (in *SiteComponents) DeepCopy() *SiteComponents
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteComponents.
func (*SiteComponents) DeepCopyInto ¶ added in v0.1.23
func (in *SiteComponents) DeepCopyInto(out *SiteComponents)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SiteList ¶ added in v0.1.23
type SiteList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Site `json:"items"`
}
SiteList contains a list of Site.
func (*SiteList) DeepCopy ¶ added in v0.1.23
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteList.
func (*SiteList) DeepCopyInto ¶ added in v0.1.23
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SiteList) DeepCopyObject ¶ added in v0.1.23
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SiteSpec ¶ added in v0.1.23
type SiteSpec struct {
// NodeCidrs are the CIDRs that contain the internal IPs of nodes at this site.
// +kubebuilder:validation:MinItems=1
NodeCidrs []string `json:"nodeCidrs"`
// PodCidrAssignments define how pod CIDRs are allocated to nodes in this site.
// +kubebuilder:validation:MinItems=1
PodCidrAssignments []unboundednetv1alpha1.PodCidrAssignment `json:"podCidrAssignments"`
// ManageCniPlugin controls whether the node agent writes CNI configuration
// and creates tunnel endpoints for same-site nodes. When true (the default),
// CNI config is written and all same-site nodes are tunnel peers.
// When false, only tunnel links to gateway pools for other sites are created,
// allowing an external CNI plugin to manage intra-site networking.
// Pod CIDR assignment is also disabled when manageCniPlugin is false,
// regardless of the assignmentEnabled setting on individual podCidrAssignments
// rules. The podCidrAssignments are still required to define the CIDR ranges
// used for inter-site routing.
// +optional
ManageCniPlugin *bool `json:"manageCniPlugin,omitempty"`
// NonMasqueradeCIDRs are CIDR blocks that should NOT be masqueraded when
// traffic leaves the node via the default gateway. Traffic to these CIDRs
// will use the pod's actual IP address.
// +optional
NonMasqueradeCIDRs []string `json:"nonMasqueradeCIDRs,omitempty"`
// LocalCIDRs are CIDR blocks that are considered local to this site.
// Traffic to these CIDRs should never be routed via gateway pools.
// +optional
LocalCIDRs []string `json:"localCidrs,omitempty"`
// HealthCheckSettings controls health check settings for inter-site tunnel peers.
// +optional
HealthCheckSettings *unboundednetv1alpha1.HealthCheckSettings `json:"healthCheckSettings,omitempty"`
// TunnelProtocol selects the tunnel protocol for this site.
// Valid values are "WireGuard", "IPIP", "GENEVE", "VXLAN", "None", or "Auto".
// Defaults to "Auto" when unset.
// +kubebuilder:validation:Enum=WireGuard;IPIP;GENEVE;VXLAN;None;Auto
// +optional
TunnelProtocol *unboundednetv1alpha1.TunnelProtocol `json:"tunnelProtocol,omitempty"`
// TunnelMTU is the MTU to set on routes through tunnels for this site.
// +kubebuilder:validation:Minimum=576
// +kubebuilder:validation:Maximum=9000
// +optional
TunnelMTU *int32 `json:"tunnelMTU,omitempty"`
// Components declares optional Unbounded components managed for this site.
// +optional
Components SiteComponents `json:"components,omitempty"`
}
SiteSpec defines the desired state of Site.
func (*SiteSpec) DeepCopy ¶ added in v0.1.23
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteSpec.
func (*SiteSpec) DeepCopyInto ¶ added in v0.1.23
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SiteStatus ¶ added in v0.1.23
type SiteStatus struct {
// NodeCount is the number of nodes matched to this site by unbounded-net.
// +optional
NodeCount int `json:"nodeCount,omitempty"`
// SliceCount is the number of SiteNodeSlice objects for this site.
// +optional
SliceCount int `json:"sliceCount,omitempty"`
// Conditions report the last observed state of site components. One
// condition is published per component (for example NetReady, MachinaReady,
// MetalmanReady, StorageReady) so callers can `kubectl wait` on a Site.
// +optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Overrides summarizes user-supplied workload overrides affecting this
// Site. It is absent when no override targets any of the Site's workloads.
// +optional
Overrides *OverrideStatus `json:"overrides,omitempty"`
}
SiteStatus defines the observed state of Site.
func (*SiteStatus) DeepCopy ¶ added in v0.1.23
func (in *SiteStatus) DeepCopy() *SiteStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteStatus.
func (*SiteStatus) DeepCopyInto ¶ added in v0.1.23
func (in *SiteStatus) DeepCopyInto(out *SiteStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageComponentSpec ¶ added in v0.1.23
type StorageComponentSpec struct {
SiteComponentSpec `json:",inline"`
}
StorageComponentSpec configures unbounded-storage for a site. Storage daemon config is held in the operator-managed ConfigMap unbounded-storage-config-<site>: the operator creates it from the embedded default when absent and preserves/adopts it when present.
func (*StorageComponentSpec) DeepCopy ¶ added in v0.1.23
func (in *StorageComponentSpec) DeepCopy() *StorageComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageComponentSpec.
func (*StorageComponentSpec) DeepCopyInto ¶ added in v0.1.23
func (in *StorageComponentSpec) DeepCopyInto(out *StorageComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TPMStatus ¶
type TPMStatus struct {
// EKPublicKey is the TPM endorsement key public key, written
// when the PXE boot image requests a bootstrap token.
EKPublicKey string `json:"ekPublicKey,omitempty"`
}
TPMStatus holds observed TPM state.
func (*TPMStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TPMStatus.
func (*TPMStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.