Skip to content

feat: define service-catalog workload contract for homelab validation#200

Open
clubanderson wants to merge 1 commit into
projectbluefin:mainfrom
clubanderson:feat/service-catalog-contract
Open

feat: define service-catalog workload contract for homelab validation#200
clubanderson wants to merge 1 commit into
projectbluefin:mainfrom
clubanderson:feat/service-catalog-contract

Conversation

@clubanderson

Copy link
Copy Markdown
Contributor

Summary

Defines the shared workload contract that every service-catalog lane under #51 must satisfy, closing #66. This is a documentation/contract-definition change — no workflows or test code.

Adds docs/service-catalog-contract.md covering nine areas:

  1. K8s-native assumption — raw manifests only, no VMs, no Helm; VM-backed validation (epic: homelab cluster substrate and fleet-client model #54) is explicitly not a blocker
  2. Deployment — namespace isolation, manifest application, readiness evidence, synthetic secrets created before Deployment
  3. Persistence — PVC lifecycle, restart survival via sentinel file write/read, storage dependency on local-path (RWO), skip with feat: surface shared-storage and RWX blocker for homelab validation #62 reference for RWX
  4. Reachability — cluster DNS resolution, endpoints evidence, HTTP response capture; layers feat: define first HTTPS service-exposure lane for homelab workloads #58 (HTTPS) and feat: define auth-gating lane for exposed homelab service UIs #61 (auth) as additive
  5. Upgrade/redeploy — image tag change + config change evidence for lanes claiming durability; explicit gap statement otherwise
  6. Teardown — onExit namespace deletion within 180s, idempotent cleanup, no cluster-scoped leaks
  7. Cross-epic dependencies — explicit table linking epic: homelab storage and role-template validation #52 (storage), epic: homelab access, TLS, and service security #53 (access/TLS), epic: homelab cluster substrate and fleet-client model #54 (substrate/fleet-client) with status
  8. Shared test infrastructure — documents kube.py symbols and run-incluster-tests env var contract
  9. Lane compliance checklist — checkbox list for new lane PRs

Also adds a cross-reference from homelab-contracts.md to the new contract doc.

Links

Test plan

  • Documentation only — no runtime changes
  • All nine contract sections are present and internally consistent
  • Cross-epic dependency table references correct issues and statuses
  • Lane compliance checklist covers all contract sections
  • homelab-contracts.md cross-references the new doc

…projectbluefin#66)

Add docs/service-catalog-contract.md defining the shared workload
contract that every service-catalog lane under projectbluefin#51 must satisfy.

The contract covers nine areas:
1. K8s-native first-pass assumption (no VMs, no Helm, raw manifests)
2. Deployment: namespace isolation, manifest application, readiness
   evidence, secret/env handling
3. Persistence: PVC lifecycle, restart survival with sentinel files
4. Reachability: cluster DNS, endpoints, HTTP response evidence
5. Upgrade/redeploy: image tag change and config change evidence
6. Teardown: onExit namespace cleanup with timeout
7. Cross-epic dependencies: projectbluefin#52 storage, projectbluefin#53 access/TLS, projectbluefin#54 VM
   follow-up (explicitly not a blocker)
8. Shared test infrastructure: kube.py module and env var contract
9. Lane compliance checklist for new lane PRs

Also adds a cross-reference from homelab-contracts.md to the new doc.

Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: unknown <unknown@users.noreply.github.com>

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — workload contract definition docs.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Service-catalog lane addition. Merge after foundational #202. LGTM.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved via org-wide review.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved via org-wide review.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Approved ✅

Part of the structured service-catalog project build-up. Conventional Commits format, referenced issues, consistent with related PRs in the series.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: define service-catalog workload contract for homelab validation

3 participants