-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 8 Docker and Kubernetes Operations
Users can inspect Docker and Kubernetes topology, health, versions, configuration drift, logs, events, and resource use, then trace a failing request from ingress to workload, image, deployment, and Git commit.
- Capability phase: 8
- First marketed in: release 0.8
- Primary owners: Rust local agent and Go control plane
- Access path: local connection or authorized customer-network runner
- Phase 2 provides local Docker lifecycle and service modeling.
- Phases 6 and 7 connect deployments, artifacts, and source.
- Cluster and Docker credentials are references with environment-scoped authorization.
- Read-only inventory is distinct from operational mutations.
- hosts and connection contexts;
- containers and Compose projects;
- images and vulnerability results;
- networks and volumes;
- logs, stats, and health;
- restart and rebuild with explicit target previews;
- service topology;
- deployment, configuration, and source associations.
- clusters and contexts;
- namespaces;
- deployments, StatefulSets, DaemonSets, and ReplicaSets as required by traced ownership;
- pods, containers, services, and ingress;
- ConfigMaps and Secret metadata only;
- Jobs and CronJobs;
- logs and events;
- requests, limits, and resource usage;
- rollout status and history;
- rollback and port forwarding;
- Helm release association.
Secrets display identifiers, versions, ownership, and age—not values.
flowchart TD
Ingress --> Frontend
Frontend --> Gateway["API gateway"]
Gateway --> User
Gateway --> Payment
Gateway --> Search
User --> UserDB["User database"]
Payment --> PaymentDB["PostgreSQL"]
Search --> OpenSearch
Each node can overlay health, latency, error rate, resource use, version, last deployment, configuration drift, and selected time range. Every edge states whether it comes from declared configuration, runtime traffic, service discovery, or inference.
Collectors produce normalized resource snapshots while preserving provider-specific fields. Watches and event streams feed incremental updates; periodic reconciliation repairs missed state.
Access is layered:
- inventory and metadata;
- logs and events;
- port forwarding and exec;
- restart, rebuild, rollout, and rollback.
Each layer has separate permissions. High-impact operations pass through Actions or flows rather than bypassing their approval and audit model.
The resource page connects:
- request trace and service;
- Kubernetes service and ingress;
- pod and container;
- image digest and vulnerability state;
- rollout and deployment event;
- configuration version and drift;
- flow run, artifact, commit, and pull request.
Unknown or ambiguous associations stay visible as unresolved graph edges.
Phase 8 adds:
-
ContainerHost,Container,Image,Network, andVolume; -
Cluster,Namespace, and normalizedWorkload; -
Pod,RuntimeContainer,ServiceEndpoint, andIngressRoute; -
Rollout,RuntimeSnapshot, andTopologyObservation.
Important events:
-
container.health.changed; -
image.vulnerability.updated; -
cluster.resource.observed; -
workload.rollout.started; -
workload.rollout.failed; -
runtime.configuration_drift.detected; -
runtime.topology.updated.
- default to metadata-only read access;
- never retrieve Kubernetes Secret values during topology collection;
- use namespace and environment scopes;
- show exact targets and disruption budgets before mutations;
- prefer outbound customer runner connectivity for protected clusters;
- redact logs before transmission and enforce retention;
- protect kubeconfig and Docker credentials through vault references;
- record impersonated identity and authorization decision.
- Define normalized container and Kubernetes resource contracts.
- Extend local Docker observations beyond Phase 2.
- Implement cluster connection, discovery, watches, and reconciliation.
- Build deployment and ownership graph resolution.
- Add topology overlays and time-aware inspection.
- Associate image digest, configuration, flow, and Git history.
- Route constrained mutations through Actions and approvals.
- Add Helm release, vulnerability, and drift integrations.
- Docker and Kubernetes API contract fixtures;
- watch disconnect and missed-event reconciliation tests;
- namespace and permission boundary tests;
- graph ownership fixtures for Deployments, Jobs, and Helm;
- log redaction and retention tests;
- rollout, rollback, and disruption fault injection;
- large-cluster pagination and performance tests;
- kind or equivalent disposable-cluster end-to-end scenarios.
Phase 8 is complete when a user can select a failing ingress request and trace it through service, pod, container image, rollout, configuration version, flow run, and Git commit, while Secret values remain inaccessible and any operational change uses a separately authorized, audited Action.
| Risk | Control |
|---|---|
| Resource graph becomes stale | Watches plus reconciliation and observation timestamps |
| Read access accidentally includes secrets | Metadata-only models and dedicated permission tests |
| Operations bypass workflow safety | Mutations route through Actions or flows |
| Large clusters overwhelm UI or storage | Scoped discovery, pagination, aggregation, retention |
| Topology implies uncertain links are factual | Edge provenance and confidence display |
- replacing native Kubernetes administration tools;
- unrestricted
kubectl exec; - retrieving secret values for visualization;
- full vulnerability-management remediation;
- cross-cloud inventory, which begins in Phase 9.
Phase 9 links local and Kubernetes runtime entities to cloud compute, managed services, telemetry, identities, and secret metadata while retaining provider-specific capability.
StackCendra is currently in Phase 0. The complete Phase 0–13 plan is versioned in the main repository under docs/wiki; later-phase pages describe intended behavior, not current implementation.
- Phase 0 foundation
- Phase 0 backlog
- Release 0.1 discovery
- Phase delivery framework
- Roadmap
- Wiki review guide
- Risks and decisions