Skip to content

How to maintain the Gateway API chart📜

The Gateway API chart is maintained by the Big Bang team. While possible upstream charts exist, the simplicity of what’s needed to enable the Gateway API made maintaining our own chart implementation more desirable.

How to upgrade the chart components📜

NOTE Some of these steps might already have been completed by Renovate. For the purposes of all examples, we’ll assume the current chart components are at v1.3.0 and the updated chart components are at v1.4.0

  1. Read release notes from upstream. Be aware of changes included in the upgrade by comparing the current and new revisions. Note any manual upgrade steps customers might need to perform. For this chart, this is expected to be minimal.

  2. Create a development branch and merge request tied to the issue created for the package upgrade. The association between the branch and the issue can be made by prefixing the branch name with the issue number, e.g., 56-update-package. DO NOT create a branch if working with renovate/ironbank. Continue edits on renovate/ironbank instead.

  3. Download newer versions of the standard-install.yaml and experimental-install.yaml manifest bundles:

    curl -sL 'https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml' -o chart/files/standard-install.yaml
    curl -sL 'https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/experimental-install.yaml' -o chart/files/experimental-install.yaml
    

    NOTE: Make sure you update v1.4.0 in the two above commands to the new version.

  4. Update the Chart.yaml to the new version:

     apiVersion: v2
     name: gateway-api
    -version: 1.3.0-bb.0
    -appVersion: 1.3.0
    +version: 1.4.0-bb.0
    +appVersion: 1.4.0
     description: Helm chart for Gateway API CRDs
     keywords:
    

  5. Update /CHANGELOG.md with an entry for “upgraded Gateway API manifest bundles to version 1.4.0”

  6. Use a development environment to deploy and test. See more detailed testing instructions below. Also test an upgrade by deploying the old version first and then deploying the new version.

Testing new version📜

  1. Verify the CRDs template out correctly:
     helm template gateway-api ./chart --set unstableAPI.enabled=true | yq '.spec.names.kind'
    BackendTLSPolicy
    ---
    GatewayClass
    ---
    Gateway
    ---
    GRPCRoute
    ---
    HTTPRoute
    ---
    ReferenceGrant
    ---
    TCPRoute
    ---
    TLSRoute
    ---
    UDPRoute
    ---
    XBackendTrafficPolicy
    ---
    XListenerSet
    ❯ helm template gateway-api ./chart --set unstableAPI.enabled=false | yq '.spec.names.kind'
    GatewayClass
    ---
    Gateway
    ---
    GRPCRoute
    ---
    HTTPRoute
    ---
    ReferenceGrant