For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Upgrade
Upgrade the control plane and any gateway proxies that run in your cluster.
Prepare to upgrade
Before you upgrade Solo Enterprise for kgateway, review the following information.
Review the kgateway OSS release notes for any breaking changes or new features that you need to be aware of.
Review the Solo Enterprise for kgateway release notes for any breaking changes or new features that you need to be aware of.
Check the supported version compatibility matrix. If the version of Solo Enterprise for kgateway that you are upgrading to requires a different version of Kubernetes, the Kubernetes Gateway API, or Istio, upgrade those technologies accordingly.
Decide on the Kubernetes Gateway API version that you want to use.
- For help, review the Upgrade Notes in the Kubernetes Gateway API docs for each version.
- Check if you might need to install the experimental channel for the features that you want to use.
Install the custom resources of the Kubernetes Gateway API version that you want to upgrade to, such as the standard 1.5.1 version.
Standard channel:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/standard-install.yamlExperimental channel: Note that some CRDs are prefixed with
Xto indicate that the entire CRD is experimental and subject to change.kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/experimental-install.yaml
Example output:
customresourcedefinition.apiextensions.k8s.io/gatewayclasses.gateway.networking.k8s.io created customresourcedefinition.apiextensions.k8s.io/gateways.gateway.networking.k8s.io created customresourcedefinition.apiextensions.k8s.io/httproutes.gateway.networking.k8s.io created customresourcedefinition.apiextensions.k8s.io/referencegrants.gateway.networking.k8s.io created customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io createdCheck the Kubernetes Gateway API CRDs. Remove any outdated CRDs.
kubectl get crds -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.versions[*].name}{"\t"}{.metadata.annotations.gateway\.networking\.k8s\.io/bundle-version}{"\t"}{.metadata.annotations.gateway\.networking\.k8s\.io/channel}{"\n"}{end}' | grep gateway.networking.k8s.ioExample output:
gatewayclasses.gateway.networking.k8s.io v1 v1beta1 v1.2.0 experimental gateways.gateway.networking.k8s.io v1 v1beta1 v1.2.0 experimental grpcroutes.gateway.networking.k8s.io v1 v1.2.0 experimental httproutes.gateway.networking.k8s.io v1 v1beta1 v1.2.0 experimental
For Kubernetes upgrades, consult your cloud infrastructure provider.
For Istio upgrades, consult the docs based on the way that you installed Istio. Example providers:
Upgrade
Set the version you want to upgrade to in an environment variable, such as the latest patch version (
2.2.6) .export NEW_VERSION=2.2.6Apply the new CRDs for the control and data plane by using Helm.
Optional: To check the CRDs locally, download the CRDs to a
helmdirectory.helm template --version $NEW_VERSION enterprise-kgateway-crds oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway-crds --output-dir ./helmUpgrade the CRDs in your cluster:
helm upgrade -i --namespace kgateway-system --version $NEW_VERSION enterprise-kgateway-crds oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway-crds
Make any changes to your Helm values.
Get the Helm values file for your current version.
helm get values enterprise-kgateway -n kgateway-system -o yaml > values.yaml open values.yamlCompare your current Helm chart values with the version that you want to upgrade to.
Show all values:
helm show values oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway --version $NEW_VERSIONGet a file with all values: You can get a
enterprise-kgateway/values.yamlfile for the upgrade version by pulling and inspecting the Helm chart locally.helm pull oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway --version $NEW_VERSION tar -xvf enterprise-kgateway-$NEW_VERSION.tgz open enterprise-kgateway/values.yaml
Make any changes that you want by editing your
values.yamlHelm values file or preparing the--setflags.
Upgrade the Solo Enterprise for kgateway control plane Helm installation.
- Make sure to include your Helm values when you upgrade either as a configuration file or with
--setflags. Otherwise, any previous custom values that you set might be overwritten. - When using the development build 2.3.0, add the
--set controller.image.pullPolicy=Alwaysoption to ensure you get the latest image. Alternatively, you can specify the exact image digest.
helm upgrade -i -n kgateway-system enterprise-kgateway oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway \ -f values.yaml \ --version $NEW_VERSION- Make sure to include your Helm values when you upgrade either as a configuration file or with
Verify that the control plane runs the upgraded version.
kubectl -n kgateway-system get pod -l app.kubernetes.io/name=enterprise-kgateway -o jsonpath='{.items[0].spec.containers[0].image}'Example output:
us-docker.pkg.dev/solo-public/enterprise-kgateway/enterprise-kgateway-controller:2.2.6Confirm that the control plane is up and running.
kubectl get pods -n kgateway-system