Authoring Local Components
Local components are standard Helm charts placed under configured component search roots.
Directory Contract
Each component must exist at:
<components_search_path>/<apiVersion>/<kind>/
Chart.yaml
values.yaml
templates/
With default configuration:
[project]
components_search_paths = ["components"]
A component example/v1/Nginx resolves to:
components/example/v1/Nginx/Chart.yaml
Create a New Component
nyl new component example/v1 Nginx
This scaffolds:
components/example/v1/Nginx/
Chart.yaml
values.yaml
values.schema.json
templates/deployment.yaml
Consume the Component in a Manifest
apiVersion: components.nyl.niklasrosenstein.github.com/v1
kind: example/v1/Nginx
metadata:
name: web
namespace: default
spec:
replicaCount: 3
image:
repository: nginx
spec is passed to Helm as values, merged on top of chart defaults from values.yaml.
Operational Notes
- Keep component manifests separate from chart templates.
nyl renderaccepts a file path, not a directory. - Use
nyl validate --strictin CI to catch missing search paths early. - Prefer stable
apiVersion/kindnaming for internal component APIs.