Skip to content

Commit 8a51fbe

Browse files
committed
Add playbook to set SMT on worker nodes
1 parent 2fdcb58 commit 8a51fbe

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

kubetest2-tf/data/k8s-ansible/group_vars/all

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ update_os_packages: false
1616
# kubeconfig on the local machine where kubeconfig content will be copied from the remote machine
1717
kubeconfig_path: kubeconfig
1818

19+
##### Node level SMT settings #####
20+
smt_config:
21+
workers: 4
22+
masters: 8
23+
1924
##### Runtime Configurations #####
2025
# cri-tools version
2126
critools_version: 1.29.0

kubetest2-tf/data/k8s-ansible/install-k8s-ha.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@
2222
- download-k8s
2323
- install-k8s
2424

25+
- name: Set desired SMT levels on nodes
26+
hosts:
27+
- masters
28+
- workers
29+
tasks:
30+
- name: Apply SMT configuration
31+
include_role:
32+
name: set-smt
33+
vars:
34+
smt_level: "{{ item.value }}"
35+
loop: "{{ smt_config | dict2items }}"
36+
2537
- name: Install networking - calico
2638
hosts: masters
2739
roles:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
- name: Resolve Kubernetes node name from inventory IP
2+
shell: |
3+
kubectl get nodes -o jsonpath="{range .items[*]}{.metadata.name} {.status.addresses[?(@.type=='InternalIP')].address}{'\n'}{end}" \
4+
--kubeconfig {{ kubeconfig_path }} | grep {{ inventory_hostname }} | awk '{print $1}'
5+
register: node_name
6+
delegate_to: "{{ groups['masters'][0] }}"
7+
8+
- name: Add SMT level label to node
9+
shell: |
10+
kubectl label node/{{ node_name.stdout }} feature.node.kubernetes.io/ppc64le.smtlevel="{{ smt_level }}" --overwrite
11+
delegate_to: "{{ groups['masters'][0] }}"
12+
when: inventory_hostname in groups[item.key]
13+
14+
- name: Set SMT level
15+
shell: ppc64_cpu --smt={{ smt_level }}
16+
when: inventory_hostname in groups[item.key]
17+
18+
- name: Restart kubelet to update the node's capacity at the cluster level
19+
shell: systemctl restart kubelet
20+
when: inventory_hostname in groups[item.key]

0 commit comments

Comments
 (0)