Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 render accepts a file path, not a directory.
  • Use nyl validate --strict in CI to catch missing search paths early.
  • Prefer stable apiVersion/kind naming for internal component APIs.