Loading makefile_parts/kube-cluster.mk +41 −1 Original line number Diff line number Diff line Loading @@ -54,3 +54,43 @@ destroy-heapster: ## Install heapster .PHONY: check-images ## check all running images check-images: ## check all running images kube-images-report.sh ifndef TILLER_IMAGE TILLER_IMAGE := gcr.io/kubernetes-helm/tiller:v2.7.2 endif .PHONY: cordon cordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') cordon: ## Disable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Cordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl cordon $$i ; \ kubectl drain $$i --ignore-daemonsets --delete-local-data ; \ done .PHONY: uncordon uncordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') uncordon: ## Enable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Uncordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl uncordon $$i ; \ done .PHONY: cluster-upgrade-nodes recycle-node: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') recycle-node: ## Replace node with a new instance kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Recycle $$i?" ; \ confirm 2> /dev/null || continue ; \ external_id=`kubectl describe node $$i |grep ExternalID | awk '{print $$2}'` ; \ aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id $$external_id --no-should-decrement-desired-capacity ; \ done makefile_parts/node-cluster.mkdeleted 100644 → 0 +0 −79 Original line number Diff line number Diff line ################################################################################ ## kube-cluster.mk # Makefile targets useful for kube cluster ops ################################################################################ # ifndef GCP_ENVIRONMENT # missing_vars := ${missing_vars} GCP_ENVIRONMENT # endif ifndef CLUSTER_NAME missing_vars := ${missing_vars} CLUSTER_NAME endif # ifndef GKE_CLUSTER_ZONE # missing_vars := ${missing_vars} GKE_CLUSTER_ZONE # endif ifndef TILLER_IMAGE TILLER_IMAGE := gcr.io/kubernetes-helm/tiller:v2.7.2 endif .PHONY: cordon cordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') cordon: ## Disable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Cordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl cordon $$i ; \ kubectl drain $$i --ignore-daemonsets --delete-local-data ; \ done .PHONY: uncordon uncordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') uncordon: ## Enable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Uncordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl uncordon $$i ; \ done .PHONY: cluster-upgrade-nodes recycle-node: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') recycle-node: ## Replace node with a new instance kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Recycle $$i?" ; \ confirm 2> /dev/null || continue ; \ external_id=`kubectl describe node $$i |grep ExternalID | awk '{print $$2}'` ; \ aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id $$external_id --no-should-decrement-desired-capacity ; \ done .PHONY: get-images get-images: config-kube ## List all images running in the cluster @kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' '\n' | sort | uniq -c .PHONY: tiller tiller: KUBECONFIG = $$HOME/.kube/${CLUSTER_NAME} tiller: ## Instal Helm tiller controller helm init --upgrade && helm version .PHONY: delete-tiller delete-tiller: ## Uninstall tiller kubectl delete deployment tiller-deploy -n kube-system --ignore-not-found .PHONY: tag-nodes tag-nodes: config-kube ## tag the cluster nodes for NAT tag-nodes-for-nat.sh ${GCP_NAT_TAGS} .PHONY: check-images ## check all running images check-images: config-kube kube-images-report.sh Loading
makefile_parts/kube-cluster.mk +41 −1 Original line number Diff line number Diff line Loading @@ -54,3 +54,43 @@ destroy-heapster: ## Install heapster .PHONY: check-images ## check all running images check-images: ## check all running images kube-images-report.sh ifndef TILLER_IMAGE TILLER_IMAGE := gcr.io/kubernetes-helm/tiller:v2.7.2 endif .PHONY: cordon cordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') cordon: ## Disable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Cordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl cordon $$i ; \ kubectl drain $$i --ignore-daemonsets --delete-local-data ; \ done .PHONY: uncordon uncordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') uncordon: ## Enable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Uncordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl uncordon $$i ; \ done .PHONY: cluster-upgrade-nodes recycle-node: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') recycle-node: ## Replace node with a new instance kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Recycle $$i?" ; \ confirm 2> /dev/null || continue ; \ external_id=`kubectl describe node $$i |grep ExternalID | awk '{print $$2}'` ; \ aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id $$external_id --no-should-decrement-desired-capacity ; \ done
makefile_parts/node-cluster.mkdeleted 100644 → 0 +0 −79 Original line number Diff line number Diff line ################################################################################ ## kube-cluster.mk # Makefile targets useful for kube cluster ops ################################################################################ # ifndef GCP_ENVIRONMENT # missing_vars := ${missing_vars} GCP_ENVIRONMENT # endif ifndef CLUSTER_NAME missing_vars := ${missing_vars} CLUSTER_NAME endif # ifndef GKE_CLUSTER_ZONE # missing_vars := ${missing_vars} GKE_CLUSTER_ZONE # endif ifndef TILLER_IMAGE TILLER_IMAGE := gcr.io/kubernetes-helm/tiller:v2.7.2 endif .PHONY: cordon cordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') cordon: ## Disable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Cordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl cordon $$i ; \ kubectl drain $$i --ignore-daemonsets --delete-local-data ; \ done .PHONY: uncordon uncordon: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') uncordon: ## Enable scheduling on a node kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Uncordon $$i?" ; \ confirm 2> /dev/null || continue ; \ kubectl uncordon $$i ; \ done .PHONY: cluster-upgrade-nodes recycle-node: NODES = $(shell kubectl get node -o json | jq -r '.items[].metadata.name') recycle-node: ## Replace node with a new instance kubectl get nodes @for i in ${NODES}; do \ echo "" ; \ echo "Recycle $$i?" ; \ confirm 2> /dev/null || continue ; \ external_id=`kubectl describe node $$i |grep ExternalID | awk '{print $$2}'` ; \ aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id $$external_id --no-should-decrement-desired-capacity ; \ done .PHONY: get-images get-images: config-kube ## List all images running in the cluster @kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' '\n' | sort | uniq -c .PHONY: tiller tiller: KUBECONFIG = $$HOME/.kube/${CLUSTER_NAME} tiller: ## Instal Helm tiller controller helm init --upgrade && helm version .PHONY: delete-tiller delete-tiller: ## Uninstall tiller kubectl delete deployment tiller-deploy -n kube-system --ignore-not-found .PHONY: tag-nodes tag-nodes: config-kube ## tag the cluster nodes for NAT tag-nodes-for-nat.sh ${GCP_NAT_TAGS} .PHONY: check-images ## check all running images check-images: config-kube kube-images-report.sh