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.0and the updated chart components are atv1.4.0
-
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.
-
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 withrenovate/ironbank. Continue edits onrenovate/ironbankinstead. -
Download newer versions of the
standard-install.yamlandexperimental-install.yamlmanifest 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.yamlNOTE: Make sure you update
v1.4.0in the two above commands to the new version. -
Update the
Chart.yamlto 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: -
Update
/CHANGELOG.mdwith an entry for “upgraded Gateway API manifest bundles to version 1.4.0” -
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📜
- 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