59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
source .utils
 | 
						|
 | 
						|
NAMESPACE="$(kubectl config view --minify --output 'jsonpath={..namespace}' &>/dev/null)"
 | 
						|
set -e
 | 
						|
NAMESPACE=${NAMESPACE:-default}
 | 
						|
DEPLOYMENT=""
 | 
						|
 | 
						|
print_usage() {
 | 
						|
  blue "kube-schedule-anywhere - modify a deployment to schedule on any node"
 | 
						|
  echo " "
 | 
						|
  underline "Usage:"
 | 
						|
  echo "kube-schedule-anywhere [options]"
 | 
						|
  echo " "
 | 
						|
  underline "Options:"
 | 
						|
  echo "-h, --help            show this help text"
 | 
						|
  echo "-n, --namespace       the namespace the pod is in"
 | 
						|
  echo "-d, --deployment      the name of the deployment to modify"
 | 
						|
}
 | 
						|
 | 
						|
while test $# -gt 0; do
 | 
						|
  case "$1" in
 | 
						|
    -n|--namespace)
 | 
						|
      shift
 | 
						|
      NAMESPACE=$1
 | 
						|
      shift
 | 
						|
      ;;
 | 
						|
    -d|--deployment)
 | 
						|
      shift
 | 
						|
      DEPLOYMENT=$1
 | 
						|
      shift
 | 
						|
      ;;
 | 
						|
    -h|--help)
 | 
						|
      print_usage
 | 
						|
      exit 0
 | 
						|
      ;;
 | 
						|
    *)
 | 
						|
      break
 | 
						|
      ;;
 | 
						|
  esac
 | 
						|
done
 | 
						|
 | 
						|
 | 
						|
if [[ "$DEPLOYMENT" == "" ]]; then
 | 
						|
  which fzf &>/dev/null || (
 | 
						|
    echo "If no deployment provided, fzf is required to select deployments"
 | 
						|
    echo ""
 | 
						|
    print_usage
 | 
						|
    exit 1
 | 
						|
  )
 | 
						|
 | 
						|
  deployment=($(kubectl get deployments --all-namespaces -owide | fzf | awk '{print $1, $2}'))
 | 
						|
  DEPLOYMENT=$deployment[1]
 | 
						|
  NAMESPACE=$pod[0]
 | 
						|
fi
 | 
						|
 | 
						|
kubectl patch deployment -n ${NAMESPACE} ${DEPLOYMENT} -p '{"spec": { "template": { "spec": { "tolerations": [ { "operator": "Exists" } ] } } } }' 1>/dev/null
 |