MachineReclaim

This page is generated from the CRD schema in config/crd/bases (make docs-reference). Do not edit it.

MachineReclaim is the Schema for the machinereclaims API

Groupichor.maesh.dev
KindMachineReclaim (list kind MachineReclaimList)
Resourcemachinereclaims
ScopeNamespaced

v1alpha1

Version v1alpha1: has a status subresource.

spec

FieldTypeRequiredDescription
specobjectyesspec defines the desired state of MachineReclaim
spec.addressstringyesaddress is the one node to reclaim: an IP or host:port of its Talos API. Only this address is dialled; the endpoints in the talosconfig are ignored.
spec.clusterCredentialsbooleannoclusterCredentials dials the node with the credentials Ichor holds for the TalosCluster named by clusterRef instead of a pasted foreign talosconfig. It is for an orphan: a machine of that cluster whose TalosMachine is gone, so the person has no talosconfig for it. The same refusals apply, and a node that is not in that cluster is refused.
spec.clusterRefobjectnoclusterRef optionally names the TalosCluster (same namespace) the machine is meant to join after the reset. The controller never writes it or that cluster; the UI API adds the address to the cluster's discovery addresses on the user's behalf when it creates the request.
spec.clusterRef.namestringnoName of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Default: "".
spec.confirmClusterNamestringnoconfirmClusterName is the foreign cluster's name as typed by the user; only needed with force.
spec.confirmUUIDstringnoconfirmUUID is the node's UUID as typed by the user. Empty until then; the webhook rejects a value that differs from status.inspection.uuid.
spec.contextNamestringnocontextName picks the talosconfig context; empty is the file's default.
spec.credentialSecretRefstringnocredentialSecretRef names a Secret of type ichor.maesh.dev/foreign-talosconfig in this namespace. It is deleted when the request ends or expires. Empty only with clusterCredentials.
spec.forcebooleannoforce allows a control plane whose removal breaks the foreign etcd quorum or is the last of its cluster. It also needs confirmClusterName.
spec.forceUngracefulbooleannoforceUngraceful sends a non-graceful reset, for a foreign cluster that is dead.
spec.ttlstringnottl is how long the request and its credential live. Default 15 minutes, at most 60. Default: "15m".

status

FieldTypeRequiredDescription
statusobjectnostatus defines the observed state of MachineReclaim
status.auditobjectnoaudit records who requested and confirmed.
status.audit.confirmedAtstring (date-time)noconfirmedAt is when the controller acted on the confirmation.
status.audit.confirmedBystringnoconfirmedBy is the user that wrote confirmUUID, recorded by the webhook.
status.audit.credentialDeletedAtstring (date-time)nocredentialDeletedAt is when the controller deleted the Secret.
status.audit.requestedBystringnorequestedBy is the Kubernetes user that created the request, recorded by the webhook.
status.audit.resetSentAtstring (date-time)noresetSentAt is set before the reset is sent; its presence refuses a second reset.
status.conditions[]objectnoconditions represent the current state of the request.
status.conditions[].lastTransitionTimestring (date-time)yeslastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
status.conditions[].messagestringyesmessage is a human readable message indicating details about the transition. This may be an empty string.
status.conditions[].observedGenerationintegernoobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
status.conditions[].reasonstringyesreason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
status.conditions[].statusstringyesstatus of the condition, one of True, False, Unknown. Allowed values: True, False, Unknown.
status.conditions[].typestringyestype of condition in CamelCase or in foo.example.com/CamelCase.
status.expiresAtstring (date-time)noexpiresAt is creation time plus ttl; after it the credential is gone and nothing is sent.
status.inspectionobjectnoinspection is the last read-only look at the node.
status.inspection.clusterIDstringno
status.inspection.clusterNamestringno
status.inspection.clusterReachablebooleanno
status.inspection.etcdMembers[]objectno
status.inspection.etcdMembers[].healthybooleanyeshealthy is false when the member did not answer its health check.
status.inspection.etcdMembers[].hostnamestringno
status.inspection.etcdMembers[].idintegeryes
status.inspection.gracefulbooleanno
status.inspection.hostnamestringno
status.inspection.needsForcebooleanno
status.inspection.refusals[]stringnorefusals are why the reset cannot be sent; empty means it can, once confirmed.
status.inspection.rolestringno
status.inspection.talosVersionstringno
status.inspection.uuidstringno
status.inspection.volumes[]objectno
status.inspection.volumes[].encryptedbooleannoencrypted volumes lose their key with the reset; their data becomes unreadable.
status.inspection.volumes[].locationstringno
status.inspection.volumes[].namestringyes
status.inspection.volumes[].sizeBytesintegerno
status.inspection.warnings[]stringno
status.phasestringnophase is where the request is. Allowed values: Inspecting, AwaitingConfirmation, Resetting, WaitingForMaintenance, Done, Failed, Expired.
status.resultstringnoresult is the new maintenance address, or the scan hint, or why the request failed.

Search the docs

Search pages and headings