Authoring Local Components
Local components are standard Helm charts placed under configured component search roots.
Directory Contract
Section titled “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.yamlCreate a New Component
Section titled “Create a New Component”nyl new component example/v1 NginxThis scaffolds:
components/example/v1/Nginx/ Chart.yaml values.yaml values.schema.json templates/deployment.yamlConsume the Component in a Manifest
Section titled “Consume the Component in a Manifest”apiVersion: components.nyl.niklasrosenstein.github.com/v1kind: example/v1/Nginxmetadata: name: web namespace: defaultspec: replicaCount: 3 image: repository: nginxspec is passed to Helm as values, merged on top of chart defaults from values.yaml.
Operational Notes
Section titled “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.