From 8b806a0b6a4166a16648a2f6bc6ae5abbd2cb3cf Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Mon, 14 Jul 2025 10:19:03 -0700 Subject: [PATCH 1/2] v1.32.5-rancher2-1 and post eol changes --- data/data.json | 39 +++++++++++++++++++++++++++++++ pkg/images/images.go | 4 ++++ pkg/rke/k8s_defaults.go | 26 ++++++++++++++++++--- pkg/rke/k8s_rke_system_images.go | 40 ++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 3 deletions(-) diff --git a/data/data.json b/data/data.json index 979de3895..1d2b58d27 100644 --- a/data/data.json +++ b/data/data.json @@ -15330,6 +15330,45 @@ "aciOvsContainer": "noiro/openvswitch:6.1.1.4.81c2369", "aciControllerContainer": "noiro/aci-containers-controller:6.1.1.4.81c2369" }, + "v1.32.5-rancher2-1": { + "etcd": "rancher/mirrored-coreos-etcd:v3.5.16", + "alpine": "rancher/rke-tools:v0.1.113", + "nginxProxy": "rancher/rke-tools:v0.1.113", + "certDownloader": "rancher/rke-tools:v0.1.113", + "kubernetesServicesSidecar": "rancher/rke-tools:v0.1.113", + "kubedns": "rancher/mirrored-k8s-dns-kube-dns:1.23.0", + "dnsmasq": "rancher/mirrored-k8s-dns-dnsmasq-nanny:1.23.0", + "kubednsSidecar": "rancher/mirrored-k8s-dns-sidecar:1.23.0", + "kubednsAutoscaler": "rancher/mirrored-cluster-proportional-autoscaler:v1.9.0", + "coredns": "rancher/mirrored-coredns-coredns:1.11.3", + "corednsAutoscaler": "rancher/mirrored-cluster-proportional-autoscaler:v1.9.0", + "nodelocal": "rancher/mirrored-k8s-dns-node-cache:1.23.0", + "kubernetes": "rancher/rke-extended-life/hyperkube:v1.32.5-rancher2", + "flannel": "rancher/mirrored-flannel-flannel:v0.26.4", + "flannelCni": "rancher/flannel-cni:v1.4.1-rancher1", + "calicoNode": "rancher/mirrored-calico-node:v3.29.3", + "calicoCni": "rancher/calico-cni:v3.29.3-rancher1", + "calicoControllers": "rancher/mirrored-calico-kube-controllers:v3.29.3", + "calicoCtl": "rancher/mirrored-calico-ctl:v3.29.3", + "calicoFlexVol": "rancher/mirrored-calico-pod2daemon-flexvol:v3.29.3", + "canalNode": "rancher/mirrored-calico-node:v3.29.3", + "canalCni": "rancher/calico-cni:v3.29.3-rancher1", + "canalControllers": "rancher/mirrored-calico-kube-controllers:v3.29.3", + "canalFlannel": "rancher/mirrored-flannel-flannel:v0.26.4", + "canalFlexVol": "rancher/mirrored-calico-pod2daemon-flexvol:v3.29.3", + "podInfraContainer": "rancher/mirrored-pause:3.7", + "ingress": "rancher/nginx-ingress-controller:nginx-1.12.1-rancher3", + "ingressBackend": "rancher/mirrored-nginx-ingress-controller-defaultbackend:1.5-rancher2", + "ingressWebhook": "rancher/mirrored-ingress-nginx-kube-webhook-certgen:v1.5.2", + "metricsServer": "rancher/mirrored-metrics-server:v0.7.2", + "windowsPodInfraContainer": "rancher/mirrored-pause:3.7", + "aciCniDeployContainer": "noiro/cnideploy:6.1.1.4.81c2369", + "aciHostContainer": "noiro/aci-containers-host:6.1.1.4.81c2369", + "aciOpflexContainer": "noiro/opflex:6.1.1.4.81c2369", + "aciMcastContainer": "noiro/opflex:6.1.1.4.81c2369", + "aciOvsContainer": "noiro/openvswitch:6.1.1.4.81c2369", + "aciControllerContainer": "noiro/aci-containers-controller:6.1.1.4.81c2369" + }, "v1.8.11-rancher2-1": { "etcd": "rancher/coreos-etcd:v3.0.17", "alpine": "rancher/rke-tools:v0.1.8", diff --git a/pkg/images/images.go b/pkg/images/images.go index 092b086c0..6492358c7 100644 --- a/pkg/images/images.go +++ b/pkg/images/images.go @@ -145,6 +145,10 @@ func getImages(distro string, versions []interface{}) (all []string, err error) if strings.HasPrefix(image, "weaveworks") || strings.HasPrefix(image, "noiro") { continue } + // skip post EOL images + if strings.HasPrefix(image, "rancher/rke-extended-life") { + continue + } // all images should be prefixed by "rancher" if !strings.HasPrefix(converted, "rancher") { return nil, fmt.Errorf("RKE system image %s does not start with rancher", converted) diff --git a/pkg/rke/k8s_defaults.go b/pkg/rke/k8s_defaults.go index 663cc5ef0..00e152831 100644 --- a/pkg/rke/k8s_defaults.go +++ b/pkg/rke/k8s_defaults.go @@ -33,10 +33,30 @@ func initData() { RKE2: map[string]interface{}{}, } + postEOLVersionsRange := []semver.Range{ + semver.MustParseRange(">= 1.32.5-rancher2-1 <1.32.6-rancher1-1"), + } + for version, images := range DriverData.K8sVersionRKESystemImages { - longName := "rancher/hyperkube:" + version - if !strings.HasPrefix(longName, images.Kubernetes) { - panic(fmt.Sprintf("For K8s version %s, the Kubernetes image tag should be a substring of %s, currently it is %s", version, version, images.Kubernetes)) + k8sVersion, _ := semver.Parse(version[1:]) + var isPostEOLVersion bool + for _, postEOLVersion := range postEOLVersionsRange { + if postEOLVersion(k8sVersion) { + isPostEOLVersion = true + break + } + } + + if isPostEOLVersion { + postEOLImage := "rancher/rke-extended-life/hyperkube:" + version + if !strings.HasPrefix(postEOLImage, images.Kubernetes) { + panic(fmt.Sprintf("For K8s version %s, the Kubernetes image tag should be a substring of %s, currently it is %s", version, postEOLImage, images.Kubernetes)) + } + } else { + longName := "rancher/hyperkube:" + version + if !strings.HasPrefix(longName, images.Kubernetes) { + panic(fmt.Sprintf("For K8s version %s, the Kubernetes image tag should be a substring of %s, currently it is %s", version, version, images.Kubernetes)) + } } } diff --git a/pkg/rke/k8s_rke_system_images.go b/pkg/rke/k8s_rke_system_images.go index 438513116..ea4543b84 100644 --- a/pkg/rke/k8s_rke_system_images.go +++ b/pkg/rke/k8s_rke_system_images.go @@ -12152,6 +12152,46 @@ func loadK8sRKESystemImages() map[string]v3.RKESystemImages { WindowsPodInfraContainer: "rancher/mirrored-pause:3.7", Nodelocal: "rancher/mirrored-k8s-dns-node-cache:1.23.0", }, + // Out of band post Rancher v2.11.3 + "v1.32.5-rancher2-1": { + Etcd: "rancher/mirrored-coreos-etcd:v3.5.16", + Kubernetes: "rancher/rke-extended-life/hyperkube:v1.32.5-rancher2", + Alpine: "rancher/rke-tools:v0.1.113", + NginxProxy: "rancher/rke-tools:v0.1.113", + CertDownloader: "rancher/rke-tools:v0.1.113", + KubernetesServicesSidecar: "rancher/rke-tools:v0.1.113", + KubeDNS: "rancher/mirrored-k8s-dns-kube-dns:1.23.0", + DNSmasq: "rancher/mirrored-k8s-dns-dnsmasq-nanny:1.23.0", + KubeDNSSidecar: "rancher/mirrored-k8s-dns-sidecar:1.23.0", + KubeDNSAutoscaler: "rancher/mirrored-cluster-proportional-autoscaler:v1.9.0", + Flannel: "rancher/mirrored-flannel-flannel:v0.26.4", + FlannelCNI: "rancher/flannel-cni:v1.4.1-rancher1", + CalicoNode: "rancher/mirrored-calico-node:v3.29.3", + CalicoCNI: "rancher/calico-cni:v3.29.3-rancher1", + CalicoControllers: "rancher/mirrored-calico-kube-controllers:v3.29.3", + CalicoCtl: "rancher/mirrored-calico-ctl:v3.29.3", + CalicoFlexVol: "rancher/mirrored-calico-pod2daemon-flexvol:v3.29.3", + CanalNode: "rancher/mirrored-calico-node:v3.29.3", + CanalCNI: "rancher/calico-cni:v3.29.3-rancher1", + CanalControllers: "rancher/mirrored-calico-kube-controllers:v3.29.3", + CanalFlannel: "rancher/mirrored-flannel-flannel:v0.26.4", + CanalFlexVol: "rancher/mirrored-calico-pod2daemon-flexvol:v3.29.3", + AciCniDeployContainer: "noiro/cnideploy:6.1.1.4.81c2369", + AciHostContainer: "noiro/aci-containers-host:6.1.1.4.81c2369", + AciOpflexContainer: "noiro/opflex:6.1.1.4.81c2369", + AciMcastContainer: "noiro/opflex:6.1.1.4.81c2369", + AciOpenvSwitchContainer: "noiro/openvswitch:6.1.1.4.81c2369", + AciControllerContainer: "noiro/aci-containers-controller:6.1.1.4.81c2369", + PodInfraContainer: "rancher/mirrored-pause:3.7", + Ingress: "rancher/nginx-ingress-controller:nginx-1.12.1-rancher3", + IngressBackend: "rancher/mirrored-nginx-ingress-controller-defaultbackend:1.5-rancher2", + IngressWebhook: "rancher/mirrored-ingress-nginx-kube-webhook-certgen:v1.5.2", + MetricsServer: "rancher/mirrored-metrics-server:v0.7.2", + CoreDNS: "rancher/mirrored-coredns-coredns:1.11.3", + CoreDNSAutoscaler: "rancher/mirrored-cluster-proportional-autoscaler:v1.9.0", + WindowsPodInfraContainer: "rancher/mirrored-pause:3.7", + Nodelocal: "rancher/mirrored-k8s-dns-node-cache:1.23.0", + }, // k8s version from 2.1.x release with old rke-tools to allow upgrade from 2.1.x clusters // without all clusters being restarted "v1.11.9-rancher1-3": { From 711b4cfe6222850fea891557cb8e283c06dbafab Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Tue, 15 Jul 2025 12:04:44 -0700 Subject: [PATCH 2/2] rke-extended-life/ --- data/data.json | 2 +- pkg/images/images.go | 2 +- pkg/rke/k8s_defaults.go | 2 +- pkg/rke/k8s_rke_system_images.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/data.json b/data/data.json index 1d2b58d27..0df879d3a 100644 --- a/data/data.json +++ b/data/data.json @@ -15343,7 +15343,7 @@ "coredns": "rancher/mirrored-coredns-coredns:1.11.3", "corednsAutoscaler": "rancher/mirrored-cluster-proportional-autoscaler:v1.9.0", "nodelocal": "rancher/mirrored-k8s-dns-node-cache:1.23.0", - "kubernetes": "rancher/rke-extended-life/hyperkube:v1.32.5-rancher2", + "kubernetes": "rke-extended-life/hyperkube:v1.32.5-rancher2", "flannel": "rancher/mirrored-flannel-flannel:v0.26.4", "flannelCni": "rancher/flannel-cni:v1.4.1-rancher1", "calicoNode": "rancher/mirrored-calico-node:v3.29.3", diff --git a/pkg/images/images.go b/pkg/images/images.go index 6492358c7..f5050732a 100644 --- a/pkg/images/images.go +++ b/pkg/images/images.go @@ -146,7 +146,7 @@ func getImages(distro string, versions []interface{}) (all []string, err error) continue } // skip post EOL images - if strings.HasPrefix(image, "rancher/rke-extended-life") { + if strings.HasPrefix(image, "rke-extended-life") { continue } // all images should be prefixed by "rancher" diff --git a/pkg/rke/k8s_defaults.go b/pkg/rke/k8s_defaults.go index 00e152831..fe1c81ffc 100644 --- a/pkg/rke/k8s_defaults.go +++ b/pkg/rke/k8s_defaults.go @@ -48,7 +48,7 @@ func initData() { } if isPostEOLVersion { - postEOLImage := "rancher/rke-extended-life/hyperkube:" + version + postEOLImage := "rke-extended-life/hyperkube:" + version if !strings.HasPrefix(postEOLImage, images.Kubernetes) { panic(fmt.Sprintf("For K8s version %s, the Kubernetes image tag should be a substring of %s, currently it is %s", version, postEOLImage, images.Kubernetes)) } diff --git a/pkg/rke/k8s_rke_system_images.go b/pkg/rke/k8s_rke_system_images.go index ea4543b84..db50764df 100644 --- a/pkg/rke/k8s_rke_system_images.go +++ b/pkg/rke/k8s_rke_system_images.go @@ -12155,7 +12155,7 @@ func loadK8sRKESystemImages() map[string]v3.RKESystemImages { // Out of band post Rancher v2.11.3 "v1.32.5-rancher2-1": { Etcd: "rancher/mirrored-coreos-etcd:v3.5.16", - Kubernetes: "rancher/rke-extended-life/hyperkube:v1.32.5-rancher2", + Kubernetes: "rke-extended-life/hyperkube:v1.32.5-rancher2", Alpine: "rancher/rke-tools:v0.1.113", NginxProxy: "rancher/rke-tools:v0.1.113", CertDownloader: "rancher/rke-tools:v0.1.113",