Преглед на файлове

Merge pull request #23 from lwilson/issue22

Shell script for changing personalities
John Lockman преди 5 години
родител
ревизия
3a2c5f71a8
променени са 2 файла, в които са добавени 42 реда и са изтрити 0 реда
  1. 7 0
      tools/README.md
  2. 35 0
      tools/change_personality

+ 7 - 0
tools/README.md

@@ -0,0 +1,7 @@
+# Tools for Omnia
+
+## change_personality
+```
+change_personality k|s <node_list>
+```
+Change the personality of a node (or list of nodes) to Kubernetes (`k`) or Slurm (`s`). System does not wait for currently running jobs to complete before making nodes available to the new personality.

+ 35 - 0
tools/change_personality

@@ -0,0 +1,35 @@
+#!/bin/bash
+
+#Usage: change_personality <k|s> <node_name>
+#       k = Kubernetes
+#       s = Slurm
+
+new_personality=$1
+dnsdomain=`dnsdomainname`
+shift
+
+if [ $new_personality == "k" ] 
+then
+# Change Personality to Kubernetes
+  echo "[INFO] Changing personality to Kubernetes"
+  for node in $*
+  do
+    echo -n "$node"
+    scontrol update nodename=$node state=DRAIN reason="used for k8s"
+    kubectl uncordon $node.$dnsdomain > /dev/null  
+    echo " [OK]"
+  done
+elif [ $new_personality == "s" ]
+then
+# Change Personality to Slurm
+  echo "[INFO] Changing personality to Slurm"
+  for node in $*
+  do
+    echo -n "$node"
+    kubectl cordon $node.$dnsdomain > /dev/null
+    scontrol update nodename=$node state=IDLE reason="used for Slurm"
+    echo " [OK]"
+  done
+else
+  echo "[ERROR] $new_personality is not a valid personality. Use 'k' or 's'"
+fi