bright-lifeguard-9803
08/22/2025, 8:26 PMv1.29.15+rke2r1 around rke2-ingress-nginx and HelmChartConfig (from which we need controller.hostPort.enabled: false )
... Helm Values history shows all with controller.hostPort.enabled: false
but sometimes (not always) the DS will have the Host Ports (80,443) defined, which conflicts with another process that runs on system.
if I toggle false -> true -> false it does the right thing.
I was able to rollback to the DS with the hostPort defined.
$ kubectl rollout -n kube-system undo ds/rke2-ingress-nginx-controller --to-revision 1
daemonset.apps/rke2-ingress-nginx-controller rolled back
$ kubectl get ds -n kube-system rke2-ingress-nginx-controller -o yaml |grep host
hostPort: 80
hostPort: 443creamy-pencil-82913
08/22/2025, 8:38 PMcreamy-pencil-82913
08/22/2025, 8:38 PMcreamy-pencil-82913
08/22/2025, 8:38 PMbright-lifeguard-9803
08/22/2025, 9:02 PMIf you have a new revision of the chart that DOES NOT have it set, but the old revision does… then somehow the chart config is getting dropped.can you elaborate please?
creamy-pencil-82913
08/22/2025, 9:21 PMcreamy-pencil-82913
08/22/2025, 9:22 PMbright-lifeguard-9803
08/22/2025, 9:30 PMhostPort: 80) and what was in the HelmChartConfig (hostPort.enabled: false) did not match. it did not resolve even after doing a sudo kubectl rollout restart ds rke2-ingress-nginx-controller -n kube-system ...creamy-pencil-82913
08/22/2025, 9:40 PMcreamy-pencil-82913
08/22/2025, 9:40 PMbright-lifeguard-9803
08/22/2025, 9:42 PMrke2/server/manifests/rke2-ingress-nginx-config.yaml with our deployment tooling to get that config in place. AFAIK we don't edit the DS directly or anything like that.bright-lifeguard-9803
08/22/2025, 9:46 PMkubectl rollout -n kube-system undo ds/rke2-ingress-nginx-controller --to-revision 1 to show that it was indeed that at some point in the pastbright-lifeguard-9803
08/22/2025, 9:48 PMbright-lifeguard-9803
08/22/2025, 9:49 PMcreamy-pencil-82913
08/22/2025, 9:49 PMdebug: true in the configbright-lifeguard-9803
08/22/2025, 9:50 PMbright-lifeguard-9803
08/22/2025, 9:50 PMbright-lifeguard-9803
08/22/2025, 9:51 PMcreamy-pencil-82913
08/22/2025, 9:51 PMcreamy-pencil-82913
08/22/2025, 9:53 PMbright-lifeguard-9803
08/22/2025, 9:59 PMbright-lifeguard-9803
10/08/2025, 5:21 PMbright-lifeguard-9803
10/08/2025, 5:22 PM$ rke2 --version
rke2 version v1.33.1+rke2r1 (01d605e84711a636d407f6a87060425373b9f09e)
go version go1.24.2 X:boringcryptocreamy-pencil-82913
10/08/2025, 5:47 PMcreamy-pencil-82913
10/08/2025, 5:47 PMbright-lifeguard-9803
10/08/2025, 5:59 PM$ sudo TZ=UTC stat .../rancher/rke2/server/manifests/rke2-ingress-nginx-config.yaml
File: /.../rancher/rke2/server/manifests/rke2-ingress-nginx-config.yaml
Size: 546 Blocks: 8 IO Block: 4096 regular file
Device: fc10h/64528d Inode: 52724142 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-10-08 13:03:00.601603657 +0000
Modify: 2025-10-08 13:03:00.601603657 +0000
Change: 2025-10-08 13:03:00.601603657 +0000
Birth: -
With contents:
---
apiVersion: <http://helm.cattle.io/v1|helm.cattle.io/v1>
kind: HelmChartConfig
metadata:
name: rke2-ingress-nginx
namespace: kube-system
spec:
valuesContent: |-
controller:
watchIngressWithoutClass: false
allowSnippetAnnotations: true
hostPort:
enabled: false
publishService:
enabled: true
service:
enabled: true
type: LoadBalancer
ports:
http: 30480
https: 30443
ipFamilyPolicy: SingleStack
ipFamilies: [IPv4]
config:
worker-processes: 2
this is correct:
kubectl get helmchartconfigs -n kube-system rke2-ingress-nginx -o yaml
apiVersion: <http://helm.cattle.io/v1|helm.cattle.io/v1>
kind: HelmChartConfig
metadata:
annotations:
<http://objectset.rio.cattle.io/applied|objectset.rio.cattle.io/applied>: H4sIAAAAAAAA/4TPwUrDQBDG8VcJc05q0wSbLngouSgeBb14mWymyZrNbNiZtkrpu0sogh5qj8u3/PjPCXByrxTFBQYDPflxYVHV08KFu0MOKQyOWzDwSH6se4xaB965DlIYSbFFRTAnQOagqC6wzM/QfJBVIV1EF36BbpYgvbqHI1PMusMABoZC/qSkybPj9mHbtoFvEowjgYE40Cpz3EUSybhz/JnZn/zbgExoZ2XYN5TJlyiNcE7BY0P+3zN7lB4MVKt8l+e0KcoK7bKpLBZ52dq82BTrZlWum/tyWSHmM3o1GC7blRaZyM4lB/R7kjqwEisYsIE1Bu8pmndOkiOq7Z8u7JvTPuy19ihikh16ofkLeh+OL+ymiXTLHOB8/g4AAP//wMdctx0CAAA
<http://objectset.rio.cattle.io/id|objectset.rio.cattle.io/id>: ""
<http://objectset.rio.cattle.io/owner-gvk|objectset.rio.cattle.io/owner-gvk>: <http://k3s.cattle.io/v1|k3s.cattle.io/v1>, Kind=Addon
<http://objectset.rio.cattle.io/owner-name|objectset.rio.cattle.io/owner-name>: rke2-ingress-nginx-config
<http://objectset.rio.cattle.io/owner-namespace|objectset.rio.cattle.io/owner-namespace>: kube-system
creationTimestamp: "2025-10-08T13:03:25Z"
generation: 1
labels:
<http://objectset.rio.cattle.io/hash|objectset.rio.cattle.io/hash>: 821f11e9348ac0b8ca314dc13937b247b6408aa1
name: rke2-ingress-nginx
namespace: kube-system
resourceVersion: "954"
uid: b5fcd032-0371-4569-873e-6bce14f47030
spec:
valuesContent: |-
controller:
watchIngressWithoutClass: false
allowSnippetAnnotations: true
hostPort:
enabled: false
publishService:
enabled: true
service:
enabled: true
type: LoadBalancer
ports:
http: 30480
https: 30443
ipFamilyPolicy: SingleStack
ipFamilies: [IPv4]
config:
worker-processes: 2
and we have:
helm ls --all -f '^rke2-ingress-nginx$' --namespace kube-system --output json
[{"name":"rke2-ingress-nginx","namespace":"kube-system","revision":"1","updated":"2025-10-08 13:03:26.74367985 +0000 UTC","status":"deployed","chart":"rke2-ingress-nginx-4.12.103","app_version":"1.12.1"}]
but, hostPort is still present.
kubectl get ds -n kube-system rke2-ingress-nginx-controller -o yaml |grep host
hostPort: 80
hostPort: 443bright-lifeguard-9803
10/08/2025, 6:09 PMkubectl logs -n kube-system jobs/helm-install-rke2-ingress-nginx --timestampscreamy-pencil-82913
10/08/2025, 6:23 PMcreamy-pencil-82913
10/08/2025, 6:24 PMcreamy-pencil-82913
10/08/2025, 6:26 PMcreamy-pencil-82913
10/08/2025, 6:28 PMcreamy-pencil-82913
10/08/2025, 6:29 PMkubectl apply, then remove the hostPort field, and apply it again - and see if it gets removed or not. I bet it wont.creamy-pencil-82913
10/08/2025, 6:31 PMcreamy-pencil-82913
10/08/2025, 6:32 PMbright-lifeguard-9803
10/09/2025, 1:53 PMbright-lifeguard-9803
10/09/2025, 2:12 PMhostPort from false -> true -> false it clears the fault.
(/.../rancher/rke2/server/manifests/rke2-ingress-nginx-config.yaml)bright-lifeguard-9803
10/09/2025, 5:01 PMhelm_update install --set-string global.clusterCIDR=192.0.0.0/24 --set-string global.clusterCIDRv4=192.0.0.0/24 --set-string global.clusterDNS=203.0.113.10 --set-string global.clusterDomain=cluster.local --set-string global.rke2DataDir=/data/rancher/rke2 --set-string global.serviceCIDR=203.0.113.0/24 --set-string global.systemDefaultIngressClass=ingress-nginx
then it looks like the install failed, but was successful on re-install?
++ helm ls --all -f '^rke2-ingress-nginx$' --namespace kube-system --output json
++ jq -r '"\(.[0].chart),\(.[0].status)"'
++ tr '[:upper:]' '[:lower:]'
+ LINE=rke2-ingress-nginx-4.12.103,pending-install
+ IFS=,
+ read -r INSTALLED_VERSION STATUS _
+ VALUES=
+ for VALUES_FILE in /config/*.yaml
+ VALUES=' --values /config/values-1-000-HelmChartConfig-ValuesContent.yaml'
+ [[ install = \d\e\l\e\t\e ]]
+ [[ rke2-ingress-nginx-4.12.103 =~ ^(|null)$ ]]
+ [[ pending-install =~ ^(pending-install|pending-upgrade|pending-rollback|uninstalling)$ ]]
+ echo Previous helm job was interrupted, updating status from pending-install to failed
Previous helm job was interrupted, updating status from pending-install to failed
+ echo 'Resetting helm release status from '\''pending-install'\'' to '\''failed'\'''
+ helm set-status rke2-ingress-nginx failed --namespace kube-system
2025/10/08 13:03:26 release rke2-ingress-nginx status updated
+ [[ pending-install == \p\e\n\d\i\n\g\-\u\p\g\r\a\d\e ]]
+ STATUS=failed
+ [[ failed =~ ^deployed$ ]]
+ [[ failed =~ ^(deleted|failed|null|unknown)$ ]]
+ [[ reinstall == \r\e\i\n\s\t\a\l\l ]]
+ echo 'Uninstalling failed helm chart'
+ helm uninstall rke2-ingress-nginx --namespace kube-system --wait
release "rke2-ingress-nginx" uninstalled
+ echo Deleted
Deleted
+ echo 'Installing helm chart'
+ helm install --set-string global.clusterCIDR=192.0.0.0/24 --set-string global.clusterCIDRv4=192.0.0.0/24 --set-string global.clusterDNS=203.0.113.10 --set-string global.clusterDomain=cluster.local --set-string global.rke2DataDir=/data/rancher/rke2 --set-string global.serviceCIDR=203.0.113.0/24 --set-string global.systemDefaultIngressClass=ingress-nginx rke2-ingress-nginx /tmp/rke2-ingress-nginx.tgz --values /config/values-1-000-HelmChartConfig-ValuesContent.yaml
NAME: rke2-ingress-nginx
LAST DEPLOYED: Wed Oct 8 13:03:26 2025
...bright-lifeguard-9803
10/09/2025, 5:06 PMhelm-install-rke2-ingress-nginx script?bright-lifeguard-9803
10/09/2025, 5:19 PMimage: rancher/klipper-helm:v0.9.5-build20250306creamy-pencil-82913
10/09/2025, 7:09 PMcreamy-pencil-82913
10/09/2025, 7:11 PMcreamy-pencil-82913
10/09/2025, 7:11 PMbright-lifeguard-9803
10/09/2025, 7:13 PM