Release
k8s.nyl/v1
Kubernetes Rendering Resources · Download JSON Schema · Usage guide
Defines a Kubernetes workload manifest boundary and its permitted namespace scope.
Nyl extracts this metadata from the output. Included files belong to this Release and cannot declare another Release. GitOps uses the boundary to generate one workload Application.
When needed
Required in each workload entry file discovered through an ApplicationGroup. Files included by spec.include belong to that Release and must not declare another one.
If omitted
ApplicationGroup discovery ignores candidate files without a literal Release document. Direct nyl render can render without one; direct nyl apply and nyl diff require --name and --namespace when no Release supplies them.
Example
apiVersion: k8s.nyl/v1
kind: Release
metadata:
name: workloads
namespace: workloads
spec:
include:
- manifests/*.yaml
Fields
Required means required within the containing object. Optional and nullable are distinct; contextual defaults and requirements are explained with each field.
Unknown fields are rejected.
apiVersion
Required · string
API group and version defining this resource.
const: "k8s.nyl/v1"
kind
Required · string
Resource kind within the API group.
const: "Release"
metadata
Required · object
Resource identity and metadata.
Unknown fields are rejected.
metadata.name
Required · string
Release name
metadata.namespace
Required · string
Target namespace for the release
spec
Optional · object
Configuration for this resource.
default: {}
Unknown fields are rejected.
spec.additionalNamespaces
Optional · array
Additional namespaces that rendered resources may explicitly target.
spec.additionalNamespaces[]
Required · string
spec.argocd
Optional · object or null
ArgoCD-specific options.
Unknown fields are rejected.
spec.argocd.applicationOverride
Optional · object or null
Optional partial ArgoCD Application override.
Must be an object if provided.
Additional keys may contain any value.
spec.include
Optional · array
Additional manifest files, resolved relative to the Release file.
spec.include[]
Required · string
spec.inputs
Optional · object
Typed inputs, read by templates as inputs.<name> and bound per target in DeploymentTarget.spec.releaseInputs. A Release that declares inputs needs a literal metadata.name and a literal spec.inputs block.
spec.inputs[key]
Optional · object
One typed input a Release declares. Templates read its effective value as inputs.<name>.
Unknown fields are rejected.
spec.inputs[key].default
Optional · any value
Value used when the target binds none. Makes the input optional; must satisfy type and enum.
spec.inputs[key].description
Optional · string or null
Documentation, surfaced in errors and inspection.
spec.inputs[key].enum
Optional · array or null
Allowed values, for scalar types only. A non-empty list of values of the declared type.
spec.inputs[key].enum[]
Any value is allowed.
spec.inputs[key].type
Required · string
Value type: string, integer, number, boolean, object, or array.
Allowed values:
| Value | Meaning |
|---|---|
"string" | A JSON string. |
"integer" | A JSON integer; numbers with a fractional part are rejected. |
"number" | Any JSON number. |
"boolean" | true or false. |
"object" | A JSON object. Only the top-level type is checked. |
"array" | A JSON array. Only the top-level type is checked. |
spec.stripEmptyMetadataLabels
Optional · string or null
Control when empty metadata.labels maps are stripped from emitted manifests.
Allowed values:
| Value | Meaning |
|---|---|
"always" | Always strip empty metadata.labels maps from emitted manifests. |
"never" | Never strip empty metadata.labels maps from emitted manifests. |
"argocd" | Strip empty metadata.labels maps only when running in an ArgoCD environment. |
null |