Resources
Nyl provides Kubernetes-style custom resources for declarative configuration and deployment.
Resource Types
Core Resources
- NylRelease: Defines release metadata (name, namespace) for deployments
- HelmChart: Declarative Helm chart deployment with templating support
ArgoCD Resources
- ApplicationGenerator: Automatically generates ArgoCD Applications from NylRelease files
Resource Format
All Nyl resources follow Kubernetes resource conventions:
apiVersion: <api-version>
kind: <resource-kind>
metadata:
name: <name>
namespace: <namespace> # Optional
spec:
# Resource-specific fields
API Versions
nyl.niklasrosenstein.github.com/v1: Core Nyl resources (NylRelease, HelmChart)argocd.nyl.niklasrosenstein.github.com/v1: ArgoCD integration resources (ApplicationGenerator)
Processing Behavior
Regular Kubernetes Resources
Regular Kubernetes resources (ConfigMap, Deployment, etc.) are passed through unchanged during nyl render.
Nyl Resources
Nyl resources are processed based on their kind:
- NylRelease: Extracted and removed from output (provides metadata only)
- HelmChart: Rendered using Helm templating, replaced with rendered manifests
- ApplicationGenerator: Processed to generate ArgoCD Applications, removed from output
Multi-Document Files
Nyl supports YAML multi-document files with --- separators:
apiVersion: nyl.niklasrosenstein.github.com/v1
kind: NylRelease
metadata:
name: myapp
namespace: default
---
apiVersion: v1
kind: ConfigMap
metadata:
name: myapp-config
data:
key: value
---
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
ports:
- port: 80
Processing:
- NylRelease is extracted (provides name and namespace)
- ConfigMap and Service are output as-is