Skip to content

feat(helm): support for specifying Helm flags on region (forceConflicts, serverSide) - #697

Merged
ddecrulle merged 2 commits into
mainfrom
feat-helm-force-conflicts-flag
Nov 4, 2026
Merged

ddecrulle merged 2 commits into
mainfrom
feat-helm-force-conflicts-flag

Conversation

@ddecrulle

Copy link
Copy Markdown
Member

Rebase of #646 by @johnksv onto the current main. The original branch lives on the statisticsnorway fork without maintainer edit access, so it is reopened from this repository. Commits and authorship are unchanged.

What it does

Adds a helm block to the region services configuration so that Helm flags apply to every helm upgrade run by Onyxia (install, suspend, resume):

  • forceConflicts (default false) adds --force-conflicts, needed with Helm 4 when a field is owned by another manager (for example a mutating webhook).
  • serverSide (default "auto") adds --server-side <value>.

Helm flags are grouped in a new HelmFlags record, and suspend/resume now go through the single installChart with global.suspend.

Conflict resolution during the rebase

  • HelmAppsService.suspendOrResume: kept the PR's version and passed namespaceId to getHelmConfiguration(region, user, namespaceId) (signature changed in Mode service account in target namespace #693).
  • docs/region-configuration.md: kept the table from main (it now includes serviceAccountInTargetNamespace / targetNamespaceServiceAccount) and added the helm row, linked to #helm-properties.

Open points from the review

  • --server-side auto is now always passed. It is Helm 4's default and the image ships Helm v4.3.1, but Helm 3 does not know the flag.
  • With serverSide: auto, a release first installed client-side (Helm 3) stays client-side, and Helm 4 may then reject --force-conflicts. Not tested on a cluster.
  • serverSide is not documented in the "Helm properties" section and its value is not validated (true|false|auto).
  • HelmFlags.toHelmUpgradeCliString() has no unit test.

Tests (mvn test) and spotless:check pass locally.

Supersedes #646.

🤖 Generated with Claude Code

…start with

The implementation allows one to easily add helm flags on the region - which will then be used during helm upgrade (i.e. install, suspend, resume).
The reason to add it on the region is that these flags make sense for all services rather then on a catalog or service level (these kind of flags manipulate how helm functions, and we want the same result for all services, at least as of now).
forceConflicts requires that upgrade is done server side. Thus we want the ability to supply this flag
@sonarqubecloud

sonarqubecloud Bot commented Nov 4, 2026

Copy link
Copy Markdown

@ddecrulle
ddecrulle merged commit 9f447f7 into main Nov 4, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants