This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern
Before you enable this package
The endpoint host 'k8s-apiserver.invalid' is a reserved .invalid placeholder that fails closed until you substitute the real host in both the endpoint URLs and the egress allowlist.
Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.
Capabilities (7)
Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/kubernetes.json and embeds a copy in the release binary.
Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.
On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.
Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.
kubernetes.namespaces.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://k8s-apiserver.invalid/api/v1/namespaces- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Read namespaces.
List the cluster's namespaces: names, phases and labels, which reveal internal tenancy topology. Per the retrieved Namespace API reference the endpoint supports label and field selectors and pagination; the registered path covers the collection read only — single-namespace reads (GET /api/v1/namespaces/{name}) are not registered by this pack.
The host is a reserved placeholder: substitute the cluster's API server endpoint before enabling.
kubernetes.deployments.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://k8s-apiserver.invalid/apis/apps/v1/namespaces/NAMESPACE/deployments- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Read deployments.
List the Deployments in one namespace: names, replica counts, rollout strategy and the full pod template, which reveals images, volume wiring — and, according to the reviewed Pod API reference embedded in the template, literal environment-variable values, command arguments and annotations. Secret references appear by name only and are not dereferenced, but plaintext credentials written as literal env values in the template would be exposed by this read.
Per the retrieved Deployment API reference the endpoint supports label and field selectors and pagination; the registered path covers the namespaced collection read only — the cluster-wide list (GET /apis/apps/v1/deployments) and single-object reads are not registered. NAMESPACE is a placeholder the deployment binds before enabling.
kubernetes.pods.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://k8s-apiserver.invalid/api/v1/namespaces/NAMESPACE/pods- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Read pods.
List the Pods in one namespace: names, phases, container specs and status.
Data exposure: according to the reviewed Pod API reference the returned specifications include literal environment-variable values (env value fields), command and argument arrays, annotations and node placement, alongside secret and configmap references — secret values are not dereferenced by this read (secretKeyRef entries appear by name only), but a workload that carries credentials as literal env values or command arguments exposes them in this response, so the absence of dereferencing is no guarantee that no plaintext credentials are returned.
The registered path covers the namespaced collection read only — the cluster-wide list (GET /api/v1/pods), single-pod reads and pods/log are not registered; reading Secrets is a documented exclusion of this pack. NAMESPACE is a placeholder the deployment binds before enabling.
kubernetes.deployment.create v1.0.0R3
- Kind
- tool
- Actions
- create, deploy
- Endpoint
POST https://k8s-apiserver.invalid/apis/apps/v1/namespaces/NAMESPACE/deployments- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Create deployment.
Create one Deployment in one namespace.
Judged by effect: the body is an unrestricted Deployment spec (according to the reviewed Deployment API reference) that selects container images, replica counts, the pod's service account, volume mounts including host paths, and security contexts — creating a Deployment is running caller-chosen code on the cluster — so the capability declares create and deploy at the minimum R3 tier, and deploy is one of the designated actions requiring human approval; an installer's intention to submit only benign specs is not a restriction.
The dryRun query parameter exists in the API but does not change what this registration permits. NAMESPACE is a placeholder the deployment binds before enabling.
kubernetes.deployment.scale v1.0.0R3
- Kind
- tool
- Actions
- update, deploy
- Endpoint
PUT https://k8s-apiserver.invalid/apis/apps/v1/namespaces/NAMESPACE/deployments/NAME/scale- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Scale deployment.
Replace one Deployment's replica count through its scale subresource (a Scale object body, not a full Deployment spec). Registered as update and deploy at the minimum R3 tier: scaling a live workload changes running production capacity immediately — scaling to zero takes the workload offline and a large scale-up consumes cluster capacity — a deploy-equivalent reconfiguration of live infrastructure, and deploy is one of the designated actions requiring human approval; the previous replica count being re-settable does not remove the live-traffic effect.
The generic PATCH on the Deployment object is deliberately not registered (its unrestricted body would admit the same code-selection effects as creation); this registration covers the scale subresource only. NAMESPACE and NAME are placeholders the deployment binds before enabling.
kubernetes.deployment.delete v1.0.0R3
- Kind
- tool
- Action
- delete
- Endpoint
DELETE https://k8s-apiserver.invalid/apis/apps/v1/namespaces/NAMESPACE/deployments/NAME- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Delete deployment.
Delete one Deployment; according to the reviewed Deployment API reference the call accepts a DeleteOptions body, a grace period and a propagation policy, and the default cascade deletes the Deployment's ReplicaSets and Pods with it — the running workload stops. Delete is one of the designated actions requiring human approval at the minimum R3 tier; re-applying the manifest later is a new creation, not an undo, and any pod state that was not persisted elsewhere is gone.
The deletecollection form (DELETE on the collection, bulk deletion by label selector) is deliberately not registered. NAMESPACE and NAME are placeholders the deployment binds before enabling.
kubernetes.namespace.delete v1.0.0R3
- Kind
- tool
- Action
- delete
- Endpoint
DELETE https://k8s-apiserver.invalid/api/v1/namespaces/NAME- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-kubernetes-sa-token- Data class
- internal
Delete namespace.
Delete one namespace and, through the namespace controller, every object in it — workloads, services, configmaps, secrets and volume claims — with the namespace passing through the Terminating phase documented in the retrieved Namespace API reference while finalizers complete. This is among the most extensive operations a cluster offers; delete is one of the designated actions requiring human approval at the minimum R3 tier.
On supported execution paths mediated by AAES Govern, irreversible actions require approval by an authorized person; this does not prevent calls through bypass or observation-only paths. The /finalize subresource (which can force-remove finalizers from a stuck namespace and strand its resources) is deliberately not registered. NAME is a placeholder the deployment binds before enabling.
Credential reference
The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.
- Reference
secret-ref-kubernetes-sa-token- Custody
- customer_vault
- Injection
- header (Authorization)
Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.
Complete credential requirements
Store the complete Authorization header for a dedicated Kubernetes ServiceAccount in the client's secret manager: 'Bearer <token>', containing the signed JWT. A cluster administrator creates the account and issues tokens externally with kubectl create token <name> (the TokenRequest API), optionally specifying audience and lifetime. Service accounts authenticate as system:serviceaccount:(NAMESPACE):(SERVICEACCOUNT), and these tokens can authenticate from outside the cluster.
Prefer short-lived bound TokenRequest tokens. They expire according to exp and fail closed afterward. Legacy Secret-based tokens do not expire; with service-account lookup enabled, deleting their Secret revokes them.
Stopping new TokenRequest issuance does not invalidate issued, unexpired tokens. A token using boundObjectRef remains valid only while its bound Pod or Secret exists; deleting that object invalidates it. A token bound only to the service account cannot be individually revoked before expiry: revocation requires deleting the account or rotating cluster signing keys.
An external custody process reissues tokens and updates the reference before expiry. The executor injects the stored header unchanged and performs no token lifecycle.
Grant permissions at the required scope. Namespaces are cluster-scoped, so listing or deleting them requires a ClusterRole/ClusterRoleBinding. Deployments, Pods, and the scale subresource are namespaced; use Role/RoleBinding only in the bound namespaces.
Grant list, rather than only get, for registered namespace, deployment, and Pod collection reads. Grant create on deployments for creation, update specifically on deployments/scale for scaling, and delete on deployments or namespaces only where those delete capabilities are enabled. General deployment update is unnecessary for scaling and must not be granted; never grant cluster-admin.
Keep the value only in executor memory for a call, never in logs, traces, diagnostics, or crash dumps. Do not enable the pack if the deployment cannot meet those requirements.
Resources
kubernetes-cluster(api, internal):https://k8s-apiserver.invalid
Technical package and review record
Complete provider requirements and exclusions
The endpoint host 'k8s-apiserver.invalid' is a reserved non-production placeholder (an RFC 2606 reserved TLD): substitute the customer's cluster API server endpoint (host and, where non-standard, host:port) before enabling, in every endpoint, in the resource locator and in every egress allowlist entry. The allowlist matches exactly, so endpoints and allowlist must be substituted together, and substitution is a required deployment step.
NAMESPACE and NAME in the endpoint paths are placeholders the deployment binds to concrete objects before enabling; this pack registers namespaced collection reads only — the cluster-wide list forms (GET /apis/apps/v1/deployments, GET /api/v1/pods across all namespaces) are not registered.
The Kubernetes API is served over HTTPS with the cluster's own certificate authority, so the executor must trust the cluster CA; the egress allowlist governs the destination only and is not a TLS-trust statement.
Approval classification: deployment creation registers as create and deploy at the minimum R3 tier, judged by effect — the body is an unrestricted Deployment spec (according to the reviewed Deployment API reference), which selects container images, replica counts, service accounts, volume mounts and security contexts, so creating a Deployment is running caller-chosen code on the cluster, and deploy is one of the designated actions requiring human approval; an installer's intention to pass only benign specs is not a restriction.
Deployment deletion and namespace deletion register as delete at the minimum R3 tier: deleting a Deployment deletes its ReplicaSets and Pods through the cascade, and deleting a namespace deletes every object in the namespace. Scaling registers as update and deploy at the minimum R3 tier: the scale subresource replaces the running replica count of a live workload — a deploy-equivalent reconfiguration of live infrastructure (scaling to zero takes the workload offline) — and the count's practical reversibility is not grounds for avoiding the deploy action.
Documented exclusions — this pack does not register: reading Secrets (GET /api/v1/namespaces/{ns}/secrets — the response is the cluster's stored credentials, and according to the reviewed authentication reference anyone who can read those Secrets can authenticate as the corresponding service account), pods/exec, pods/attach and pods/portforward (arbitrary command execution and network tunneling into containers — a different registration requiring its own review), pods/log, the deletecollection forms of every resource (bulk deletion by label selector), create/update/delete of RBAC objects (Roles, ClusterRoles and their bindings — privilege grant), node operations (cordon, drain, taints), PersistentVolumes and PersistentVolumeClaims, ServiceAccount and token creation, and every other Kubernetes API.
Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.
The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.
Review block
This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.
Review completed: 2026-09-22
6 sources, retrieved 2026-09-21
- https://kubernetes.io/docs/reference/kubernetes-api/ (retrieved 2026-09-21)
- https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/ (retrieved 2026-09-21)
- https://kubernetes.io/docs/reference/kubernetes-api/cluster-resources/namespace-v1/ (retrieved 2026-09-21)
- https://kubernetes.io/docs/reference/access-authn-authz/authentication/ (retrieved 2026-09-21)
- https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/ (retrieved 2026-09-21)
- https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/ (retrieved 2026-09-21)
Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.
Release identity
SHA-256 of the pack file bytes: d8b0c2fee0a5481c24eee1cc2bbd17010d4b2158067aeca5b6da52b615b150d2
Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.