Breaking changes
- Dropped
-nshorthand for--nodes(PR #197). The long form--nodes <IP>is unchanged; update scripts and docs that use-n IPto--nodes IP. Reason: as aStringSlicepersistent flag on the root command,-nsilently absorbed any-n <value>typed after a wrapped talosctl subcommand (e.g.talm get hostnames -n networkparsednetworkas an additional node and failed inside the gRPC resolver with "produced zero addresses"). Operators withkubectl -n <namespace>muscle memory now get a cleanflag -n not definedfrom cobra instead of silent misinterpretation. The pflag merge model does not allow shadowing the inherited persistent shorthand on individual wrapped subcommands.
Changelog
- d3c602c Merge pull request #200 from cozystack/feat/apply-safety-followups
- b68ec42 feat(apply,upgrade): apply-safety follow-ups (#189 + #190 + #191 + #192)
- 020d209 Merge pull request #199 from cozystack/feat/reset-meta-safe-default
- a5d61ea feat(commands): preserve META by default on talm reset (#185)
- f490e39 fix(commands): dedupe stdinIsTTY between init.go and tui_handler.go
- a00581e Merge pull request #173 from cozystack/feat/apply-safety-gates
- 76c5596 Merge pull request #197 from cozystack/feat/wrapper-ux-hardening
- 4ecd2df fix(commands): preserve ShorthandDeprecated in flag clones and dedupe via helper
- c2f3017 feat(commands): wrapper UX hardening — persistent flags, -n drop, crashdump, kubeconfig hint, dmesg cushion, TUI refusal
- 7868946 feat(apply): apply-time safety gates + init --update non-tty UX
- ed3b820 Merge pull request #163 from cozystack/fix/v1.12-vip-on-vlan-child
- 077b800 fix(charts/talm): filter malformed CIDRs in default_addresses_by_gateway
- 6499767 fix(charts): extend floatingIP fail-fast + numeric coercion to legacy v1.11 path
- e4a4e88 test(engine): scope bridge gateway assertion to br0; seed advertisedSubnets in error helper
- f269301 test(engine): add singleton + wrong-link guards to VIPOnBridge
- 1b586ef test(engine): add missing generic-chart mirrors for new contracts
- 444592b fix(charts,test,docs): hoist floatingIP coercion; pin nil-scope + tie-break; restructure README
- 68a55ef fix(charts,test): nil-safe floatingIP validation; replace Russian comment fragment
- 3940ff4 fix(charts,test): filter malformed CIDRs in addresses_by_link; pin stp/vlan independence
- 409d391 fix(charts,test): correct VLAN filtering COSI key; refresh stale bridge docs
- 11cdb2a fix(charts,docs): toString floatingIP before predicate; refresh README bridge prose
- bf5f7cc feat(charts): emit BridgeConfig + gate default-route fallback on configurable set
- 66cc321 docs(charts): drop internal helper name from user-facing values.yaml
- d814077 refactor(engine/helm,charts): ipIsValid returns bool; hoist scope skip-list
- 718afdf docs(engine/helm): correct cidrContains docstring on operator-typo path
- 1f557f8 fix(charts,test): tighten scope filter, strip workflow leakage, pin no-default-route case
- 43d99fd fix(charts,test): tighten doc precision; pin vipLink+invalid validation order
- 5ca3e09 fix(charts,engine): cidrPrefixLen + ipIsValid + scope/generic coverage
- 499a229 docs: describe new VIP-link auto-selection precedence
- 6e774f3 fix(charts/talm): filter, longest-prefix match VIP-link selection
- 2a18464 fix(engine/helm): make cidrContains lenient on parse failures
- e031294 test(engine): pin IPv6 Hetzner topology — VIP on private IPv6 VLAN
- 27311d1 fix(charts): pin VIP to subnet-matching link instead of default route
- 4c71294 feat(charts/talm): add link_name_for_address discovery helper
- a077c0e feat(engine/helm): add cidrContains template function
- 24470bc test(engine): pin Hetzner topology — VIP must land on private VLAN child
- f5540f3 Merge pull request #162 from cozystack/feat/strict-lint
- 3960231 test(engine): assert 2-space indent in encodeYAMLNodeIndented happy path
- 43b8ab3 test(commands): close write-end of pipe in captureStderr defer
- 37e11e4 fix(main): parse applyOptions.timeout in default-string path too
- 4c24050 docs(main): per-line doc comments on completion-related const block
- fa97b28 build: mark pkg/generated as linguist-generated
- ac577a4 docs(engine): correct extractResourceData doc comment
- 4fd0713 refactor(commands): finish cockroachdb/errors migration in stragglers
- f0cdd6e docs(secureperm): explain unsafe.Sizeof→uint32 conversion safety
- 42974c8 fix(main): replace panic on bad applyOptions.timeout with wrapped error
- af628e6 test(commands): pin captureStderr per-call restore semantics
- 363f7a8 test(engine): pin yaml encode/close error wrapping
- e4b4837 fix(test,engine): self-contained captureStderr; surface enc.Close errors
- 33b01ea refactor(charts): wrap AvailablePresets ReadDir error
- 84757c2 refactor(engine): drop unused ctx parameter from FullConfigProcess
- 0f565e7 test(helm): pin Lines() empty-content guard
- 587edae refactor(charts): wrap embedded WalkDir errors with file path
- f3ce867 style(main): use initSubcommandName constant
- cd29111 test(init): pin gitignore report verb against ambiguous stat errors
- 6107ece fix(init): use os.IsNotExist for stat-before-write branch
- 16fc515 refactor(commands): consolidate rotate-ca endpoint normalisation
- 349da55 fix(commands): reset GlobalArgs.Endpoints to empty between files
- c795127 ci(lint): adopt strict golangci-lint config + cross-platform CI gate