Skip to content

Namespace field change upgrading 1.3.0 to 1.4.0 #6155

@owenhaynes

Description

@owenhaynes

Description:
After upgrading from 1.3.0 to 1.4.0 the deployment is unable to be patched because of a invalid environment value.

In 1.3.0 the namespace was configured to be

        - name: ENVOY_GATEWAY_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace

and 1.4.0 changed this to be

        - name: ENVOY_GATEWAY_NAMESPACE
          value: envoy-gateway-system

this then gives the following error when envoy-gateway patches the deployment

spec.template.spec.containers[1].env[0].valueFrom: Invalid value: \"\": may not be specified when `value` is not empty]"

I assume this is because the patch struggles to drop null values

as I expect the following is sent in the patch request

- name: ENVOY_GATEWAY_NAMESPACE 
  value: envoy-gateway-system
  valueFrom: null

The log message which envoy gateway logs seems to indicate this as well

{ENVOY_GATEWAY_NAMESPACE envoy-gateway-system nil}

I have seen this before in other systems. A manual fix for the to allow envoy-gateway to roll out the new deployment config was to manually edit the deployment with the new namespace setting then restart envoy-gateway controller pods.

Only one cluster of ours has not exhibited this behaviour but this had a fresh install of 1.3.0 last week, before the 1.4.0 upgrade. The other clusters have been all migrated upwards from 1.0.0 over the course of the last year.

Kubernetes Version: 1.32.3
Platform: GKE

Metadata

Metadata

Assignees

Labels

area/infra-mgrIssues related to the provisioner used for provisioning the managed Envoy Proxy fleet.area/upgradekind/bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions