Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion kubetest2-tf/data/k8s-ansible/group_vars/masters
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
node_type: master
node_type: master
smt_level: 8
3 changes: 2 additions & 1 deletion kubetest2-tf/data/k8s-ansible/group_vars/workers
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
node_type: worker
node_type: worker
smt_level: 4
7 changes: 7 additions & 0 deletions kubetest2-tf/data/k8s-ansible/install-k8s-ha.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@
- download-k8s
- install-k8s

- name: Set desired SMT levels on nodes
hosts:
- masters
- workers
roles:
- set-smt

- name: Install networking - calico
hosts: masters
roles:
Expand Down
11 changes: 9 additions & 2 deletions kubetest2-tf/data/k8s-ansible/patch-nodes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
- masters
- workers
roles:
- role: update-node-os
- update-node-os

- name: Reboot Kubernetes nodes one-by-one
hosts:
Expand All @@ -12,4 +12,11 @@
serial: 1
become: yes
roles:
- role: reboot-sequentially
- reboot-sequentially

- name: Set desired SMT levels on nodes
Copy link
Contributor Author

@kishen-v kishen-v Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Necessary to set the SMT levels while patching, as the previous SMT configurations do not persist on a node restart.

hosts:
- masters
- workers
roles:
- set-smt
17 changes: 17 additions & 0 deletions kubetest2-tf/data/k8s-ansible/roles/set-smt/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
- name: Resolve Kubernetes node name from inventory IP
shell: |
kubectl get nodes -o jsonpath="{range .items[*]}{.metadata.name} {.status.addresses[?(@.type=='InternalIP')].address}{'\n'}{end}" \
--kubeconfig {{ kubeconfig_path }} | grep {{ inventory_hostname }} | awk '{print $1}'
register: node_name
delegate_to: "{{ groups['masters'][0] }}"

- name: Add SMT level label to node
shell: |
kubectl label node/{{ node_name.stdout }} feature.node.kubernetes.io/ppc64le.smtlevel="{{ smt_level }}" --overwrite
delegate_to: "{{ groups['masters'][0] }}"

- name: Set SMT level
shell: ppc64_cpu --smt={{ smt_level }}

- name: Restart kubelet to update the node's capacity at the cluster level
shell: systemctl restart kubelet