Skip to content

[Bug]: gateway-helm-chart: controller extraVolumeMounts / extraVolumes render invalid YAML #2004

@chameerar

Description

@chameerar

Please select the area the issue is related to

Area/Gateway (Routing, API deployment in gateway etc.), Area/AIGateway (AI Gateway runtime/control plane)

Please select the aspect the issue is related to

Aspect/API (API backends, definitions, contracts, interfaces, OpenAPI), Aspect/Configuration (Config files, settings, env vars, defaults)

Description

Problem

Setting any non-empty list on gateway.controller.deployment.extraVolumeMounts
or gateway.controller.deployment.extraVolumes fails the Helm render with:

YAML parse error on gateway/templates/gateway/controller/deployment.yaml:                                                                               
error converting YAML to JSON: yaml: line 99: did not find expected node content                                                                      

The same fields on gateway.gatewayRuntime.deployment work fine.

Reproduces on chart 1.1.0 and on main (1.1.1).

Expectation

controller.deployment.extraVolumeMounts and extraVolumes should accept the
standard Kubernetes volume / volumeMount list (same shape as the runtime ones)
and mount them on the controller pod.

Likely location

kubernetes/helm/gateway-helm-chart/templates/gateway/controller/deployment.yaml,
the two range blocks for extraVolumeMounts and extraVolumes — the
gateway-runtime template uses a different (working) pattern for the same fields.

Steps to Reproduce

1. Pull the chart

helm pull oci://ghcr.io/wso2/api-platform/helm-charts/gateway --version 1.1.0 --untar                                                                                                                               

2. Create a values file that sets extraVolumeMounts / extraVolumes on the controller deployment.

repro-values.yaml

gateway:
  developmentMode: true
  controller:
    deployment:
      extraVolumeMounts:
        - name: extra-test
          mountPath: /etc/secrets/extra-test
          readOnly: true
      extraVolumes:
        - name: extra-test
          secret:
            secretName: gateway-extra-test

3. Render the chart

helm template test ./gateway -f repro-values.yaml

Expected: chart renders, producing a controller Deployment with the
secret volume and mount.

Actual:

Error: YAML parse error on gateway/templates/gateway/controller/deployment.yaml:
error converting YAML to JSON: yaml: line 97: did not find expected node content

helm template test ./gateway -f repro-values.yaml --debug shows the malformed fragment around that line — a
lone - followed by the item's keys on the next line at the same indent:

            - name: listener-certs
              mountPath: /app/listener-certs
              readOnly: true
            -
            mountPath: /etc/secrets/extra-test
            name: extra-test
            readOnly: true

Removing the extraVolumeMounts / extraVolumes entries from values makes the
chart render successfully. Setting the same values under
gateway.gatewayRuntime.deployment instead also renders successfully — only
the controller path is affected.

Severity Level of the Issue

Severity/Major (Important functionality is broken. Should be prioritized. Doesn't need immediate attention)

Environment Details (with versions)

No response

Metadata

Metadata

Labels

Area/AIGatewayAI Gateway runtime/control plane related issuesArea/GatewayAny issues related to API deployment in gateway, routing etc.Aspect/APIAPI definitions, contracts, OpenAPI, interfacesAspect/ConfigurationConfig files, settings, env vars, defaultsSeverity/MajorType/Bug

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions