Introduction
nyl (pronounced like “nil”) is a Kubernetes manifest generator with Helm integration, designed to simplify the management of Kubernetes resources through a powerful templating system.
Goals
nyl aims to provide:
- High performance manifest generation
- Lightweight binary for easy distribution
- Clean, maintainable architecture for future development
- Powerful templating with Helm integration
Features
- Configuration loading (YAML, JSON)
- File discovery with upward directory traversal
nyl validatecommand with strict modenyl new projectcommand for project scaffoldingnyl new componentcommand for component scaffolding- Helm integration and component discovery
- Template rendering with Jinja2
- Kubernetes operations (diff, apply)
- Release state management with revision tracking
Key Features
- Safety: Memory safety without garbage collection
- Performance: Compiled binaries with minimal runtime overhead
- Concurrency: Efficient concurrent operations
- Reliability: Strong type system catches errors at compile time
- Rich ecosystem: Extensive library support
Architecture
nyl is structured into several key modules:
config: Project configuration loading and validationcli: Command-line interface and argument parsingtemplate: Jinja2 template rendering (Phase 3)kubernetes: Kubernetes client integration (Phase 4)resources: Resource definitions and transformationsgenerator: Manifest generation pipeline (Phase 3+)