This took a bit of digging to figure out. As it turns out, my lab ingress has evolved a little. This env may have had several ingress classes in the past.
- alpha env behind a LB with Let's Encrypt enabled
- the error is misleading, the api-resources are OK & pathType IS specified
- helm install works OK but won't touch ingress, keeps status as
failed
- even backing up ingress to make it net-new fails
$ helm upgrade rancher rancher-prime/rancher -n cattle-system --reuse-values
Error: UPGRADE FAILED: cannot patch "rancher" with kind Ingress: Ingress.networking.k8s.io "rancher" is invalid: spec.rules[0].http.paths[0].pathType: Required value: pathType must be specified
Add ingress.class=nginx
to values.yaml
and re-upgrade with helm upgrade -f values.yaml ...
Example ouput of helm get values -n cattle-system rancher
...
USER-SUPPLIED VALUES:
hostname: some-rancher.fqdn.com
ingress:
class: nginx
... (continues)
Ask your consultant for more information regarding clusters that have been upgraded over longer periods of time.
Yea, it's obviously a result of my environment keeping the same ingress config over the course of many upgrades.
The chart itself has changed to
ImplementationSpecific
four years ago -https://github.com/rancher/rancher/blob/release/v2.9/chart/templates/ingress.yaml#L57
It all might be a moot point as
Ingress
as we know it is frozen with things evolving into Gateway API.