Enforce readiness tiers and reconcile blocked workplans
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e75a-fc5c-7913-9dba-9846210c766d
This commit is contained in:
parent
370e1f84c7
commit
36445ae679
14 changed files with 652 additions and 39 deletions
|
|
@ -5,6 +5,7 @@ from __future__ import annotations
|
|||
import argparse
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from collections.abc import Sequence
|
||||
|
||||
from ops_mason.kubernetes_plane import (
|
||||
|
|
@ -26,6 +27,8 @@ def _parser() -> argparse.ArgumentParser:
|
|||
for name in ("render", "preflight", "verify", "rollback-plan"):
|
||||
command = commands.add_parser(name)
|
||||
command.add_argument("--bundle", required=True)
|
||||
if name == "preflight":
|
||||
command.add_argument("--readiness-repo", type=Path)
|
||||
|
||||
apply_parser = commands.add_parser("apply")
|
||||
apply_parser.add_argument("--bundle", required=True)
|
||||
|
|
@ -33,6 +36,9 @@ def _parser() -> argparse.ArgumentParser:
|
|||
apply_parser.add_argument(
|
||||
"--expect-digest", required=True, help="exact digest returned by preflight"
|
||||
)
|
||||
apply_parser.add_argument("--readiness-repo", type=Path)
|
||||
apply_parser.add_argument("--activation", choices=("APPROVED", "BREAK_GLASS"), default="APPROVED")
|
||||
apply_parser.add_argument("--break-glass-reason")
|
||||
return parser
|
||||
|
||||
|
||||
|
|
@ -43,7 +49,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|||
if args.command == "render":
|
||||
result = bundle.render()
|
||||
elif args.command == "preflight":
|
||||
result = preflight(bundle)
|
||||
result = preflight(bundle, readiness_repo=args.readiness_repo)
|
||||
elif args.command == "verify":
|
||||
result = verify(bundle)
|
||||
elif args.command == "rollback-plan":
|
||||
|
|
@ -53,6 +59,9 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|||
bundle,
|
||||
confirm_plan_id=args.confirm,
|
||||
expected_digest=args.expect_digest,
|
||||
readiness_repo=args.readiness_repo,
|
||||
activation=args.activation,
|
||||
break_glass_reason=args.break_glass_reason,
|
||||
)
|
||||
else: # pragma: no cover - argparse enforces the command set
|
||||
raise AssertionError(args.command)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue