hull init
hull init scaffolds a new package from a built-in template chosen with
-t — a curated starting point for a class of workload.
When to use it
- You know the shape you’re packaging and want defaults tuned for it.
- You want a specific starter:
webapp(Deployment + Service + ConfigMap),batch(a CronJob worker),operator(a CRD + controller), orblank(the smallest valid package). - For the fixed nginx starter instead of a template menu, use
hull create.
What happens
- Creates
<name>/under--dest(fails if the target already exists or the template name is unknown). - Copies the chosen template’s files, substituting the package name where
the template references it. Every template writes
hull.yaml,values.yaml, and atemplates/directory; richer templates also addvalues.schema.json, atests/directory, or acrds/directory. - Prints
Initialised <template> package at <path>followed by the next commands to run.
Usage
hull init <name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
-t, --template |
string | “blank” | which starter to scaffold: webapp, batch, operator, or blank |
--dest |
string | ”.” | parent directory to create <name>/ in |
Worked example
Scaffold a web-app package:
hull init webui -t webapp
OUTPUT:
Initialised webapp package at webui
Next:
cd webui
hull lint .
hull template . -o yaml
What you now have on disk:
webui/
├── hull.yaml
├── values.yaml
├── values.schema.json
├── templates/
│ ├── configmap.yaml
│ ├── deployment.yaml
│ └── service.yaml
└── tests/
└── connection.yaml
The blank template is leaner — hull init mini gives only hull.yaml,
values.yaml, and templates/configmap.yaml. Follow the printed steps to
lint and render whichever template you picked.