Skip to content

The KuboCD Package Resource

A Package is an OCI-compliant container image that bundles an application descriptor and one or more Helm charts. As the standardized unit of deployment, it encapsulates everything needed to install and configure an application.

See A first deployment for an introductory example.

The OCI image is built from a YAML manifest described below.

Templating

Some attributes support templating to render dynamic values. These are denoted as:

  • Template(string): Renders a string.
  • Template(bool): Renders a string convertible to a boolean (e.g., true, false, 1, 0, t, f).
  • Template(list(string)): Renders a list of strings.
  • Template(map): Renders a map/object.
  • Template(duration): Renders a string convertible to a duration (e.g., 5m, 1h).

Package

Field Type Required Description
apiVersion String Yes The API version. Currently v1alpha1.
type String No The resource type. Must be Package if specified.
name String Yes The package name. Used in the OCI repository name. Must be a valid DNS Subdomain name.
tag String Yes The specific tag for the OCI image.
description Template(String) No A short description of the package. Default description for the Release.
usage Template(String) No Usage information (e.g., access URLs) displayed after deployment.
protected Bool No (Default: false) If true, prevents accidental deletion. Default for the Release.
schema.parameters Map No Schema to validate Release.parameters. Supports standard JSON/OpenAPI or KuboCD simplified schema.
schema.context Map No Schema to validate the injected Context. Supports standard JSON/OpenAPI or KuboCD simplified schema.
modules List(Module) Yes The list of modules embedded in this package.
roles Template(List(String)) No The roles this application fulfills. See Release Dependencies.
dependencies Template(List(String)) No The roles this application depends on. See Release Dependencies.

Package.module

A Module defines a Helm Chart deployment.

Field Type Default Description
name String - Required. Unique name for the module. Suffix for the generated HelmRelease. Use noname for no suffix.
source Map - Required. Defines where to fetch the chart. Must contain exactly one of: helmRepository, git, oci, or local.
values Template(Map) null Template for generating the Helm values.yaml.
enabled Template(Bool) true Conditional deployment. If false, the module is skipped.
targetNamespace Template(String) {{ .Release.spec.targetNamespace }} The namespace where the module is deployed.
onFailureStrategy Template(String) null Strategy for failure handling. See Deployment Failure.
timeout Template(Duration) {config.defaultHelmTimeout} Sets spec.timeout in the generated HelmRelease.
interval Template(Duration) {config.defaultHelmInterval} Sets spec.interval in the generated HelmRelease (reconciliation frequency).
dependsOn Template(List(String)) null List of other module names this module depends on.
specPatch Template(Map) null Arbitrary patch applied to the spec of the generated Flux HelmRelease.

Package.module.source.helmRepository

Fetches a Chart from an HTTP(S) Helm Repository.

Field Type Required Description
url String Yes The repository URL.
chart String Yes The chart name.
version String Yes The chart version.

Package.module.source.git

Fetches a Chart from a Git Repository.

Field Type Required Description
url String Yes The repository URL.
branch String Yes (if tag omitted) Git branch to fetch.
tag String Yes (if branch omitted) Git tag to fetch.
path String Yes Relative path to the chart directory (containing Chart.yaml).
extraFilePrefixes List(String) No Include extra files/folders starting with these prefixes (relative to chart path).

Package.module.source.oci

Fetches a Chart stored as an OCI artifact.

Field Type Required Description
repository String Yes The repository URL (without oci:// prefix or tag).
tag String Yes The image tag.
insecure Bool No (Default: false) If true, allows unencrypted (HTTP) connections.

Package.module.source.local

Fetches a Chart from the local filesystem (relative to the Package manifest).

Field Type Required Description
path String Yes Relative path to the chart directory.