Create ready-to-apply Kubernetes manifests from a simple form. Choose the resources you need (Deployment, Service, Ingress, ConfigMap, Secret and HorizontalPodAutoscaler), and the YAML is written with the current stable API versions, consistent labels, health probes, resource requests and a hardened security context. Everything is generated in your browser.
Last updated:
Generated manifests
Apply:
Advertisement
Advertisement
How to use the Kubernetes YAML Generator
Pick the resources you want at the top; their settings appear in the form.
Describe the app: name, namespace, image (with a version tag) and any extra labels.
Set the Deployment: replicas, container port, CPU and memory, probe paths and environment variables.
Expose it with a Service and an Ingress host, and add settings to the ConfigMap or Secret, or autoscaling with the HPA.
Fix any red notes, then copy or download the YAML and run the kubectl apply command shown.
What each manifest does
Kind
apiVersion
Purpose
Linked by
Deployment
apps/v1
Runs N replicas of your pod and performs rolling updates
spec.selector.matchLabels
Service
v1
Stable cluster IP and DNS name (web-api.default.svc) in front of the pods
spec.selector = pod labels
Ingress
networking.k8s.io/v1
Routes external HTTP(S) for a host and path to a Service
backend.service.name and port name
ConfigMap
v1
Non-secret configuration as key/value pairs
envFrom.configMapRef
Secret
v1
Passwords, tokens and keys (base64-encoded)
envFrom.secretRef
HorizontalPodAutoscaler
autoscaling/v2
Adds or removes pods to keep CPU or memory near a target
scaleTargetRef
Resource quantities
Value
Meaning
cpu: 1
One vCPU / core
cpu: 250m or 0.25
A quarter of a core (m = millicores)
memory: 128Mi
128 mebibytes = 134,217,728 bytes
memory: 1Gi
1 gibibyte = 1,073,741,824 bytes
memory: 500M
500 megabytes = 500,000,000 bytes (decimal)
memory: 128m
0.128 bytes: a common typo; use Mi
The HPA computes utilization as actual usage divided by the request. With a 100m CPU request and a 70% target, it adds pods when the average pod uses more than 70m CPU, using desiredReplicas = ceil(currentReplicas × currentUsage / target).
Production checklist
Pin image versions (app:1.4.2 or a @sha256: digest); latest makes rollbacks unreliable.
Use the same labels everywhere. The Deployment selector is immutable, so choose the app.kubernetes.io/name label once and keep extra labels out of the selector.
Expose a readiness endpoint and handle SIGTERM so in-flight requests finish during rolling updates.
Run at least two replicas for anything user-facing, and consider a PodDisruptionBudget so node maintenance never takes all pods down.
Validate before applying:kubectl apply --dry-run=server -f app.yaml or kubectl diff -f app.yaml.
Ingress is stable but frozen; new traffic-routing features land in the Gateway API (HTTPRoute), which many controllers now support.
Frequently asked questions
What is the difference between a Deployment and a Service?
A Deployment runs and updates a set of identical pods (your containers). A Service gives those pods one stable virtual IP and DNS name and load-balances traffic across them, finding the pods through the label selector. An Ingress then routes outside HTTP(S) traffic for a host and path to the Service.
What CPU and memory requests should I set?
Requests are what the scheduler reserves for each pod; start near the pod's typical usage (for example 100m CPU and 128Mi memory for a small API) and adjust from kubectl top pod or your monitoring. Set a memory limit so a leak cannot exhaust the node. Many teams leave the CPU limit unset to avoid throttling while still requesting CPU.
What is the difference between readiness and liveness probes?
A failing readiness probe removes the pod from Service endpoints until it recovers, so it stops receiving traffic but keeps running. A failing liveness probe makes the kubelet restart the container. Point readiness at a check that includes dependencies, and liveness at a cheap check that only fails when the process is stuck.
Is a Kubernetes Secret encrypted?
Not by default. Values in a Secret are only base64-encoded and are stored in etcd, unencrypted unless the cluster enables encryption at rest. Restrict access with RBAC, never commit real values to Git, and use a tool such as Sealed Secrets, External Secrets Operator or SOPS for GitOps.
Why is replicas missing when the HPA is enabled?
When a HorizontalPodAutoscaler manages a Deployment, a replicas field in the manifest would reset the pod count every time you run kubectl apply. Leaving it out lets the HPA keep control between its minReplicas and maxReplicas.
Which API versions does the generator use?
apps/v1 for Deployment, v1 for Service, ConfigMap and Secret, networking.k8s.io/v1 for Ingress (stable since Kubernetes 1.19) and autoscaling/v2 for the HPA (stable since 1.23). Older versions such as extensions/v1beta1 and autoscaling/v2beta2 have been removed from current Kubernetes.
How do I apply the generated files?
Save the YAML (for example web-api.yaml), make sure the namespace exists, and run kubectl apply -f web-api.yaml. Check the rollout with kubectl rollout status deployment/web-api and use kubectl apply --dry-run=server -f web-api.yaml to validate against your cluster without changing it.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.