kurel CLI

kurel CLI Reference

Go Reference Go Reference

kurel is an OAM-native package manager for Kubernetes. Packages are described with a launcher Application document (app.yaml) and an optional parameter schema (kurel.yaml); build-time parameter substitution produces static, GitOps-ready Kubernetes manifests.

This package defines the kurel command tree (NewKurelCommand) and entry point (Execute). The completion and version subcommands are provided by pkg/cmd/shared.

Command tree

kurel
├── build <app.yaml|package-dir>   Build Kubernetes manifests from an OAM Application
├── config                          Manage kurel configuration
│   ├── view                        View current configuration
│   └── init                        Initialize a configuration file (.kurel/config.yaml)
├── completion [bash|zsh|fish|powershell]   Generate a shell completion script
└── version                         Print version information

kurel build

Builds static manifests from an Application (a path to app.yaml, or a directory containing app.yaml and optionally kurel.yaml) plus a platform ClusterProfile. Output goes to stdout by default, or to a directory with --output.

FlagDescription
--profile (required)Path to the ClusterProfile YAML.
-o, --outputOutput directory (default: stdout).
-n, --namespaceNamespace override.
--cluster-idCluster identifier (default local).
--valuesPath to a values YAML file (requires a kurel.yaml package).
--set key=valueSet a parameter value (repeatable; requires kurel.yaml).
--capability-defAdditional CapabilityDefinition file (repeatable).
--strict-capabilitiesError (instead of warn) on unvalidated custom capabilities.

Global flags

Available on all commands (defined in pkg/cmd/shared/options):

FlagDescription
-c, --configConfig file (default $HOME/.kurel.yaml).
-v, --verboseVerbose output.
--debugDebug output (implies verbose).
--strictTreat warnings as errors.
-o, --outputOutput format: yaml|json|table|wide|name.
-f, --output-fileWrite output to a file instead of stdout.
--no-headers, --show-labels, --wideTable-output controls.
--dry-runPrint generated resources without writing files.
-n, --namespaceTarget namespace.

Examples

# Render to stdout using a cluster profile
kurel build ./app.yaml --profile profiles/minimal.yaml

# Render a parameterized package to a directory with overrides
kurel build ./mypackage --profile profiles/prod.yaml -o out/ \
  --values values.yaml --set replicas=3