Agent control plane Structured SSH · Git receipts · Human inspection
← All updates

Debugging deployments from the control plane

How app info, logs, events, route diagnostics, image drift, and smoke-test headers made operations inspectable over SSH.

Mechanics does not hand users a kubeconfig as the default debugging interface. Instead, it brings the most useful operational facts back through SSH commands that are scoped to the authenticated tenant.

App info became an operational snapshot

0.1.25 made app info much deeper. The command reports Argo CD target and synced revisions, sync and health state, operation timestamps, managed resources, live Deployment replicas, container images, Pods, restarts, and recent warning events. A user can see whether an app is waiting on Argo CD, Kubernetes rollout, image pull, pod readiness, or something else.

Later releases added image drift detection. app info compares the image tag declared in GitOps with the live container image, so a user can tell whether the cluster has actually converged to the intended version.

Logs and events moved into SSH

0.1.50 added app logs and app events. Logs support bounded tails, previous container logs, and container selection. Events surface recent warnings and failures without requiring a raw kubectl get events. The commands stay tenant-scoped and app-aware, which keeps debugging useful without widening platform authority.

The same release added app wait --gone, so deletion can be observed all the way to the disappearance of Applications, Deployments, and Pods. Removal is not treated as complete just because a GitOps write happened.

Routes got real diagnostics

route info now answers the questions that usually decide whether a public endpoint is broken: did the network Application sync, did the Gateway accept the route, is the certificate ready, does the backend Service exist, and are there ready endpoints behind it?

0.1.57 added a small but useful smoke-test detail: Mechanics-managed routes set a Mech-Route response header. route wait can suggest curl checks for that header, so API apps that return 404, 401, or another non-2xx from / can still prove the request reached the intended route.

Addons follow the same pattern

Addons added their own inspection loop: addon list, addon info, and addon wait. Each addon type supplies its own readiness reader and connection contract, but the user experience stays consistent. Mechanics shows whether the service exists, whether it is ready, and which secret or endpoint an app should consume.

The goal is not to replace every cluster tool. It is to put the first useful diagnostic in the same control plane that performed the deploy.