{"id":18363419,"url":"https://github.com/stuttgart-things/deploy-configure-rke","last_synced_at":"2025-10-04T15:24:06.707Z","repository":{"id":162914940,"uuid":"638173866","full_name":"stuttgart-things/deploy-configure-rke","owner":"stuttgart-things","description":"deploy rancher kubernetes engine + configuration in version 1/2 on linux based systems","archived":false,"fork":false,"pushed_at":"2024-10-23T14:53:50.000Z","size":218,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-10-23T18:09:17.853Z","etag":null,"topics":["ansible","containerd","kubernetes","linux","rancher","rke","rke2"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stuttgart-things.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-09T08:33:08.000Z","updated_at":"2024-10-23T14:54:02.000Z","dependencies_parsed_at":"2024-04-18T20:50:29.536Z","dependency_job_id":"a7bbf4df-0f7d-4c21-9cd5-570fc09dc0f5","html_url":"https://github.com/stuttgart-things/deploy-configure-rke","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fdeploy-configure-rke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fdeploy-configure-rke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fdeploy-configure-rke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fdeploy-configure-rke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stuttgart-things","download_url":"https://codeload.github.com/stuttgart-things/deploy-configure-rke/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247502793,"owners_count":20949332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","containerd","kubernetes","linux","rancher","rke","rke2"],"created_at":"2024-11-05T23:06:27.316Z","updated_at":"2025-10-04T15:24:06.699Z","avatar_url":"https://github.com/stuttgart-things.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stuttgart-things/deploy-upgrade-rke\n\ndeploy rancher kubernetes engine  2 + configuration\n\n## DEV\n\n\u003cdetails\u003e\u003csummary\u003eTASKS\u003c/summary\u003e\n\n```bash\ntask: Available tasks for this project:\n* branch:           Create branch from main\n* commit:           Commit + push code into branch\n* pr:               Create pull request into main\n* setup-venv:       Setup python virtual environment\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eTEST w/ MOLECULE\u003c/summary\u003e\n\n```bash\n# UPDATE INVENTORY + PLATFORMS NAME\ntask setup-venv\nsource ./.venv/bin/activate\ntask setup-molecule\nscenario=rke2 task run-molecule\n# scenario=k3s task run-molecule\n```\n\n\u003c/details\u003e\n\n\n## USAGE OPTION #1 - USING THE COLLECTION\n\n### COLLECTION INSTALLATION\n\n[CHECK RELEASES](https://github.com/stuttgart-things/deploy-configure-rke/releases)\n\n```bash\n# EXAMPLE COLLECTION RELEASE\nVERSION=1.29.4\nansible-galaxy collection install -f \\\nhttps://github.com/stuttgart-things/deploy-configure-rke/releases/download/${VERSION}/sthings-deploy_rke-${VERSION}.tar.gz\n```\n\n\u003cdetails\u003e\u003csummary\u003eINSTALL SINGLE-NODE CLUSTER\u003c/summary\u003e\n\n```bash\n# CREATE INVENTORY\ncat \u003c\u003cEOF \u003e rke2.yaml\n---\ninitial_master_node:\n  hosts:\n    10.100.136.150\nadditional_master_nodes:\nEOF\n\n# PLAYBOOK CALL\nCLUSTER_NAME=rke2\nmkdir ~/.kube/\n\nansible-playbook sthings.deploy_rke.rke2 \\\n-i rke2.yaml -vv \\\n-e rke2_fetched_kubeconfig_path=~/.kube/${CLUSTER_NAME} \\\n-e cluster_setup=singlenode \\\n-vv\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eINSTALL MULTI-NODE CLUSTER\u003c/summary\u003e\n\n```bash\n# CREATE INVENTORY\ncat \u003c\u003cEOF \u003e rke2.yaml\ninitial_master_node:\n  hosts:\n    10.100.136.150\nadditional_master_nodes:\n  hosts:\n    10.100.136.151\n    10.100.136.152\nEOF\n\n# PLAYBOOK CALL\nCLUSTER_NAME=rke2\nmkdir ~/.kube/${CLUSTER_NAME}\n\nansible-playbook sthings.deploy_rke.rke2 \\\n-i rke2.yaml -vv \\\n-e rke2_fetched_kubeconfig_path=~/.kube/${CLUSTER_NAME} \\\n-e cluster_setup=multinode \\\n-vv\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eUNINSTALL\u003c/summary\u003e\n\n```bash\n# CREATE INVENTORY\ncat \u003c\u003cEOF \u003e rke2.yaml\ninitial_master_node:\n  hosts:\n    10.100.136.150\nadditional_master_nodes:\n  hosts:\n    10.100.136.151\n    10.100.136.152\nEOF\n\n# PLAYBOOK CALL\nCLUSTER_NAME=rke2\nmkdir ~/.kube/${CLUSTER_NAME}\n\nansible-playbook sthings.deploy_rke.rke2 \\\n-i rke2.yaml -vv \\\n-e rke2_fetched_kubeconfig_path=~/.kube/${CLUSTER_NAME} \\\n-e cluster_setup=multinode \\\n-e rke_state: absent \\\n-vv\n```\n\n\u003c/details\u003e\n\n\n## USAGE OPTION #2 - USING STANDALONE ROLES + COLLECTIONS\u003c/summary\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eINSTALL REQUIREMENTS\u003c/summary\u003e\n\n```\ncat \u003c\u003cEOF \u003e ./requirements.yaml\nroles:\n- src: https://github.com/stuttgart-things/deploy-configure-rke.git\n  scm: git\n- src: https://github.com/stuttgart-things/configure-rke-node.git\n  scm: git\n- src: https://github.com/stuttgart-things/install-requirements.git\n  scm: git\n- src: https://github.com/stuttgart-things/install-configure-docker.git\n  scm: git\n- src: https://github.com/stuttgart-things/create-os-user.git\n  scm: git\n- src: https://github.com/stuttgart-things/download-install-binary.git\n  scm: git\n\ncollections:\n- name: community.crypto\n  version: 2.15.1\n- name: community.general\n  version: 7.3.0\n- name: ansible.posix\n  version: 1.5.2\n- name: kubernetes.core\n  version: 2.4.0\nEOF\n\nansible-galaxy install -r ./requirements.yaml -f\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eEXAMPLE INVENTORY\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e ./inv\n# MULTINODE-CLUSTER\n[initial_master_node]\n{{ .fqdn }} ansible_ssh_common_args='-o StrictHostKeyChecking=no'\n[additional_master_nodes]\n{{ .fqdn }} ansible_ssh_common_args='-o StrictHostKeyChecking=no'\n{{ .fqdn }} ansible_ssh_common_args='-o StrictHostKeyChecking=no'\n\n# SINGLENODE-CLUSTER\n[initial_master_node]\n{{ .fqdn }} ansible_ssh_common_args='-o StrictHostKeyChecking=no'\n[additional_master_nodes]\nEOF\n```\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eEXAMPLE RKE2 PLAYBOOK\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e inventory.yaml\n---\nall:\n  vars:\n    ansible_ssh_common_args: \"-o StrictHostKeyChecking=no\"\n  children:\n    initial_master_node:\n      hosts:\n        10.31.103.33:\n    additional_master_nodes:\n      hosts:\n        10.31.103.28:\n        10.31.103.35:\n    workers:\n      hosts:\n        10.31.103.29:\nEOF\n```\n\n\n```bash\ncat \u003c\u003cEOF \u003e ./play.yaml\n---\n- name: Converge\n  hosts: all\n  gather_facts: true\n  become: true\n\n  vars:\n    rke_state: present #absent\n    rke_version: 2\n    rke2_k8s_version: 1.33.4\n    prepare_rancher_ha_nodes: true #false\n    rke2_airgapped_installation: true\n    rke2_release_kind: rke2r1 # rke2r2\n    cluster_setup: multinode\n    disableKubeProxy: true\n    disable_rke2_components:\n      - rke2-ingress-nginx\n      - rke2-snapshot-controller\n      - rke2-snapshot-controller-crd\n      - rke2-snapshot-validation-webhook\n      #- rke2-metrics-server\n    rke2_cni: none\n    install_cilium: true\n\n    fetched_kubeconfig_path: rke2-cluster.yaml\n    rke2_registry_mirrors:\n      - name: \"docker.io\"\n        endpoints:\n          #- \"https://docker.harbor.example.com\"\n          - \"https://registry-1.docker.io\"\n\n    manifests:\n      lb_pool:\n        manifest: |\n          apiVersion: cilium.io/v2alpha1\n          kind: CiliumLoadBalancerIPPool\n          metadata:\n            name: first-pool\n          spec:\n            blocks:\n              - start: 10.100.136.227\n                stop: 10.100.136.228\n\n      announcement_policy:\n        manifest: |\n          ---\n          apiVersion: cilium.io/v2alpha1\n          kind: CiliumL2AnnouncementPolicy\n          metadata:\n            name: default-l2-announcement-policy\n            namespace: kube-system\n          spec:\n            externalIPs: true\n            loadBalancerIPs: true\n\n  roles:\n    - role: deploy-configure-rke\nEOF\n\nansible-playbook -i inv play.yaml -vv\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eEXAMPLE RKE2 + CUSTOM CONTAINERD + PROXY PLAYBOOK\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e ./play.yaml\n- hosts: all\n  become: true\n  vars:\n    containerdRootPath: /net/rngvm00556/fs0\n    rke_version: 2\n    rke2_airgapped_installation: true\n    rke2_k8s_version: 1.26.0\n    rke2_release_kind: rke2r2 #rke2r1\n    cluster_setup: singlenode\n    rke2_airgapped_installation: false\n    enable_ingress_controller: false\n    install_containerd: true\n    rke2_configure_proxy: true\n    rke2_proxy_config: |\n      HOME=/root\n      export HTTP_PROXY=\"http://127.0.0.1:3128\"\n      # export..\n    containerd_proxy_config: |\n      Environment=\"HTTP_PROXY=http://127.0.0.1:3128/\"\n      Environment=\"HTTPS_PROXY=http://127.0.0.1:3128/\"\n      # Environment..\n  roles:\n    - role: deploy-configure-rke\nEOF\n\nansible-playbook -i inv play.yaml -vv\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eEXAMPLE K3S PLAYBOOK\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e ./play.yaml\n- hosts: all\n  become: true\n\n  vars:\n    install_k3s: true\n    k3s_state: present #absent\n    k3s_k8s_version: 1.31.1\n    k3s_release_kind: k3s1\n    cluster_setup: singlenode\n    install_cillium: true\n\n  roles:\n    - role: deploy-configure-rke\nEOF\n\nansible-playbook -i inv play.yaml -vv\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eEXAMPLE K3S PLAYBOOK w/ ADDONS\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e ./play.yaml\n- hosts: all\n  gather_facts: true\n  become: true\n\n  vars:\n    install_k3s: true\n    k3s_state: present #absent\n    k3s_k8s_version: 1.31.1\n    k3s_release_kind: k3s1\n    cluster_setup: singlenode\n    install_cillium: true\n    deploy_helm_charts: true\n    helm_repositories:\n      ingress-nginx:\n        url: https://kubernetes.github.io/ingress-nginx\n      cert-manager:\n        url: https://charts.jetstack.io\n\n    helm_releases:\n      ingress-nginx:\n        ref: ingress-nginx/ingress-nginx\n        version: 4.11.3\n        namespace: ingress-nginx\n        ignore: false\n        wait: true\n        helm_values: |\n          controller:\n            hostNetwork: true\n            service:\n              type: ClusterIP\n\n      cert-manager:\n        ref: cert-manager/cert-manager\n        version: v1.16.1\n        namespace: cert-manager\n        ignore: false\n        wait: true\n        helm_values: |\n          crds:\n            enabled: true\n\n    additional_helm_manifests:\n      cluster_issuer:\n        manifest: |\n          apiVersion: cert-manager.io/v1\n          kind: ClusterIssuer\n          metadata:\n            name: ca-issuer\n          spec:\n            ca:\n              secretName: root-ca\n\n  roles:\n    - role: deploy-configure-rke\nEOF\n\nansible-playbook -i inv play.yaml -vv\n```\n\n\u003c/details\u003e\n\n\n\n\n\n\u003cdetails\u003e\u003csummary\u003eEXAMPLE EXECUTION\u003c/summary\u003e\n\n```bash\nansible-playbook -i rke2 play.yaml -vv\n```\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n\nAuthor Information\n------------------\n```\nPatrick Hermann, stuttgart-things 05/2023\nChristian Mueller, stuttgart-things 05/2023\n```\n\n## License\n\u003cdetails\u003e\u003csummary\u003eLICENSE\u003c/summary\u003e\n\nCopyright 2020 patrick hermann.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuttgart-things%2Fdeploy-configure-rke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstuttgart-things%2Fdeploy-configure-rke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuttgart-things%2Fdeploy-configure-rke/lists"}