The Anyport Team
Kubernetes without the YAML: which parts are safe to hide
Every abstraction over Kubernetes decides what to conceal. Hide the wrong thing and the first incident is unsolvable. A test for telling them apart.
"Kubernetes without the YAML" is a promise made by a lot of tools, and it is the right instinct. Deploying a web service should not require writing a Deployment, a Service, an Ingress, a ConfigMap and a Secret, four of which are boilerplate that differs between services by a handful of values.
But an abstraction is a decision about what you no longer get to see, and some of those decisions are recoverable while others are not.
A test
Hiding something is safe when the hidden thing can still be inspected when it matters, and the abstraction does not lie about what it did.
By that test, generating a Deployment from a form is fine as long as the Deployment is a real Deployment that kubectl can show you. Reporting an app as "Running" because the object was accepted by the API server is not fine, because it is a claim about the workload made from evidence that says nothing about the workload. The first hides detail. The second hides truth.
Usually safe to hide
- Object boilerplate. Labels, selectors, and the wiring between a Deployment, its Service and its Ingress. Nobody makes a considered decision here; they copy the last one.
- Certificate machinery. Issuers, challenge records and renewal timers. What matters is whether HTTPS works and when the certificate expires.
- Namespace conventions. A naming scheme is only load-bearing if humans have to type it.
- Rollout mechanics. Surge and unavailability settings have good defaults, and the useful question is whether the rollout finished.
Not safe to hide
- What is actually running. Replica counts, restarts, and the real reason a pod is unhealthy. This is the whole content of an incident.
- Resource requests and limits. They decide scheduling and what gets killed first under pressure. A platform that picks silently has made a capacity decision on your behalf that you will meet later.
- Storage. Whether a volume is replicated, and whether deleting the app deletes the data. Recoverable exactly once.
- Anything with a security boundary. Who can reach what, and which permissions the platform itself holds.
- The exit. If you cannot see the objects, you cannot leave, and the abstraction has become a dependency rather than a convenience.
Where Anyport draws it
You describe an app: an image or a repository, ports, environment, replicas, resources. Anyport creates the objects. It does not invent a resource size for you or hide what a volume is doing.
On the not-safe side, the console reports instances ready against instances desired rather than a single green word, and an unhealthy app shows the reason it is unhealthy. Terminal access exists precisely because a platform that cannot show you the inside of a container has hidden too much, and it is a separate permission for the same reason.
Underneath, every object is a standard Kubernetes object in your cluster. You can run kubectl against them, keep them, or walk away with them. That is the property that makes the rest of the hiding safe: the detail is concealed, not removed.
The architecture docs describe what gets created and where.