1---2name: talosctl3description: Talos Linux CLI operations — cluster lifecycle, upgrades, reboots, node-level diagnosis, etcd maintenance, and troubleshooting with talosctl.4---56# talosctl — CLI Operations78For machine config YAML (documents, patching) see `talosconfig`. For Terraform provider see `talos-terraform`.910## ⚠️ Configuration Changes Require Dry-Run + Verification1112**Every `apply-config` and `patch machineconfig` MUST be dry-run first, and the user MUST review/approve the output before anything is applied:**1314```bash15# Dry-run first — always16talosctl patch machineconfig --nodes <ip> --patch @patch.yaml --dry-run17talosctl apply-config --nodes <ip> --file config.yaml --dry-run18```1920Only after the user explicitly confirms the dry-run output, run without `--dry-run`.2122## ⚠️ apply-config Needs the FULL Config File2324`talosctl apply-config --file <config>` replaces the node's **entire** machine configuration with the contents of `<config>`. It is NOT a patch tool — providing a partial YAML wipes all unspecified settings.2526- **Full-file changes** (install, network rewrite, secrets rotation) → `talosctl apply-config --file <full-config.yaml>`27- **Targeted changes** (one field) → `talosctl patch machineconfig --patch @patch.yaml`28- Get the current full config first: `talosctl get machineconfig v1alpha1 -o yaml`2930## CLI Quick Reference3132### Cluster Lifecycle3334| Command | Purpose |35|---------|---------|36| `talosctl gen config <name> <endpoint> --with-secrets secrets.yaml` | Generate cluster configs (full config files) |37| `talosctl gen secrets --output-file secrets.yaml` | Generate secrets bundle |38| `talosctl apply-config --nodes <ip> --file config.yaml --insecure` | Apply FULL config to new node |39| `talosctl bootstrap --nodes <ip>` | Bootstrap etcd (once, first CP only) |40| `talosctl kubeconfig --nodes <ip> --force` | Get admin kubeconfig (overwrite existing) |41| `talosctl health --nodes <cps> --wait-timeout=10m` | Check cluster health |42| `talosctl version` | Show client + server versions |4344### Maintenance4546| Command | Purpose |47|---------|---------|48| `talosctl upgrade --image ghcr.io/siderolabs/installer:v1.13.8 --reboot-mode=default` | Upgrade Talos OS (drains node by default) |49| `talosctl upgrade --no-reboot` | Upgrade, defer reboot (replaces deprecated `--stage`) |50| `talosctl upgrade --drain=false` | Upgrade without draining (use with care) |51| `talosctl upgrade-k8s --to v1.36.2 --dry-run` | Upgrade Kubernetes (dry-run first) |52| `talosctl upgrade-k8s --to v1.36.2` | Upgrade Kubernetes |53| `talosctl rollback --nodes <ip>` | Rollback Talos to previous install |54| `talosctl reboot --mode=default` | Reboot node (default/force/powercycle) |55| `talosctl reset --graceful --reboot` | Reset node (removes from cluster) |56| `talosctl shutdown` | Shutdown node (cordon/drain first, `--force` to skip) |5758### Config Changes5960| Command | Purpose |61|---------|---------|62| `talosctl patch machineconfig --nodes <ip> --patch @patch.yaml --dry-run` | Patch specific fields (DRY-RUN FIRST) |63| `talosctl patch machineconfig --nodes <ip> --patch-file patch.yaml` | Patch from file |64| `talosctl apply-config --nodes <ip> --file <FULL-config.yaml> --dry-run` | Replace FULL config (DRY-RUN FIRST) |65| `talosctl apply-config --nodes <ip> --file cfg.yaml -p @patch.yaml` | Apply full config + on-the-fly patches |66| `talosctl get machineconfig v1alpha1 -o yaml` | Get current full config (with ID) |67| `talosctl edit machineconfig` | Edit config in default editor |68| `talosctl validate --mode metal --strict config.yaml` | Validate config offline (metal/cloud/container) |6970**Patch flags:** `-p, --patch stringArray` (inline or `@file`), `--patch-file`. **Apply modes:** `-m, --mode auto|no-reboot|reboot|staged|try`.7172## Node-Level Diagnosis7374Extensive per-node troubleshooting. Add `--nodes <ip>` to every command (or `-n` for multiple).7576### Services & Logs7778```bash79talosctl service # all services + state80talosctl service <id> # single service status81talosctl service <id> start|stop|restart82talosctl logs <service> --tail 100 # service logs (kubelet, etcd, containerd, etc.)83talosctl logs <service> -f # follow logs84talosctl restart <id> # restart a process (e.g. kubelet)85talosctl dmesg # kernel logs86talosctl dmesg -f # follow kernel logs87```8889### Complete Resource Reference (v1.13.7 registry)9091`talosctl get <type>` is the primary read API — Talos models ALL system state as resources. **All 167 types** (165 machinery + 2 COSI meta) below. Full names are `<Name>.<suffix>`; aliases are interchangeable. Not every type populates on every node: control-plane types (etcd, secrets, k8s controlplane ns) only on CP nodes, kubespan only when enabled, secrets/* are sensitive (talosctl redacts). This list is version-bound — run `talosctl get rd` to discover types added by extensions.9293```bash94talosctl get rd # list ALL available resource types on this node95talosctl get <type> -o yaml # full spec for any resource96talosctl get <type> <id> # single resource by ID97talosctl get <type> -w # watch changes98```99100**Common shortcuts:** `mc`/`machineconfig`, `rd`, `links`, `routes`, `addresses`, `resolvers`, `hostname`, `disks`, `cpu`, `members`, `services`/`svc`, `nodename`, `timestatus`, `mounts`.101102#### meta (available on every node)103104| Type | Aliases | Shows |105|------|---------|-------|106| `ResourceDefinitions` | `rd`, `rds`, `resourcedefinitions`, `api-resources` | Every registered type: aliases, print columns |107| `Namespaces` | `ns`, `namespaces` | All namespaces in runtime state |108109#### block / storage (ns runtime)110111| Type | Aliases | Shows |112|------|---------|-------|113| `Disks` | `disk`, `disks` | Physical disks: size, model, serial, transport, WWID |114| `BlockDevices` | `blockdevice`, `blockdevices` | Block devices (partitions): type, partition name |115| `DiscoveredVolumes` | `discoveredvolume`, `discoveredvolumes` | Volumes found on disks (install/bootstrap) |116| `VolumeStatuses` | `volumestatus`, `volumestatuses` | Volume state: type, phase, location, size |117| `VolumeConfigs` | `volumeconfig`, `volumeconfigs` | Desired volume configuration |118| `VolumeLifecycles` | `volumelifecycle`, `volumelifecycles` | Volume lifecycle signals |119| `SystemDisks` | `systemdisk`, `systemdisks` | Which disk is the Talos system disk |120| `MountStatuses` (block) | `mountstatus`, `mountstatuses` | Block-layer mounts: source, target, fs, volume |121| `MountRequests` | `mountrequest`, `mountrequests` | Pending mount requests |122| `VolumeMountRequests` | `volumemountrequest`, `volumemountrequests` | Volume mount requests |123| `VolumeMountStatuses` | `volumemountstatus`, `volumemountstatuses` | Volume mount state |124| `SwapStatuses` | `swap`, `swaps`, `swapstatus`, `swapstatuses` | Swap devices: size, used, priority |125| `BlockSymlinks` | `blocksymlink`, `blocksymlinks` | Symlinks into block device tree |126| `UserDiskConfigStatuses` | `userdiskconfigstatus`, `userdiskconfigstatuses` | User-disk config readiness |127| `ZswapStatuses` | `zswapstatus`, `zswapstatuses` | zswap stats: size, stored, written back |128| `DiscoveryRefreshRequests` | `discoveryrefreshrequest`, `discoveryrefreshrequests` | Re-run disk/volume discovery |129| `DiscoveryRefreshStatuses` | `discoveryrefreshstatus`, `discoveryrefreshstatuses` | Discovery refresh status |130131#### cluster (ns cluster)132133| Type | Aliases | Shows |134|------|---------|-------|135| `Identities` | `identity`, `identities` | Node cluster identity (ID) |136| `Members` | `member`, `members` | Cluster members: hostname, type, OS, addresses |137| `Affiliates` | `affiliate`, `affiliates` | Discovered affiliates / KubeSpan peers |138| `Infos` | `info`, `infos` | Cluster ID, cluster name |139| `DiscoveryConfigs` | `discoveryconfig`, `discoveryconfigs` | Discovery configuration |140141#### config (ns config)142143| Type | Aliases | Shows |144|------|---------|-------|145| `MachineConfigs` | `mc`, `mcs`, `machineconfig`, `machineconfigs` | Active/persistent machine config YAML |146| `MachineTypes` | `machinetype`, `machinetypes`, `mt`, `mts` | controlplane vs worker |147148#### cri (ns cri)149150| Type | Aliases | Shows |151|------|---------|-------|152| `ImageCacheConfigs` | `imagecacheconfig`, `imagecacheconfigs` | CRI image cache status |153| `SeccompProfiles` | `seccompprofile`, `seccompprofiles` | Seccomp profiles |154| `RegistryConfigs` | `registryconfig`, `registryconfigs`, `registries` | Container registry configuration |155156#### etcd (ns etcd)157158| Type | Aliases | Shows |159|------|---------|-------|160| `EtcdSpecs` | `etcdspec`, `etcdspecs` | etcd config: name, addresses |161| `EtcdMembers` | `etcdmember`, `etcdmembers` | etcd cluster members: member ID |162| `EtcdConfigs` | `etcdconfig`, `etcdconfigs` | etcd image config |163| `PKIStatuses` | `pkistatus`, `pkistatuses` | etcd PKI readiness: ready, secrets version |164165#### files (ns files)166167| Type | Aliases | Shows |168|------|---------|-------|169| `EtcFileSpecs` | `etcfilespec`, `etcfilespecs` | Desired /etc files |170| `EtcFileStatuses` | `etcfilestatus`, `etcfilestatuses` | Applied /etc file state |171172#### hardware (ns hardware)173174| Type | Aliases | Shows |175|------|---------|-------|176| `Processors` | `cpu`, `cpus`, `processor`, `processors` | CPU topology and features |177| `MemoryModules` | `ram`, `memorymodule`, `memorymodules` | RAM modules: manufacturer, model, size |178| `PCIDevices` | `device`, `devices`, `pcidevice`, `pcidevices` | PCI devices: class, vendor, product |179| `SystemInformations` | `systeminformation`, `systeminformations` | DMI: vendor, model, UUID, firmware |180| `PCRStatuses` | `pcrstatus`, `pcrstatuses` | TPM PCR status |181| `PCIDriverRebindConfigs` | `pcidriverrebindconfig`, `pcidriverrebindconfigs` | Requested PCI driver rebinds |182| `PCIDriverRebindStatuses` | `pcidriverrebinds`, `pcidriverrebindstatus`, `pcidriverrebindstatuses` | PCI driver rebind results |183184#### k8s node-local (ns k8s)185186| Type | Aliases | Shows |187|------|---------|-------|188| `Nodenames` | `nodename`, `nodename...` | Kubernetes node name |189| `NodeStatuses` | `nodestatus`, `nodestatuses` | Node ready, unschedulable |190| `NodeIPs` | `nodeip`, `nodeips` | Resolved node IPs |191| `NodeIPConfigs` | `nodeipconfig`, `nodeipconfigs` | Node IP selection config |192| `KubeletConfigs` | `kubeletconfig`, `kubeletconfigs` | Desired kubelet configuration |193| `KubeletSpecs` | `kubeletspec`, `kubeletspecs` | Kubelet image, args |194| `KubeletLifecycles` | `kubeletlifecycle`, `kubeletlifecycles` | Kubelet lifecycle flags |195| `KubeletKubeconfigs` | `kubeletkubeconfig`, `kubeletkubeconfigs` | Kubelet kubeconfig hash |196| `StaticPods` | `staticpod`, `staticpods` | Static pod definitions |197| `StaticPodStatuses` | `podstatus`, `staticpodstatus`, `staticpodstatuses` | Static pod readiness |198| `StaticPodServerStatuses` | `staticpodserverstatus`, `staticpodserverstatuses` | Static pod server status |199| `NodeLabelSpecs` | `nodelabelspec`, `nodelabelspecs` | Labels to apply to node |200| `NodeTaintSpecs` | `nodetaintspec`, `nodetaintspecs` | Taints to apply to node |201| `NodeAnnotationSpecs` | `nodeannotationspec`, `nodeannotationspecs` | Annotations to apply to node |202| `NodeCordonedSpecs` | `nodecordonedspec`, `nodecordonedspecs` | Node cordon state |203| `KubePrismConfigs` | `kubeprismconfig`, `kubeprismconfigs` | KubePrism LB config |204| `KubePrismEndpoints` | `kubeprismendpoint`, `kubeprismendpoints` | KubePrism backend endpoints |205| `KubePrismStatuses` | `kubeprismstatus`, `kubeprismstatuses` | KubePrism health data |206207#### k8s control plane (ns controlplane)208209| Type | Aliases | Shows |210|------|---------|-------|211| `Endpoints` | `endpoint`, `endpoints` | API server endpoints |212| `Manifests` | `manifest`, `manifests` | Rendered control-plane manifests |213| `ManifestStatuses` | `manifeststatus`, `manifeststatuses` | Manifest apply status |214| `BootstrapManifestsConfigs` | `bootstrapmanifestsconfig`, `bootstrapmanifestsconfigs` | Bootstrap manifests config |215| `ExtraManifestsConfigs` | `extramanifestsconfig`, `extramanifestsconfigs` | Extra manifest URLs/contents |216| `ConfigStatuses` | `configstatus`, `configstatuses` | Kubeconfig readiness |217| `SecretStatuses` | `secretstatus`, `secretstatuses` | Kubernetes secrets readiness |218| `APIServerConfigs` | `apiserverconfig`, `apiserverconfigs` | kube-apiserver config |219| `ControllerManagerConfigs` | `controllermanagerconfig`, `controllermanagerconfigs` | kube-controller-manager config |220| `SchedulerConfigs` | `schedulerconfig`, `schedulerconfigs` | kube-scheduler config |221| `AdmissionControlConfigs` | `admissioncontrolconfig`, `admissioncontrolconfigs` | Admission control plugin config |222| `AuditPolicyConfigs` | `auditpolicyconfig`, `auditpolicyconfigs` | Audit policy config |223| `AuthorizationConfigs` | `authorizationconfig`, `authorizationconfigs` | Authorization config |224225#### kubeaccess (ns config)226227| Type | Aliases | Shows |228|------|---------|-------|229| `KubernetesAccessConfigs` | `kubernetesaccessconfig`, `kubernetesaccessconfigs` | API access: roles, namespaces |230231#### kubespan232233| Type | Aliases | Shows |234|------|---------|-------|235| `KubeSpanConfigs` | `kubespanconfig`, `kubespanconfigs` | KubeSpan configuration |236| `KubeSpanIdentities` | `kubespanidentity`, `kubespanidentities` | Node identity: address, pubkey |237| `KubeSpanEndpoints` | `kubespanendpoint`, `kubespanendpoints` | WireGuard endpoints |238| `KubeSpanPeerSpecs` | `kubespanpeerspec`, `kubespanpeerspecs` | Desired peers |239| `KubeSpanPeerStatuses` | `kubespanpeerstatus`, `kubespanpeerstatuses` | Peer state: endpoint, RX, TX |240241#### network (ns network)242243| Type | Aliases | Shows |244|------|---------|-------|245| `LinkStatuses` | `link`, `links`, `linkstatus`, `linkstatuses` | Network interfaces: type, kind, MAC, oper state |246| `LinkSpecs` | `linkspec`, `linkspecs` | Desired link config |247| `LinkRefreshes` | `linkrefresh`, `linkrefreshes` | Refresh link state signal |248| `LinkAliasSpecs` | `linkaliasspec`, `linkaliasspecs` | Desired interface alias |249| `EthernetStatuses` | `ethtool`, `ethernetstatus`, `ethernetstatuses` | Ethtool info: link, speed |250| `EthernetSpecs` | `ethernetspec`, `ethernetspecs` | Desired ethtool settings |251| `AddressStatuses` | `address`, `addresses`, `addressstatus`, `addressstatuses` | IP addresses |252| `AddressSpecs` | `addressspec`, `addressspecs` | Desired addresses |253| `HardwareAddresses` | `hardwareaddress`, `hardwareaddresses` | Desired MAC addresses |254| `RouteStatuses` | `route`, `routes`, `routestatus`, `routestatuses` | Routes: destination, gateway, link |255| `RouteSpecs` | `routespec`, `routespecs` | Desired routes |256| `RoutingRuleStatuses` | `routingrule`, `routingrules`, `routingrulestatus`, `routingrulestatuses` | Policy routing rules |257| `RoutingRuleSpecs` | `routingrulespec`, `routingrulespecs` | Desired routing rules |258| `ResolverStatuses` | `resolver`, `resolvers`, `resolverstatus`, `resolverstatuses` | DNS resolvers, search domains |259| `ResolverSpecs` | `resolverspec`, `resolverspecs` | Desired resolvers |260| `HostnameStatuses` | `hostname`, `hostnamestatus`, `hostnamestatuses` | Hostname + domainname |261| `HostnameSpecs` | `hostnamespec`, `hostnamespecs` | Desired hostname |262| `TimeServerStatuses` | `timeserver`, `timeservers`, `timeserverstatus`, `timeserverstatuses` | NTP servers in use |263| `TimeServerSpecs` | `timeserverspec`, `timeserverspecs` | Desired NTP servers |264| `NodeAddresses` | `nodeaddress`, `nodeaddresses` | Node addresses + sort algorithm |265| `NodeAddressFilters` | `nodeaddressfilter`, `nodeaddressfilters` | Include/exclude subnet filters |266| `NodeAddressSortAlgorithms` | `nodeaddresssortalgorithm`, `nodeaddresssortalgorithms` | Address sort algorithm |267| `NfTablesChains` | `chain`, `chains`, `nftableschain`, `nftableschains` | nftables chains: type, hook, priority |268| `DNSUpstreams` | `dnsupstream`, `dnsupstreams` | DNS upstream resolvers: healthy |269| `DNSResolveCaches` | `dnsresolvecache`, `dnsresolvecaches` | Host DNS resolve cache |270| `HostDNSConfigs` | `hostdnsconfig`, `hostdnsconfigs` | Host DNS config: enabled |271| `ProbeStatuses` | `probe`, `probes`, `probestatus`, `probestatuses` | Connectivity probe results |272| `ProbeSpecs` | `probespec`, `probespecs` | Desired probes |273| `OperatorSpecs` | `operatorspec`, `operatorspecs` | Network operators (DHCP, VIP) |274| `PlatformConfigs` | `platformconfig`, `platformconfigs` | Cloud platform network config |275| `DeviceConfigSpecs` | `deviceconfigspec`, `deviceconfigspecs` | Network device config |276| `NetworkStatuses` | `netstatus`, `netstatuses`, `networkstatus`, `networkstatuses` | Overall network status |277278#### perf (ns perf)279280| Type | Aliases | Shows |281|------|---------|-------|282| `CPUStats` | `cpustat`, `cpustats` | Last CPU stats: user, system |283| `MemoryStats` | `memorystat`, `memorystats` | Last memory stats: used, total |284285#### runtime (ns runtime)286287| Type | Aliases | Shows |288|------|---------|-------|289| `MachineStatuses` | `machinestatus`, `machinestatuses` | Machine lifecycle: stage, ready |290| `MachineResetSignals` | `machineresetsignal`, `machineresetsignals` | Reset-in-progress signal |291| `Versions` | `version`, `versions` | Talos version status |292| `PlatformMetadatas` | `platformmetadata`, `platformmetadatas` | Cloud platform metadata |293| `KernelCmdlines` | `cmdline`, `kernelcmdline`, `kernelcmdlines` | Kernel command line |294| `KernelParamSpecs` | `kernelparamspec`, `kernelparamspecs` | Desired kernel params/sysctls |295| `KernelParamDefaultSpecs` | `kernelparamdefaultspec`, `kernelparamdefaultspecs` | Default kernel params |296| `KernelParamStatuses` | `sysctls`, `kernelparams`, `kernelparameters`, `kernelparamstatus`, `kernelparamstatuses` | Applied sysctl state |297| `KernelModuleSpecs` | `kernelmodulespec`, `kernelmodulespecs` | Kernel modules to load |298| `LoadedKernelModules` | `module`, `modules`, `loadedkernelmodule`, `loadedkernelmodules` | Loaded kernel modules |299| `MetaKeys` | `meta`, `metakey`, `metakeys` | META partition key/value pairs |300| `MetaLoads` | `metaload`, `metaloads` | META loaded marker |301| `UniqueMachineTokens` | `uniquemachinetoken`, `uniquemachinetokens` | Unique machine token |302| `Environments` | `env`, `environment`, `environments` | Environment variables |303| `MountStatuses` (runtime) | `mounts`, `mountstatus`, `mountstatuses` | Runtime mounts |304| `ServicePIDs` | `servicepid`, `servicepids` | Service → PID mapping |305| `KmsgLogConfigs` | `kmsglogconfig`, `kmsglogconfigs` | Kernel log streaming config |306| `OOMActions` | `oomaction`, `oomactions` | OOM action records |307| `BootedEntries` | `bootedentry`, `bootedentries` | Booted bootloader entry |308| `Diagnostics` | `diagnostic`, `diagnostics` | Diagnostic warnings |309| `SecurityStates` | `securitystate`, `securitystates` | Secureboot, UKI, SELinux state |310| `SBOMItems` | `sbomitem`, `sbomitems` | SBOM entries |311| `ExtensionStatuses` | `extensions`, `extensionstatus`, `extensionstatuses` | Installed system extensions |312| `ExtensionServiceConfigs` | `extensionserviceconfig`, `extensionserviceconfigs` | Extension service config |313| `ExtensionServiceConfigStatuses` | `extensionserviceconfigstatus`, `extensionserviceconfigstatuses` | Extension service config status |314| `MaintenanceServiceConfigs` | `maintenanceserviceconfig`, `maintenanceserviceconfigs` | Maintenance service config |315| `MaintenanceServiceRequests` | `maintenanceservicerequest`, `maintenanceservicerequests` | Maintenance service request |316| `APIServiceConfigs` | `apiserviceconfig`, `apiserviceconfigs` | Talos API service config |317| `EventSinkConfigs` | `eventsinkconfig`, `eventsinkconfigs` | Event sink (log shipping) config |318| `WatchdogTimerConfigs` | `watchdogtimerconfig`, `watchdogtimerconfigs` | Watchdog config: device, timeout |319| `WatchdogTimerStatuses` | `watchdogtimerstatus`, `watchdogtimerstatuses` | Watchdog status |320| `DevicesStatuses` | `devicesstatus`, `devicesstatuses` | Hardware devices readiness |321322#### secrets (ns secrets, control-plane, sensitive)323324| Type | Aliases | Shows |325|------|---------|-------|326| `OSRootSecrets` | `osrootsecret`, `osrootsecrets` | OS root CA & certs |327| `KubernetesRootSecrets` | `kubernetesrootsecret`, `kubernetesrootsecrets` | K8s root CA & SA keys |328| `KubernetesSecrets` | `kubernetessecret`, `kubernetessecrets` | K8s cert bundle |329| `KubernetesDynamicCerts` | `kubernetesdynamiccert`, `kubernetesdynamiccerts` | Dynamically issued K8s certs |330| `KubeletSecrets` | `kubeletsecret`, `kubeletsecrets` | Kubelet client cert bundle |331| `EtcdRootSecrets` | `etcdrootsecret`, `etcdrootsecrets` | etcd root CA & certs |332| `EtcdSecrets` | `etcdsecret`, `etcdsecrets` | etcd server/peer certs |333| `TrustdCertificates` | `trustdcertificate`, `trustdcertificates` | Trustd cert bundle |334| `ApiCertificates` | `apicertificate`, `apicertificates` | Talos API cert bundle |335| `MaintenanceRootSecrets` | `maintenancerootsecret`, `maintenancerootsecrets` | Maintenance-mode root secrets |336| `CertSANs` | `certsan`, `certsans` | SANs for API certs |337| `EncryptionSalts` | `encryptionsalt`, `encryptionsalts` | Encryption salt for secrets |338339#### security (ns security)340341| Type | Aliases | Shows |342|------|---------|-------|343| `TUFTrustedRoots` | `tuftrustedroot`, `tuftrustedroots` | TUF trusted root refresh |344| `ImageVerificationRules` | `imageverificationrule`, `imageverificationrules` | Image verification policy |345346#### siderolink (ns config)347348| Type | Aliases | Shows |349|------|---------|-------|350| `SiderolinkConfigs` | `siderolinkconfig`, `siderolinkconfigs` | SideroLink config |351| `SiderolinkTunnels` | `siderolinktunnel`, `siderolinktunnels` | SideroLink tunnel state |352| `SiderolinkStatuses` | `siderolinkstatus`, `siderolinkstatuses` | SideroLink connection status |353354#### time (ns runtime)355356| Type | Aliases | Shows |357|------|---------|-------|358| `TimeStatuses` | `timestatus`, `timestatuses` | NTP sync status |359| `AdjtimeStatuses` | `adjtimestatus`, `adjtimestatuses` | adjtimex state: offset, status |360361#### v1alpha1 (ns runtime)362363| Type | Aliases | Shows |364|------|---------|-------|365| `Services` | `svc`, `service`, `services` | Talos services: running, healthy |366| `AcquireConfigSpecs` | `acquireconfigspec`, `acquireconfigspecs` | Config acquisition signal |367| `AcquireConfigStatuses` | `acquireconfigstatus`, `acquireconfigstatuses` | Config acquired; boot proceeds |368369### System Inspection370371| Command | Purpose |372|---------|---------|373| `talosctl containers` | List system containers (`-k` for K8s namespace) |374| `talosctl processes` | List running processes (alias: ps) |375| `talosctl stats` | Container stats (CPU/mem per container) |376| `talosctl memory` | Memory usage (alias: free) |377| `talosctl cgroups --preset memory` | cgroupv2 usage (cpu/cpuset/io/memory/process/psi/swap) |378| `talosctl mounts` | Mount points |379| `talosctl list /var` | Directory listing (alias: ls) |380| `talosctl read /path` | Read a file (alias: cat) |381| `talosctl usage /var` | Disk usage (alias: du) |382| `talosctl copy /path .` | Copy data out of node |383| `talosctl image list` | Images in container runtime |384| `talosctl image pull <ref>` | Pull image into node |385| `talosctl time --check <ntp-server>` | Server time + NTP check (`--check server` form) |386| `talosctl events` | Stream runtime events (`--duration 1h` for history) |387| `talosctl inspect dependencies` | Controller-resource dependency graph |388| `talosctl meta write` | Write META partition keys |389390### Network Diagnosis391392```bash393talosctl netstat -t --listening # TCP listening sockets (host)394talosctl netstat -a # all socket states395talosctl netstat -k # sockets used by K8s pods396talosctl netstat <namespace>/<pod> # specific pod's connections397talosctl pcap -i eth0 # live packet capture (tcpdump alias)398talosctl pcap -i eth0 --output file.pcap399```400401### Diagnostics & Debug402403| Command | Purpose |404|---------|---------|405| `talosctl dashboard` | Real-time cluster dashboard |406| `talosctl support` | Dump full debug archive (logs, configs, resources) |407| `talosctl debug` | Run a debug container on node |408| `talosctl version` | Version info (client + node) |409| `talosctl conformance kubernetes` | Run K8s conformance tests |410411### etcd412413| Command | Purpose |414|---------|---------|415| `talosctl etcd members` | List etcd cluster members |416| `talosctl etcd status` | etcd cluster member status |417| `talosctl etcd alarm list` | Check etcd alarms |418| `talosctl etcd alarm disarm` | Clear no-space alarms |419| `talosctl etcd snapshot snapshot.db` | Backup etcd |420| `talosctl etcd defrag --nodes <ip>` | Defrag etcd database |421| `talosctl etcd forfeit-leadership` | Move leader for maintenance |422| `talosctl etcd remove-member <member>` | Remove member from cluster |423| `talosctl etcd leave` | Make node leave etcd cluster |424425## Apply Modes426427| Mode | Behavior |428|------|----------|429| `auto` (default) | Immediate apply, reboot if needed |430| `no-reboot` | Apply without reboot |431| `reboot` | Always reboot to apply |432| `staged` | Apply on next reboot |433| `try` | Apply, rollback after timeout if not confirmed (default 1m) |434435## Reboot Modes436437| Mode | Behavior |438|------|----------|439| `default` | Normal reboot via kexec |440| `powercycle` | Skip kexec (cold boot, useful for BMC) |441| `force` | Skip graceful teardown (emergency only) |442443## Common Patterns444445### Bootstrap cluster446447```bash448talosctl gen secrets --output-file secrets.yaml449talosctl gen config prod https://10.0.1.100:6443 \450 --with-secrets secrets.yaml \451 --config-patch-control-plane @network.yaml452talosctl apply-config --nodes 10.0.1.10 --file controlplane.yaml --insecure453talosctl bootstrap --nodes 10.0.1.10454talosctl apply-config --nodes 10.0.1.11 --file controlplane.yaml455talosctl kubeconfig --nodes 10.0.1.10456kubectl get nodes457```458459### Upgrade (rolling CP)460461```bash462# Sequential CP upgrade with verification463for node in cp1 cp2 cp3; do464 talosctl upgrade --nodes $node --image ghcr.io/siderolabs/installer:v1.13.8465 kubectl wait --for=condition=Ready node/$node --timeout=10m466 talosctl etcd members467 sleep 30468done469```470471### Targeted config patch (dry-run first!)472473```bash474# 1. Dry-run — show what changes WITHOUT applying475talosctl patch machineconfig --nodes cp1 --patch @patch.yaml --dry-run476477# 2. After user confirms the diff, apply478talosctl patch machineconfig --nodes cp1 --patch @patch.yaml479```480481### Full config replacement (dry-run first!)482483```bash484# 1. Get current full config485talosctl get machineconfig v1alpha1 --nodes cp1 -o yaml > current.yaml486487# 2. Edit, then dry-run the new full config488talosctl apply-config --nodes cp1 --file edited.yaml --dry-run489490# 3. After user confirms, apply491talosctl apply-config --nodes cp1 --file edited.yaml492```493494### Upgrade Kubernetes495496```bash497talosctl upgrade-k8s --to v1.36.2 --dry-run498talosctl upgrade-k8s --to v1.36.2499```500501### Node troubleshooting workflow502503```bash504# 1. Services health505talosctl service --nodes <ip>506507# 2. Failed service logs508talosctl logs <failing-service> --tail 100 --nodes <ip>509510# 3. Kernel issues511talosctl dmesg --nodes <ip>512513# 4. Resources (disk/CPU/mem)514talosctl memory --nodes <ip>515talosctl stats --nodes <ip>516talosctl get disks --nodes <ip> # hardware disk inventory517talosctl get blockdevices --nodes <ip> # block devices + partitions518talosctl get disks sda -o yaml --nodes <ip> # single disk detail519talosctl usage /var --nodes <ip> # filesystem-level usage520521# 5. Network522talosctl get links --nodes <ip>523talosctl netstat -t --listening --nodes <ip>524525# 6. Full archive for support526talosctl support --nodes <ip>527```528529### etcd maintenance530531```bash532talosctl etcd snapshot /backup/etcd-$(date +%Y%m%d).snapshot533talosctl etcd defrag --nodes cp1534talosctl etcd alarm list535talosctl etcd alarm disarm # Clear no-space alarms536talosctl etcd forfeit-leadership # Move leader for maintenance537```538539## Common Mistakes540541- **Bootstrap more than once** — Only one `talosctl bootstrap` per cluster lifetime. Running it again creates split-brain.542- **Losing secrets** — Always `--with-secrets secrets.yaml` during `gen config`. Without secrets, you cannot add nodes, rotate certs, or recover. Store encrypted in Vault/SOPS.543- **Upgrade all CP simultaneously** — Sequential only. etcd needs quorum. One node at a time, verify health between each.544- **`talosctl apply-config` with a partial file** — apply-config REPLACES the whole config. Partial YAML wipes unspecified settings. Use `talosctl patch machineconfig` for targeted changes.545- **Skipping `--dry-run`** — Every config change must be dry-run first and reviewed by the user before applying.546- **`talosctl get disks` vs `talosctl disks`** — `get disks` uses the `disks.block.talos.dev` resource. `talosctl disks` is a separate command with different output.547- **`--stage`/`--preserve` flags deprecated** — Legacy flags in v1.13+, removed in Talos 1.18. Use `--no-reboot` instead of `--stage`.548- **Apply config to all nodes at once** — For CP changes, use sequential apply with health checks between nodes (etcd quorum).549- **`talosctl reset` without `--graceful=false`** — By default `--graceful=true` which cordons/drains and removes from etcd. Set `--graceful=false --reboot` for hard reset.550- **`talosctl get machineconfig` without ID** — Needs the resource ID: `talosctl get machineconfig v1alpha1`.551- **Wrong diagnostics commands** — `interfaces`/`routes` are NOT talosctl commands. Use `talosctl get links` / `talosctl get routes`.