#!/bin/bash

#NOTE(srwilkers): To simplify the process, we simply remove the ceph related
# labels from half the deployed nodes. This allows us to relabel them with the
# tenant ceph labels instead

# Find the number of nodes and determine half of them
export NUM_NODES=$(kubectl get nodes -o name | wc -w)
export NUM_RELABEL=$(expr $NUM_NODES / 2)

# Store all node information in JSON
kubectl get nodes -o json >> /tmp/nodes.json

# Use jq to find the names of the nodes to relabel by slicing the output at the
# number identified above
export RELABEL_NODES=$(cat /tmp/nodes.json | jq -r '.items[0:(env.NUM_RELABEL|tonumber)] | .[].metadata.name')

# Relabel the nodes appropriately
for node in $RELABEL_NODES; do
  for ceph_label in ceph-mon ceph-osd ceph-mds ceph-rgw ceph-mgr; do
    kubectl label node $node $ceph_label-;
    kubectl label node $node $ceph_label-tenant=enabled;
  done;
  kubectl label node $node tenant-ceph-control-plane=enabled;
done;