Value Hierarchy

How Kuberise.io merges default and cluster-specific values.

Two Levels of Values

Each component has up to two value files that ArgoCD merges in order:

  1. Defaultsvalues/defaults/platform/<component>/values.yaml
  2. Cluster-specificvalues/<cluster>/platform/<component>/values.yaml

Cluster-specific values override defaults.

Example

For the loki component on the onprem cluster:

values/
  defaults/platform/loki/values.yaml     # base config (all clusters)
  onprem/platform/loki/values.yaml       # overrides for onprem only

ArgoCD passes both files to Helm, which merges them with the cluster-specific file taking precedence.

Rules

  • Default files must always exist, even if empty — they serve as placeholders showing available components.
  • Cluster-specific files are optional — only create them when you have actual overrides.
  • The ArgoCD template uses ignoreMissingValueFiles: true, so missing cluster-specific files are silently skipped.

Applications vs Platform

Values are organized in two sub-directories:

  • values/<cluster>/platform/ — platform tool configuration
  • values/<cluster>/applications/ — business application configuration

Direct Values (No Subchart Nesting)

Because external charts are referenced directly (not as subchart dependencies), values are passed at the top level:

# values/defaults/platform/loki/values.yaml
# These values go directly to the loki-distributed chart
loki:
  config:
    auth_enabled: false

Global Values

The install script injects two global values available to all charts:

  • global.domain — the base domain (e.g. onprem.kuberise.dev)
  • global.clusterName — the cluster name (e.g. onprem)