3.8 KiB
3.8 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |||
|---|---|---|---|---|---|---|---|---|---|
| 07-docs-rbac | Kubernetes docs and RBAC | completed | 3 |
|
plan.md | ../../specs/kubernetes-executor/spec.md |
Task 07: Kubernetes docs and RBAC
- Acceptance: public executor/Kubernetes/feature-status/security docs match shipped auth, template ownership, image, storage, recovery, cleanup, version, and trust boundaries.
- Acceptance: an opt-in namespaced ServiceAccount/Role/RoleBinding example grants only the required executor operations and is not silently applied by the existing safe deployment path.
- Acceptance: relevant AGENTS guidance and public-doc validation remain current.
- Verification:
node --test scripts/validate-public-docs.test.mjs && node scripts/validate-public-docs.mjs && git diff --check - Files likely touched:
docs/public/executors.md,docs/public/k8s.md,docs/public/feature-status.md, optionaldocs/public/security.md,k8s/executor-rbac.yaml, and scopedAGENTS.mdfiles. - Dependencies: Tasks 02, 03, and 05 so docs describe final behavior.
- Parallelism: parallel-safe with Task 06 after dependencies; owns docs, manifests, and guidance files only.
- Inputs: full spec, ADR, final config/API/UI names, docs-maintainer rules.
Results
Completed the Kubernetes executor public documentation and opt-in namespaced RBAC example.
- Updated
docs/public/executors.md,docs/public/k8s.md,docs/public/feature-status.md, anddocs/public/security.md. The Kubernetes page remains a how-to guide; the executor and feature-status pages are reference material, and the security addition is explanation. - Added an explicit administrator trust warning that kubeconfig exec credential helpers run with backend privileges, with root-owned/read-only file guidance and review requirements for exec and auth-provider plugins.
- The integration audit also updated exhaustive executor references in
docs/public/architecture.md,docs/public/operations.md,docs/public/developer-tools.md, anddocs/public/tasks-and-workflows.mdso runtime, editor, workspace-source, metrics, credential, and cleanup behavior no longer omits Kubernetes. - Updated
docs/public/coverage.jsonwith the shipped Kubernetes executor backend, UI, manifest, unit, and E2E evidence. No navigation change was required because every changed page already had a published slug. - Added
k8s/executor-rbac.yaml. It is not referenced by the control-plane apply command. Its Role grants Podget/create/delete/watch, Podexec/portforwardget/create, and the conditional managed-PVCget/create/deleterule, with no Namespace or Pod-list permission. - Updated root and backend
AGENTS.mdguidance so the containers E2E project, Kubernetes packages, runtime backend, and exact lifecycle contract are discoverable to future contributors.
Validation:
node --test scripts/validate-public-docs.test.mjs && node scripts/validate-public-docs.mjs && git diff --checkpassed: 61 tests, 41 published pages validated, and no whitespace errors.kubectl apply --dry-run=client --validate=false -f k8s/executor-rbac.yamlpassed for the ServiceAccount, Role, and RoleBinding.kubectl create --dry-run=client -o json -f k8s/executor-rbac.yaml | jq -se 'length == 3 and all(.[]; .metadata.namespace == "kandev-agents") and (map(select(.kind == "Role"))[0].rules | map([.resources, .verbs])) == [[["pods"],["get","create","delete","watch"]],[["pods/exec","pods/portforward"],["get","create"]],[["persistentvolumeclaims"],["get","create","delete"]]]'returnedtrue, confirming three namespaced objects and the exact ordered Pod, streaming-subresource, and PVC rules.- The optional Landing publication build was not run because no sibling
landingcheckout is available in this workspace.