nyl 0.4.0

Kubernetes manifest generator with Helm integration
Documentation
# Resolution & Lookup Rules

This page describes how Nyl resolves component resources into charts.

## Local Lookup

For Component resources with local kinds, Nyl checks component search roots in order:

1. Resolve `project.components_search_paths` from `nyl.toml`.
2. Build candidate path `<root>/<kind>/Chart.yaml`.
3. Use the first existing match.

For `kind: example/v1/Nginx`, Nyl looks for:

```text
<root>/example/v1/Nginx/Chart.yaml
```

Relative search paths are resolved relative to the directory containing `nyl.toml`.

## Search Path Precedence

`components_search_paths = ["components", "/opt/shared-components"]` means:

1. Prefer repo-local components under `components/`.
2. Fall back to `/opt/shared-components`.

The first matching component wins.

## Alias Resolution

Before local lookup, Nyl checks `project.aliases` for a `<apiVersion>/<kind>` match.

If an alias exists, the alias target is resolved directly and local lookup is skipped for that resource.

Example:

```toml
[project.aliases]
"platform.example.io/v1/IngressStack" = "oci://registry-1.docker.io/bitnamicharts/nginx@18.2.4"
```

## Expansion and Filtering Caveat

`-c/--component` filters top-level input resources before expansion.

Example:

- `-c ConfigMap` does not include ConfigMaps generated by Component or HelmChart expansion.
- Use `-c HelmChart` or match the component resource in input when you need those expansions.