github.com/eth-easl/loader@v0.0.0-20230908084258-8a37e1d94279/scripts/setup/label.sh (about)

     1  #!/bin/bash
     2  
     3  #
     4  # MIT License
     5  #
     6  # Copyright (c) 2023 EASL and the vHive community
     7  #
     8  # Permission is hereby granted, free of charge, to any person obtaining a copy
     9  # of this software and associated documentation files (the "Software"), to deal
    10  # in the Software without restriction, including without limitation the rights
    11  # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    12  # copies of the Software, and to permit persons to whom the Software is
    13  # furnished to do so, subject to the following conditions:
    14  #
    15  # The above copyright notice and this permission notice shall be included in all
    16  # copies or substantial portions of the Software.
    17  #
    18  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    19  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    20  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    21  # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    22  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    23  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    24  # SOFTWARE.
    25  #
    26  
    27  ######################################################
    28  # Script for labeling cluster
    29  ######################################################
    30  # label_master $MASTER_NODE - label master node as monitoring
    31  # label_workers $MASTER_NODE - label worker node as worker
    32  ######################################################
    33  
    34  server_exec() {
    35    ssh -oStrictHostKeyChecking=no -p 22 $1 $2;
    36  }
    37  
    38  label_nodes() {
    39    MASTER_NODE=$1
    40    LOADER_NODE=$2
    41    LOADER_NODE_NAME="$(server_exec "$LOADER_NODE" hostname)"
    42    echo $LOADER_NODE_NAME
    43  
    44    server_exec $MASTER_NODE 'kubectl get nodes' > tmp
    45    sed -i '1d' tmp
    46  
    47    while read LINE; do
    48      NODE=$(echo $LINE | cut -d ' ' -f 1)
    49      TYPE=$(echo $LINE | cut -d ' ' -f 3)
    50  
    51      echo "Label ${NODE}"
    52      if [[ $TYPE == *"master"* ]]; then
    53        server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=master" < /dev/null
    54      elif [[ $NODE == $LOADER_NODE_NAME ]]; then
    55        server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=monitoring" < /dev/null
    56      else
    57        server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=worker" < /dev/null
    58      fi
    59    done < tmp
    60  
    61    rm tmp
    62  }