Skip to main content

Values

Every deployment renders your Project's Helm chart with a values tree: replicas, resources, image tags, hosts, probes and everything else that parameterizes the manifests. SleakOps generates those values for you, and lets you override them at three persistent levels — plus a fourth, ephemeral level at deploy time.

The override levels

Values are deep-merged level by level at deploy time. Each level overrides the one before it — the most specific scope wins:

LevelScopeWhere you set it
1Generated by SleakOpsNowhere — derived from your Workload forms, Dependencies and Var Groups (read-only).
2Project globalProject → Settings → Chart Configuration, the Values editor.
3Workload overrideThe Workload's Advanced → Values tab (Workload override editor).
4Deploy-time values (ephemeral)The CLI: sleakops deploy -f values.yaml or --set key.path=value.

Levels 2 and 3 are persistent: they apply to every subsequent deployment until you change them. Level 4 applies to one deployment only.

List merging

Unlike plain Helm, the level merge combines lists instead of replacing them — an override that redefines a list adds to the generated entries rather than dropping them.

The Workload Values tab

Open a Workload, switch to Advanced and select the Values tab:

Workload Values tab with the generated values and the workload override
  • Generated by SleakOps (read-only) — the values SleakOps derived for this Workload from its form: command, probes, resources, node selector, hosts, and so on.
  • Workload override — a YAML mapping merged over the generated values, for this Workload only. Save it with Save override.

For Ingress values, each key under hosts: represents one domain. To tune a single host, override a key inside that entry — for example hosts.<name>.custom_service — instead of redefining the whole block.

Effective values

The Effective values — what Helm receives table at the bottom answers "what will actually deploy": one row per overridden key, with the value each level contributes and a badge naming the winning source.

Effective values table showing generated, project and workload columns

In the example above, resources.limits.memory is generated as 1331Mi, raised to 1536Mi by a project global, and finally set to 2048Mi by the workload override — the workload has the last word.

Project global values

Project-wide overrides live in Project → Settings → Chart Configuration, in the Values editor of the Extends Template & Values section. The deprecation notice shown on that section is about migrating free-form templates to Manifests — the Values editor remains the home of project globals. Nest the keys under the Workload's name (or under global: for chart-wide values):

Project global values editor in Chart Configuration
backoffice:
resources:
limits:
memory: 1536Mi

Use project globals for values you want every Workload of the Project to inherit consistently; use workload overrides for the exceptions.

Deploy-time values (CLI)

For values that belong to a single deployment — a canary replica bump, a one-off feature flag — inject them from your pipeline with sleakops deploy -f values.yaml, --set key=value or --set-string key=value. They win over every persistent level, apply to that deployment only, and the next deploy without them reverts to the platform values.

See Injecting values on deploy for the full syntax and caveats.

FAQs

Which value wins if the same key is set at several levels?

The most specific one: deploy-time values beat the workload override, which beats the project global, which beats the generated value. The Effective values table shows the winner per key with its source badge.

Does saving an override trigger a deployment?

Saving a workload override registers a pending change — you deploy it when you publish. In the project's Chart Configuration, the Deploy? switch decides: on triggers a deployment on Apply changes, off leaves the update as a pending change.

How do I see the values a Workload will actually receive?

The Effective values table in the Workload's Values tab shows the merged result per key. The manifest Preview tab shows where each {{ .Values }} expression lands in the rendered template.

Should I put secrets in values?

No. Secrets belong in Var Groups, which are stored encrypted and injected as Kubernetes Secrets. Values are chart configuration, not a secrets store — and deploy-time --set/--set-string flags additionally end up in your shell history.