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
5 changes: 5 additions & 0 deletions playbooks/must-gather.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
- name: Collect must-gather logs
hosts: bastion
roles:
- must-gather
5 changes: 5 additions & 0 deletions playbooks/pod-affinity-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
- name: Run pod affinity and pause pod test
hosts: bastion
roles:
- pod-affinity-test
5 changes: 5 additions & 0 deletions playbooks/roles/must-gather/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
#defaults file for playbooks/rokes/must-gather
must_gather_dest: /home/must_gather_logs
must_gather_archive: /home/must-gather-logs.tar.gz
#must_gather_local_path: ./must-gather-logs.tar.gz
30 changes: 30 additions & 0 deletions playbooks/roles/must-gather/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
- name: Run oc adm must-gather
command: oc adm must-gather --dest-dir={{ must_gather_dest }}
args:
creates: "{{ must_gather_dest }}/cluster-scoped-resources"
register: must_gather_output

- debug:
var: must_gather_output.stdout_lines

- name: Set permissions for must-gather directory
file:
path: "{{ must_gather_dest }}"
owner: root
group: root
mode: '0755'
state: directory

- name: Compress must-gather logs
command: tar -czf {{ must_gather_archive }} -C {{ must_gather_dest | dirname }} {{ must_gather_dest | basename }}
args:
creates: "{{ must_gather_archive }}"

- name: Set permissions for must-gather tarball
file:
path: "{{ must_gather_archive }}"
owner: root
group: root
mode: '0644'
state: file
Empty file.
86 changes: 86 additions & 0 deletions playbooks/roles/pod-affinity-test/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
- name: Create PPC pod with affinity
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: Pod
metadata:
name: ppc-pod
namespace: default
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 70
preference:
matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- ppc64le
- weight: 30
preference:
matchExpressions:
- key: kubernetes.io/arch
operator: NotIn
values:
- ppc64le
containers:
- name: web
image: registry.redhat.io/ubi8/pause

- name: Create x86 pod with anti-affinity
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: Pod
metadata:
name: x86-pod
namespace: default
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 30
preference:
matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- ppc64le
- weight: 70
preference:
matchExpressions:
- key: kubernetes.io/arch
operator: NotIn
values:
- ppc64le
containers:
- name: web
image: registry.redhat.io/ubi8/pause

- name: Wait until pods are running
command: oc get pods -n default --no-headers
register: pod_status
until: "'Running' in pod_status.stdout"
retries: 10
delay: 10

- name: Launch multiple pause pods
shell: |
for n in $(seq 1 60); do
oc run pause-pod-$n --image=ubi8/pause:8.8-9 -n default
done

- name: Verify all pods running
command: oc get pods -n default -o wide
register: pause_pod_status
changed_when: false

- debug:
msg: "{{ pause_pod_status.stdout_lines }}"

- name: Cleanup - delete all pods
command: oc delete pods --all -n default
79 changes: 79 additions & 0 deletions playbooks/roles/smoke-test/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
- name: Create and debug pods with node affinity
# hosts: bastion
tasks:

- name: Create PPC pod with affinity (ppc64le)
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: Pod
metadata:
name: ppc-pod
namespace: default
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values: [ppc64le]
containers:
- name: web
image: registry.redhat.io/ubi8/pause

- name: Create x86 pod with affinity (amd64)
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: Pod
metadata:
name: x86-pod
namespace: default
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values: [amd64]
containers:
- name: web
image: registry.redhat.io/ubi8/pause

- name: Wait for both pods to be Running
shell: oc get pods ppc-pod x86-pod -n default --no-headers
register: pod_status
until: "'Running' in pod_status.stdout"
retries: 10
delay: 10

- name: Show pod status
command: oc get pods -o wide -n default
register: pod_list
changed_when: false

- debug:
msg: "{{ pod_list.stdout_lines }}"

- name: Debug x86 pod (ls inside container)
shell: |
oc debug pod/x86-pod -n default -- ls
register: debug_x86

- debug:
msg: "{{ debug_x86.stdout_lines }}"

- name: Debug ppc pod (ls inside container)
shell: |
oc debug pod/ppc-pod -n default -- ls
register: debug_ppc

- debug:
msg: "{{ debug_ppc.stdout_lines }}"
5 changes: 5 additions & 0 deletions playbooks/smoke-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
- name: Deploy and verify arch-specific pods
hosts: bastion
roles:
- smoke-test