Skip to content

Unsupported: multi-command if condition (not x | default) #120

@myitcv

Description

@myitcv

helm2cue version

helm2cue version v0.0.0-20260309130645-780cc16a42a7

Helm version

version.BuildInfo{Version:"v4.1.1"}

Does this issue reproduce with the latest release?

Yes

What did you do?

helm pull argocd/argo-cd --version 9.4.7 --untar --untardir tmp
helm2cue chart tmp/argo-cd out

The argo-cd statefulset template has a top-level if condition
that pipes `not` into `default`:

{{- if not .Values.controller.dynamicClusterDistribution | default false }}

The converter rejects this with:

warning: skipping argocd-application-controller/statefulset.yaml (doc 0): top-level if condition: unsupported multi-command condition: not .Values.controller.dynamicClusterDistribution | default false

The issue is that the condition contains multiple piped commands
(`not ... | default false`) which the converter does not support
as an if condition.

What did you expect to see?

The template should convert successfully. The condition is
equivalent to `not (default false .Values.controller.dynamicClusterDistribution)`
due to Go template pipeline semantics, which should translate
to a CUE negation with a default fallback.

What did you see instead?

warning: skipping argocd-application-controller/statefulset.yaml (doc 0): top-level if condition: unsupported multi-command condition: not .Values.controller.dynamicClusterDistribution | default false

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions