nyl 0.4.0

Kubernetes manifest generator with Helm integration
Documentation
# Component System

Nyl's component system lets you map Kubernetes-style resources to Helm charts with a predictable lookup model.

For most teams, the default workflow is:

1. Define local component charts under `components/<apiVersion>/<kind>/`.
2. Reference those components from manifests with:
   - `apiVersion: components.nyl.niklasrosenstein.github.com/v1`
   - `kind: <apiVersion>/<kind>`
3. Put Helm values into `spec`.

## What a Component Resource Does

A Component resource is a compact wrapper around Helm rendering:

- `kind` identifies which chart to render.
- `metadata.name` is used as Helm release name.
- `metadata.namespace` is used as Helm release namespace (defaults to `default` if omitted).
- `spec` is forwarded as Helm values.

Example:

```yaml
apiVersion: components.nyl.niklasrosenstein.github.com/v1
kind: example/v1/Nginx
metadata:
  name: web
  namespace: default
spec:
  replicaCount: 2
```

## Choosing Between Component, HelmChart, and Aliases

- Use local Component resources for reusable, repo-owned building blocks.
- Use `HelmChart` for explicit chart definitions in platform-level manifests.
- Use `project.aliases` when you want stable domain `apiVersion/kind` names decoupled from chart source.

See:

- [Authoring Local Components]./authoring-local-components.md
- [Resolution & Lookup Rules]./resolution-and-lookup.md
- [Remote Shortcuts & Aliases]./remote-shortcuts-and-aliases.md
- [Component resource reference]../reference/resources/component.md