Uyuni Proxy Upgrade on Kubernetes

Proxies deployed via the proxy-helm chart (on either RKE2 or K3S) are upgraded by re-running helm upgrade --install against a newer chart version. The chart values and the existing PVC binding are preserved between releases.

This is the supported Kubernetes upgrade path. The legacy mgrpxy install kubernetes / mgrpxy upgrade kubernetes flow on K3S is replaced by the direct chart-based deployment; if you are still on that path, follow the one-time migration in Migrating the Uyuni Proxy on K3s from mgrpxy to proxy-helm before the procedure below applies.

Procedure: Upgrade the proxy on Kubernetes
  1. Run helm upgrade against the new chart version, reusing the values from the previous release:

    helm upgrade uyuni-proxy \
        oci://registry.opensuse.org/uyuni/proxy-helm \
        --version 2026.6.0 \
        --namespace uyuni-proxy \
        --reuse-values

    --reuse-values keeps the values from the previous release intact (global.config/global.httpd/global.ssh, ingress.class, tftp.hostNetwork, volumes.squid.volumeName, dnsConfig, registrySecret, etc.), so no --set / --set-file flags need to be re-passed for a routine version bump.

    If the proxy configuration tarball changed since the last install (TLS certificate rotation, server FQDN change, re-registration), re-extract the files and overlay them on top of --reuse-values:

    mkdir -p /root/proxy-config
    kubectl -n uyuni-proxy exec deploy/uyuni-proxy -c httpd -- cat /etc/uyuni/config.yaml > /root/proxy-config/config.yaml
    kubectl -n uyuni-proxy exec deploy/uyuni-proxy -c httpd -- cat /etc/uyuni/httpd.yaml > /root/proxy-config/httpd.yaml
    kubectl -n uyuni-proxy exec deploy/uyuni-proxy -c ssh   -- cat /etc/uyuni/ssh.yaml   > /root/proxy-config/ssh.yaml

    Then add the matching --set-file global.config=…​ / --set-file global.httpd=…​ / --set-file global.ssh=…​ flags to the helm upgrade command above. The same pattern applies to any other value that needs to change: keep --reuse-values and overlay the override with --set.

  2. Watch the rollout and verify the pods come back up:

    kubectl -n uyuni-proxy rollout status deploy/uyuni-proxy
    kubectl -n uyuni-proxy get pod

On Kubernetes the image cleanup is handled automatically, or it depends on the Kubernetes distribution.