From 0000010e89bbeb6afa921cfdd9148b317775c2f1 Mon Sep 17 00:00:00 2001 From: Luka Petrovic Date: Fri, 10 Jan 2025 15:52:26 +0100 Subject: [PATCH 1/3] Add option to pass kubelet config --- defaults/main.yml | 6 ++++++ tasks/first_server.yml | 10 ++++++++++ tasks/main.yml | 2 -- tasks/remaining_nodes.yml | 14 +++++++++++--- tasks/standalone.yml | 10 ++++++++++ templates/kubelet-config.yaml.j2 | 4 ++++ 6 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 templates/kubelet-config.yaml.j2 diff --git a/defaults/main.yml b/defaults/main.yml index 9b5272e..3da3a76 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -308,3 +308,9 @@ rke2_service_cidr: # Enable SELinux for rke2 rke2_selinux: false + +# (Optional) Customize kubelet config using KubeletConfiguration - https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/ +# rke2_kubelet_config: +# imageGCHighThresholdPercent: 80 +# imageGCLowThresholdPercent: 70 +rke2_kubelet_config: {} diff --git a/tasks/first_server.yml b/tasks/first_server.yml index 913e505..d65efad 100644 --- a/tasks/first_server.yml +++ b/tasks/first_server.yml @@ -21,6 +21,16 @@ mode: 0600 notify: "Config file changed" +- name: Copy kubelet config + ansible.builtin.template: + src: templates/kubelet-config.yaml.j2 + dest: /etc/rancher/rke2/kubelet-config.yaml + owner: root + group: root + mode: 0600 + when: rke2_kubelet_config | length > 0 + notify: "Config file changed" + - name: Copy Containerd Registry Configuration file ansible.builtin.template: src: "{{ rke2_custom_registry_path }}" diff --git a/tasks/main.yml b/tasks/main.yml index ecb0ae5..c63a1d7 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,4 @@ --- - - name: Install Keepalived when HA mode is enabled ansible.builtin.include_tasks: keepalived.yml when: @@ -31,7 +30,6 @@ - rke2_ha_mode_kubevip | bool - not rke2_ha_mode_keepalived | bool - - name: Copy kube-vip manifests to the masternode ansible.builtin.include_tasks: kubevip.yml when: diff --git a/tasks/remaining_nodes.yml b/tasks/remaining_nodes.yml index 310a259..e6cc0a7 100644 --- a/tasks/remaining_nodes.yml +++ b/tasks/remaining_nodes.yml @@ -1,5 +1,4 @@ --- - - name: Create the RKE2 config dir ansible.builtin.file: state: directory @@ -27,6 +26,16 @@ mode: 0600 notify: "Config file changed" +- name: Copy kubelet config + ansible.builtin.template: + src: templates/kubelet-config.yaml.j2 + dest: /etc/rancher/rke2/kubelet-config.yaml + owner: root + group: root + mode: 0600 + when: rke2_kubelet_config | length > 0 + notify: "Config file changed" + - name: Copy Containerd Registry Configuration file ansible.builtin.template: src: "{{ rke2_custom_registry_path }}" @@ -85,8 +94,7 @@ executable: /bin/bash changed_when: false register: all_ready_nodes - until: - "groups[rke2_cluster_group_name] | length == all_ready_nodes.stdout | int" + until: "groups[rke2_cluster_group_name] | length == all_ready_nodes.stdout | int" retries: 100 delay: 15 when: diff --git a/tasks/standalone.yml b/tasks/standalone.yml index 7b60d1a..1f66a5f 100644 --- a/tasks/standalone.yml +++ b/tasks/standalone.yml @@ -17,6 +17,16 @@ mode: 0600 notify: "Config file changed" +- name: Copy kubelet config + ansible.builtin.template: + src: templates/kubelet-config.yaml.j2 + dest: /etc/rancher/rke2/kubelet-config.yaml + owner: root + group: root + mode: 0600 + when: rke2_kubelet_config | length > 0 + notify: "Config file changed" + - name: Copy Containerd Registry Configuration file ansible.builtin.template: src: "{{ rke2_custom_registry_path }}" diff --git a/templates/kubelet-config.yaml.j2 b/templates/kubelet-config.yaml.j2 new file mode 100644 index 0000000..088acbe --- /dev/null +++ b/templates/kubelet-config.yaml.j2 @@ -0,0 +1,4 @@ +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +{{ rke2_kubelet_config | to_nice_yaml(indent=2) }} From 162e943d0713c3b1f0e5a7c2b2e8e4eeef6d6ad1 Mon Sep 17 00:00:00 2001 From: Luka Petrovic Date: Fri, 10 Jan 2025 15:58:02 +0100 Subject: [PATCH 2/3] Add variable description --- README.md | 9 +++++++++ defaults/main.yml | 3 +++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 520146e..82d7d19 100644 --- a/README.md +++ b/README.md @@ -346,6 +346,15 @@ rke2_service_cidr: # Enable SELinux for rke2 rke2_selinux: false + +# (Optional) Customize kubelet config using KubeletConfiguration - https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/ +# rke2_kubelet_config: +# imageGCHighThresholdPercent: 80 +# imageGCLowThresholdPercent: 70 +# Note that you also need to add the following to kubelet args: +# rke2_kubelet_arg: +# - "--config=/etc/rancher/rke2/kubelet-config.yaml" +rke2_kubelet_config: {} ``` ## Inventory file example diff --git a/defaults/main.yml b/defaults/main.yml index 3da3a76..684d536 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -313,4 +313,7 @@ rke2_selinux: false # rke2_kubelet_config: # imageGCHighThresholdPercent: 80 # imageGCLowThresholdPercent: 70 +# Note that you also need to add the following to kubelet args: +# rke2_kubelet_arg: +# - "--config=/etc/rancher/rke2/kubelet-config.yaml" rke2_kubelet_config: {} From e78e62f30f4475278c52a658d53d24ea91173ecd Mon Sep 17 00:00:00 2001 From: Luka Petrovic Date: Wed, 29 Jan 2025 10:03:38 +0100 Subject: [PATCH 3/3] Rearrange README and defaults --- README.md | 17 +++++++++-------- defaults/main.yml | 18 +++++++++--------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 82d7d19..0df9ff9 100644 --- a/README.md +++ b/README.md @@ -325,6 +325,15 @@ rke2_wait_for_all_pods_to_be_ready: false # Enable debug mode (rke2-service) rke2_debug: false +# (Optional) Customize kubelet config using KubeletConfiguration - https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/ +# rke2_kubelet_config: +# imageGCHighThresholdPercent: 80 +# imageGCLowThresholdPercent: 70 +# Note that you also need to add the following to kubelet args: +# rke2_kubelet_arg: +# - "--config=/etc/rancher/rke2/kubelet-config.yaml" +rke2_kubelet_config: {} + # (Optional) Customize default kubelet arguments # rke2_kubelet_arg: # - "--system-reserved=cpu=100m,memory=100Mi" @@ -347,14 +356,6 @@ rke2_service_cidr: # Enable SELinux for rke2 rke2_selinux: false -# (Optional) Customize kubelet config using KubeletConfiguration - https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/ -# rke2_kubelet_config: -# imageGCHighThresholdPercent: 80 -# imageGCLowThresholdPercent: 70 -# Note that you also need to add the following to kubelet args: -# rke2_kubelet_arg: -# - "--config=/etc/rancher/rke2/kubelet-config.yaml" -rke2_kubelet_config: {} ``` ## Inventory file example diff --git a/defaults/main.yml b/defaults/main.yml index 684d536..637c24d 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -287,6 +287,15 @@ rke2_wait_for_all_pods_to_be_ready: false # Enable debug mode (rke2-service) rke2_debug: false +# (Optional) Customize kubelet config using KubeletConfiguration - https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/ +# rke2_kubelet_config: +# imageGCHighThresholdPercent: 80 +# imageGCLowThresholdPercent: 70 +# Note that you also need to add the following to kubelet args: +# rke2_kubelet_arg: +# - "--config=/etc/rancher/rke2/kubelet-config.yaml" +rke2_kubelet_config: {} + # (Optional) Customize default kubelet arguments # rke2_kubelet_arg: # - "--system-reserved=cpu=100m,memory=100Mi" @@ -308,12 +317,3 @@ rke2_service_cidr: # Enable SELinux for rke2 rke2_selinux: false - -# (Optional) Customize kubelet config using KubeletConfiguration - https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/ -# rke2_kubelet_config: -# imageGCHighThresholdPercent: 80 -# imageGCLowThresholdPercent: 70 -# Note that you also need to add the following to kubelet args: -# rke2_kubelet_arg: -# - "--config=/etc/rancher/rke2/kubelet-config.yaml" -rke2_kubelet_config: {}