Skip to content

feat: per-master tls_verify + auto-accept minion key on bootstrap (closes #555)#563

Merged
hellodk merged 1 commit into
masterfrom
feat/555-tls-verify-autoaccept
Jun 7, 2026
Merged

feat: per-master tls_verify + auto-accept minion key on bootstrap (closes #555)#563
hellodk merged 1 commit into
masterfrom
feat/555-tls-verify-autoaccept

Conversation

@hellodk

@hellodk hellodk commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds two per-master flags: tls_verify (default False — accepts self-signed/HTTP salt-api) and auto_accept (default True — kri calls key.accept via salt-api after a successful bootstrap run)
  • Migration 042 adds both columns with server_default false/true; downgrade drops them
  • salt_api_client._post threads verify=master.tls_verify into every requests.post
  • All four _check_* helpers in salt_master_probe now accept and pass tls_verify
  • bootstrap_node step 6a: on success, iterates master_auto_accept_info; for each master with auto_accept=True calls run_wheel(master, "key.accept", match=node_minion_id); SaltApiError/Exception caught, warning logged, note appended to bootstrap_logs — bootstrap status never affected
  • Pydantic schemas, FastAPI create route, TypeScript interfaces, and SaltMastersTab form all updated with both flags

Files changed

File Change
fleet_platform/models/salt_master.py +2 columns
fleet_platform/db/migrations/versions/042_* new migration
fleet_platform/schemas/salt_master.py +2 fields in Create/Update/Response
fleet_platform/api/routes/salt_masters.py persist both on create
fleet_platform/services/salt_api_client.py verify=tls_verify in _post
fleet_platform/services/salt_master_probe.py tls_verify param on 4 helpers
fleet_platform/workers/ansible_tasks.py auto-accept block after success
frontend/src/api/saltMasters.ts TS interfaces
frontend/src/pages/SaltMastersTab.tsx two toggles in form
tests/unit/test_tls_verify_autoaccept_555.py 18 new unit tests

Test plan

  • pytest tests/unit/ -q → 1983 passed
  • ruff check + ruff format --check → 0 findings
  • pnpm exec tsc -b --noEmit → 0 type errors
  • pnpm exec eslint src/api/saltMasters.ts src/pages/SaltMastersTab.tsx → 0 errors
  • All pre-commit hooks passed (mypy, vulture, bandit, tsc, eslint, unit tests)

Closes #555

🤖 Generated with Claude Code

…oses #555)

- SaltMaster model: tls_verify (default False) and auto_accept (default True) columns
- Migration 042: add_column both with server_default false/true; downgrade drops them
- salt_api_client._post: passes verify=master.tls_verify to requests.post
- salt_master_probe: threads tls_verify into all four _check_* HTTP helpers
- bootstrap_node (6a): after successful ansible run, calls run_wheel key.accept for
  each master with auto_accept=True; SaltApiError/Exception caught → warning + log
  note; bootstrap status unaffected
- Schemas: tls_verify/auto_accept in SaltMasterCreate, SaltMasterUpdate, SaltMasterResponse
- Route create: persists tls_verify/auto_accept; patch uses existing setattr loop
- Frontend: SaltMaster/Create/Update interfaces updated; two toggles in master form

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@hellodk hellodk added feature New functionality or enhancement p1-high Blocks a user flow labels Jun 7, 2026
@github-actions github-actions Bot added breaking-change Requires migration or breaks existing test Test coverage improvement frontend Frontend / React changes labels Jun 7, 2026
@github-actions

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown

Coverage Report

81.8% on fleet_platform/services/ (gate: 80%)

Gate passed

@hellodk
hellodk merged commit 2c6df5d into master Jun 7, 2026
11 checks passed
@hellodk
hellodk deleted the feat/555-tls-verify-autoaccept branch June 7, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Requires migration or breaks existing feature New functionality or enhancement frontend Frontend / React changes p1-high Blocks a user flow test Test coverage improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Salt-api per-master tls_verify + auto-accept minion key on bootstrap

1 participant