Files
home-ops/talos/mod.just
T
grachevko 3d5f56f099
E2E / reject-invalid (bad-vlan-tag) (push) Skipped
E2E / reject-invalid (missing-schematic) (push) Skipped
E2E / reject-invalid (nested-cidr-overlap) (push) Skipped
E2E / reject-invalid (node-uses-gateway-addr) (push) Skipped
E2E / reject-invalid (overlapping-cidrs) (push) Skipped
E2E / reject-invalid (partial-bgp) (push) Skipped
E2E / reject-invalid (reserved-node-name) (push) Skipped
E2E / reject-invalid (bad-bgp-asn) (push) Skipped
E2E / reject-invalid (bad-mac-address) (push) Skipped
E2E / reject-invalid (bad-repo-url) (push) Skipped
E2E / reject-invalid (duplicate-gateway-addrs) (push) Skipped
E2E / reject-invalid (duplicate-node-names) (push) Skipped
E2E / reject-invalid (gateway-node-collision) (push) Skipped
E2E / reject-invalid (missing-dns-token) (push) Skipped
E2E / reject-invalid (missing-external-gateway) (push) Skipped
E2E / reject-invalid (missing-known-hosts) (push) Skipped
E2E / reject-invalid (node-addr-outside-cidr) (push) Skipped
E2E / reject-invalid (non-canonical-cidr) (push) Skipped
E2E / reject-invalid (tiny-svc-cidr) (push) Skipped
E2E / reject-invalid (tunnel-without-dns) (push) Skipped
E2E / accept-valid (internal) (push) Skipped
E2E / accept-valid (multi-controller) (push) Skipped
E2E / validator-tests (push) Skipped
E2E / accept-valid (no-webhook) (push) Skipped
E2E / accept-valid (private) (push) Skipped
E2E / accept-valid (public) (push) Skipped
E2E / accept-valid (single-node) (push) Skipped
E2E / accept-valid (direct) (push) Skipped
E2E / accept-valid (selfhosted) (push) Skipped
chore: initial commit 🚀
2026-09-16 22:21:59 +03:00

65 lines
1.9 KiB
Plaintext

set quiet
set shell := ['bash', '-euo', 'pipefail', '-c']
set script-interpreter := ['bash', '-euo', 'pipefail']
set default-list
set default-script
# Day-2 apply/upgrade recipes rely on topf's built-in diff-and-confirm
# prompt; only the destructive reset recipes disable it in favour of just's
# own confirmation.
[doc('Apply Talos config to all nodes (shows a diff and asks first)')]
[group('talos')]
apply:
topf apply
[arg('mode', pattern='auto|reboot|no-reboot|staged|try')]
[doc('Apply Talos config to a node (shows a diff and asks first)')]
[group('talos')]
apply-node node mode='auto':
topf apply --nodes-filter "^{{ node }}$" --mode "{{ mode }}"
[doc('Show pending config changes without applying them')]
[group('talos')]
diff:
topf apply --dry-run
[doc('List all nodes and their current state')]
[group('talos')]
nodes:
topf nodes
[doc('Render Talos machine configs to ./rendered')]
[group('talos')]
render:
topf render --output ./rendered
[confirm("This will destroy your cluster and reset all nodes to maintenance mode — continue? [y/N]")]
[doc('Reset all nodes back to maintenance mode (DESTRUCTIVE)')]
[group('talos')]
reset:
topf reset --confirm=false
[confirm("This will reset node " + node + " to maintenance mode — continue? [y/N]")]
[doc('Reset a single node back to maintenance mode (DESTRUCTIVE)')]
[group('talos')]
reset-node node:
topf reset --nodes-filter "^{{ node }}$" --confirm=false
# topf intentionally does not manage Kubernetes upgrades
[doc('Upgrade Kubernetes')]
[group('talos')]
upgrade-k8s:
talosctl --nodes "$(yq '[.nodes[] | select(.role == "control-plane")][0].ip' topf.yaml)" \
upgrade-k8s --to "$(yq '.kubernetesVersion' topf.yaml)"
[doc('Upgrade Talos on all nodes, one at a time (asks first)')]
[group('talos')]
upgrade:
topf upgrade
[doc('Upgrade Talos on a single node (asks first)')]
[group('talos')]
upgrade-node node:
topf upgrade --nodes-filter "^{{ node }}$"