Boneyard Tools

Kubernetes Manifest Generator

Fill in your image, ports and replicas to get ready-to-apply Kubernetes YAML. It builds a Deployment and a Service, with an optional Ingress, all as one multi-document file you can copy or download.

How to generate Kubernetes manifests

  1. Enter your app name, container image, replicas and ports.
  2. Pick a Service type and add any env vars, resource limits or an Ingress host.
  3. Copy the YAML or download it, then run kubectl apply -f on the file.

Examples

Deployment + LoadBalancer Service

{ "appName": "web", "image": "nginx:1.27", "replicas": 3, "containerPort": 8080, "servicePort": 80, "serviceType": "LoadBalancer" }
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
...
---
apiVersion: v1
kind: Service
spec:
  type: LoadBalancer
...

With an Ingress

{ "appName": "api", "image": "ghcr.io/acme/api:1.4", "includeIngress": { "host": "api.example.com", "path": "/" } }
...
---
apiVersion: networking.k8s.io/v1
kind: Ingress
spec:
  rules:
    - host: api.example.com
...

Frequently asked questions

What does this generator produce?

A single multi-document YAML file containing a Deployment (apps/v1) and a Service (v1), plus a networking.k8s.io/v1 Ingress when you add a host. The documents are separated by the standard --- marker.

How do I apply the generated manifests?

Save the output to a file such as app.yaml and run kubectl apply -f app.yaml. Because the documents are separated by ---, kubectl creates the Deployment, Service and Ingress in one command.

Which Service type should I choose?

ClusterIP exposes the app only inside the cluster, NodePort opens a port on every node, and LoadBalancer asks your cloud to provision an external load balancer. Use ClusterIP behind an Ingress, or LoadBalancer for direct public access.

How do CPU and memory requests and limits work?

Requests are what the scheduler reserves for the pod, and limits are the hard ceiling before the container is throttled or killed. Set them with Kubernetes quantities like 100m for CPU and 128Mi for memory.

Does the Service selector match the Deployment?

Yes. Both the Deployment pod template and the Service selector use the label app set to your app name, so traffic is routed to the right pods automatically.

Is anything sent to a server?

No. The YAML is built entirely in your browser from the values you enter, so your image names, hosts and environment variables never leave your device.

Related tools