Skip to content
ReferenceRelease

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:

ValueMeaning
"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:

ValueMeaning
"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