Skip to content

Instantly share code, notes, and snippets.

@mkenigs
Created January 21, 2022 17:39
Show Gist options
  • Save mkenigs/4b9e53c02a6bf0152b54f08dfad32c0f to your computer and use it in GitHub Desktop.
Save mkenigs/4b9e53c02a6bf0152b54f08dfad32c0f to your computer and use it in GitHub Desktop.
cat <<EOF | oc apply -f -
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
name: reproducer
spec:
machineConfigSelector:
matchExpressions:
- key: machineconfiguration.openshift.io/role
operator: In
values:
- worker
- reproducer
nodeSelector:
matchLabels:
node-role.kubernetes.io/reproducer: ""
EOF
WORKER=$(oc get nodes --selector node-role.kubernetes.io/worker= --output jsonpath="{.items[0].metadata.name}")
oc label nodes "$WORKER" node-role.kubernetes.io/reproducer=
MCD=$(oc get pods -n openshift-machine-config-operator --field-selector spec.nodeName="$WORKER" --output jsonpath="{.items[0].metadata.name}")
oc exec -n openshift-machine-config-operator -c machine-config-daemon pod/"$MCD" -- bash -c "chroot /rootfs echo 1 > /proc/sys/kernel/sysrq"
cat <<EOF | oc apply -f -
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
name: reproducer
labels:
machineconfiguration.openshift.io/role: reproducer
spec:
kernelType: realtime
EOF
export MCD
expect -c '
spawn oc logs -f -n openshift-machine-config-operator -c machine-config-daemon pod/$env(MCD)
expect "Initiating switch from kernel default to realtime"
'
oc exec -n openshift-machine-config-operator -c machine-config-daemon pod/"$MCD" -- bash -c "chroot /rootfs echo b > /proc/sysrq-trigger"
while ! oc exec -n openshift-machine-config-operator -c machine-config-daemon pod/"$MCD" -- chroot /rootfs uname -r; do : ; done
# cleanup
oc delete mc/reproducer
oc delete mcp/reproducer
oc label nodes "$WORKER" node-role.kubernetes.io/reproducer-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment