feat: Add RKE2 as alternative Kubernetes distribution for service cluster#4566
Open
j0hnL wants to merge 1 commit into
Open
feat: Add RKE2 as alternative Kubernetes distribution for service cluster#4566j0hnL wants to merge 1 commit into
j0hnL wants to merge 1 commit into
Conversation
f513dc2 to
11db64e
Compare
0759230 to
b4bff18
Compare
…ster Add support for deploying RKE2 (Rancher Kubernetes Engine 2) as an alternative to vanilla Kubernetes (kubeadm) for the service cluster. Users can choose the distribution via the new k8s_distro field in omnia_config.yml. Configuration changes: - Add k8s_distro field to service_k8s_cluster in omnia_config.yml (default: kubeadm) - Update omnia_config.json schema to validate k8s_distro enum (kubeadm/rke2) - Expand k8s_cni enum to include canal, cilium (RKE2-supported CNIs) Pipeline integration: - discovery.yml: Enable service_k8s tag when service_rke2 is in software_config.json - include_software_config.yml: Detect service_rke2 and set service_rke2_support fact - validate_software_config_json.yml: Handle service_rke2 arch and version detection - common_validation.py: Accept service_rke2 for cluster validation - image_package_collector.py: Dynamically select service_rke2.json for image builds - k8s_config/main.yml: Branch NFS setup based on k8s_distro - configure_cloud_init_group.yml: Select RKE2-specific templates when k8s_distro=rke2 New files: - 3 RKE2 cloud-init templates (first server, additional server, agent) - create_rke2_config_nfs.yml for RKE2-specific NFS directory setup - service_rke2.json package definitions for RHEL 10.0 x86_64 Key differences from kubeadm path: - RKE2 uses built-in containerd (no CRI-O) - RKE2 manages CNI lifecycle (calico/canal/cilium/flannel) - Token-based cluster join instead of kubeadm certificates - kube-vip deployed as RKE2 static pod manifest - RKE2 registries.yaml for Pulp mirror integration - Port 9345 for RKE2 supervisor API Existing kubeadm deployment is completely unaffected when k8s_distro=kubeadm (default). Signed-off-by: John Lockman <j.lockman@dell.com>
b4bff18 to
ea1db21
Compare
sujit-jadhav
approved these changes
May 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add support for deploying RKE2 (Rancher Kubernetes Engine 2) as an alternative to vanilla Kubernetes (kubeadm) for the service cluster. Users can choose the distribution via the new
k8s_distrofield inomnia_config.yml.How to use
input/omnia_config.yml, setk8s_distro: "rke2"in theservice_k8s_clusterblockinput/software_config.json, replaceservice_k8swithservice_rke2in the softwares listlocal_repo.yml→build_image_x86_64.yml→discovery.yml)Configuration changes
k8s_distrofield toservice_k8s_clusterinomnia_config.yml(default:kubeadm)omnia_config.jsonschema to validatek8s_distroenum (kubeadm/rke2)k8s_cnienum to include canal, cilium, flannel (RKE2-supported CNIs)Pipeline integration
discovery.yml: Enableservice_k8stag whenservice_rke2is insoftware_config.jsoninclude_software_config.yml: Detectservice_rke2and setservice_rke2_supportfactvalidate_software_config_json.yml: Handleservice_rke2arch and version detectioncommon_validation.py: Acceptservice_rke2for cluster validationimage_package_collector.py: Dynamically selectservice_rke2.jsonfor image buildsk8s_config/main.yml: Branch NFS setup based onk8s_distroconfigure_cloud_init_group.yml: Select RKE2-specific templates whenk8s_distro=rke2New files
create_rke2_config_nfs.ymlfor RKE2-specific NFS directory setupservice_rke2.jsonpackage definitions for RHEL 10.0 x86_64Key differences from kubeadm path
registries.yamlfor Pulp mirror integrationBackward compatibility
Existing kubeadm deployment is completely unaffected when
k8s_distro=kubeadm(the default). All branching logic only activates forrke2.