From f1f9fae75d8f8cb83dbbe1c247b207ea3c5782e6 Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Wed, 27 Jan 2021 17:59:27 -0700 Subject: [PATCH 01/10] Added find deploy and taildeploy --- findeploy | 22 ++++++++++++++++++++++ install | 8 ++++++++ kube-fzf.sh | 36 ++++++++++++++++++++++++++++++++++++ taildeploy | 24 ++++++++++++++++++++++++ 4 files changed, 90 insertions(+) create mode 100755 findeploy create mode 100755 install create mode 100755 taildeploy diff --git a/findeploy b/findeploy new file mode 100755 index 0000000..0673fed --- /dev/null +++ b/findeploy @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH + +findeploy() { + local namespace_query deploy_query result namespace deploy_name + + _kube_fzf_handler "findeploy" "$@" + namespace_query=$(echo $args | awk -F '|' '{ print $1 }') + deploy_query=$(echo $args | awk -F '|' '{ print $2 }') + + result=$(_kube_fzf_search_deploy "$namespace_query" "$deploy_query") + IFS=$'|' read -r namespace deploy_name <<< "$result" + + _kube_fzf_echo "kubectl get deployment --namespace='$namespace' --output=wide $deploy_name" + kubectl get deployment --namespace=$namespace $deploy_name +} + +findeploy "$@" diff --git a/install b/install new file mode 100755 index 0000000..f151172 --- /dev/null +++ b/install @@ -0,0 +1,8 @@ +#!/bin/bash + + +for i in findpod execpod tailpod describepod pfpod findeploy taildeploy kube-fzf.sh +do + ln -s $PWD/$i $HOME/.local/bin/$i + #unlink $HOME/.local/bin/$i +done diff --git a/kube-fzf.sh b/kube-fzf.sh index cd64f26..200ca1f 100755 --- a/kube-fzf.sh +++ b/kube-fzf.sh @@ -174,6 +174,42 @@ _kube_fzf_search_pod() { echo "$namespace|$pod_name" } +_kube_fzf_search_deploy() { + local namespace deploy_name + local namespace_query=$1 + local deploy_query=$2 + local deploy_fzf_args=$(_kube_fzf_fzf_args "$deploy_query") + + if [ -z "$namespace_query" ]; then + context=$(kubectl config current-context) + namespace=$(kubectl config get-contexts --no-headers $context \ + | awk '{ print $5 }') + + namespace=${namespace:=default} + deploy_name=$(kubectl get deployment --namespace=$namespace --no-headers \ + | fzf $(echo $deploy_fzf_args) \ + | awk '{ print $1 }') + elif [ "$namespace_query" = "--all-namespaces" ]; then + read namespace deploy_name <<< $(kubectl get deployment --all-namespaces --no-headers \ + | fzf $(echo $deploy_fzf_args) \ + | awk '{ print $1, $2 }') + else + local namespace_fzf_args=$(_kube_fzf_fzf_args "$namespace_query" "--select-1") + namespace=$(kubectl get namespaces --no-headers \ + | fzf $(echo $namespace_fzf_args) \ + | awk '{ print $1 }') + + namespace=${namespace:=default} + deploy_name=$(kubectl get deployment --namespace=$namespace --no-headers \ + | fzf $(echo $deploy_fzf_args) \ + | awk '{ print $1 }') + fi + + [ -z "$deploy_name" ] && return 1 + + echo "$namespace|$deploy_name" +} + _kube_fzf_echo() { local reset_color="\033[0m" local bold_green="\033[1;32m" diff --git a/taildeploy b/taildeploy new file mode 100755 index 0000000..96b6111 --- /dev/null +++ b/taildeploy @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH + +taildeploy() { + local namespace_query deploy_query result namespace deploy_name + + _kube_fzf_handler "taildeploy" "$@" + namespace_query=$(echo $args | awk -F '|' '{ print $1 }') + deploy_query=$(echo $args | awk -F '|' '{ print $2 }') + + result=$(_kube_fzf_search_deploy "$namespace_query" "$deploy_query") + IFS=$'|' read -r namespace deploy_name <<< "$result" + + local fzf_args=$(_kube_fzf_fzf_args "" "--select-1") + + _kube_fzf_echo "kubectl logs --namespace='$namespace' --follow deployment/$deploy_name" + kubectl logs --namespace=$namespace --follow deployment/$deploy_name +} + +taildeploy "$@" From 68de534cd08fff59f177a3046eb6e178b721942c Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Wed, 27 Jan 2021 18:07:16 -0700 Subject: [PATCH 02/10] updated readme and removed my install script --- README.md | 14 ++++++++++++++ install | 8 -------- 2 files changed, 14 insertions(+), 8 deletions(-) delete mode 100755 install diff --git a/README.md b/README.md index 78617ef..a4558a5 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ sudo ln -s ~/.kube-fzf/execpod /usr/local/bin/execpod sudo ln -s ~/.kube-fzf/tailpod /usr/local/bin/tailpod sudo ln -s ~/.kube-fzf/describepod /usr/local/bin/describepod sudo ln -s ~/.kube-fzf/pfpod /usr/local/bin/pfpod +sudo ln -s ~/.kube-fzf/taildeploy /usr/local/bin/taildeploy +sudo ln -s ~/.kube-fzf/findeploy /usr/local/bin/findeploy sudo ln -s ~/.kube-fzf/kube-fzf.sh /usr/local/bin/kube-fzf.sh ``` @@ -42,6 +44,12 @@ sudo ln -s ~/.kube-fzf/kube-fzf.sh /usr/local/bin/kube-fzf.sh findpod [-a | -n ] [pod-query] ``` +### `findeploy` + +``` +findeploy [-a | -n ] [deploy-query] +``` + ### `describepod` ``` @@ -54,6 +62,12 @@ describepod [-a | -n ] [pod-query] tailpod [-a | -n ] [pod-query] ``` +### `taildeploy` + +``` +taildeploy [-a | -n ] [deployment-query] +``` + ### `execpod` ``` diff --git a/install b/install deleted file mode 100755 index f151172..0000000 --- a/install +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - - -for i in findpod execpod tailpod describepod pfpod findeploy taildeploy kube-fzf.sh -do - ln -s $PWD/$i $HOME/.local/bin/$i - #unlink $HOME/.local/bin/$i -done From 73cb12837c1557e39f050f0593599f39d31755e4 Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Thu, 28 Jan 2021 16:04:19 -0700 Subject: [PATCH 03/10] Added tail/find job --- findjob | 22 ++++++++++++++++++++++ kube-fzf.sh | 36 ++++++++++++++++++++++++++++++++++++ tailjob | 24 ++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100755 findjob create mode 100755 tailjob diff --git a/findjob b/findjob new file mode 100755 index 0000000..8c032ac --- /dev/null +++ b/findjob @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH + +findjob() { + local namespace_query job_query result namespace job_name + + _kube_fzf_handler "findjob" "$@" + namespace_query=$(echo $args | awk -F '|' '{ print $1 }') + job_query=$(echo $args | awk -F '|' '{ print $2 }') + + result=$(_kube_fzf_search_job "$namespace_query" "$job_query") + IFS=$'|' read -r namespace job_name <<< "$result" + + _kube_fzf_echo "kubectl get job --namespace='$namespace' --output=wide $job_name" + kubectl get job --namespace=$namespace --output=wide $job_name +} + +findjob "$@" diff --git a/kube-fzf.sh b/kube-fzf.sh index 200ca1f..ed768fd 100755 --- a/kube-fzf.sh +++ b/kube-fzf.sh @@ -210,6 +210,42 @@ _kube_fzf_search_deploy() { echo "$namespace|$deploy_name" } +_kube_fzf_search_job() { + local namespace job_name + local namespace_query=$1 + local job_query=$2 + local job_fzf_args=$(_kube_fzf_fzf_args "$job_query") + + if [ -z "$namespace_query" ]; then + context=$(kubectl config current-context) + namespace=$(kubectl config get-contexts --no-headers $context \ + | awk '{ print $5 }') + + namespace=${namespace:=default} + job_name=$(kubectl get job --namespace=$namespace --no-headers \ + | fzf $(echo $job_fzf_args) \ + | awk '{ print $1 }') + elif [ "$namespace_query" = "--all-namespaces" ]; then + read namespace job_name <<< $(kubectl get job --all-namespaces --no-headers \ + | fzf $(echo $job_fzf_args) \ + | awk '{ print $1, $2 }') + else + local namespace_fzf_args=$(_kube_fzf_fzf_args "$namespace_query" "--select-1") + namespace=$(kubectl get namespaces --no-headers \ + | fzf $(echo $namespace_fzf_args) \ + | awk '{ print $1 }') + + namespace=${namespace:=default} + job_name=$(kubectl get job --namespace=$namespace --no-headers \ + | fzf $(echo $job_fzf_args) \ + | awk '{ print $1 }') + fi + + [ -z "$job_name" ] && return 1 + + echo "$namespace|$job_name" +} + _kube_fzf_echo() { local reset_color="\033[0m" local bold_green="\033[1;32m" diff --git a/tailjob b/tailjob new file mode 100755 index 0000000..9293074 --- /dev/null +++ b/tailjob @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH + +tailjob() { + local namespace_query job_query result namespace job_name + + _kube_fzf_handler "tailjob" "$@" + namespace_query=$(echo $args | awk -F '|' '{ print $1 }') + job_query=$(echo $args | awk -F '|' '{ print $2 }') + + result=$(_kube_fzf_search_job "$namespace_query" "$job_query") + IFS=$'|' read -r namespace job_name <<< "$result" + + local fzf_args=$(_kube_fzf_fzf_args "" "--select-1") + + _kube_fzf_echo "kubectl logs --namespace='$namespace' --follow $job_name" + kubectl logs --namespace=$namespace --follow job/$job_name +} + +tailjob "$@" From 1804be0a288a75b084ed560b056657fa2990ec19 Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Thu, 28 Jan 2021 16:06:40 -0700 Subject: [PATCH 04/10] Added tail/find job --- tailjob | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tailjob b/tailjob index 9293074..cf5b7a2 100755 --- a/tailjob +++ b/tailjob @@ -17,7 +17,7 @@ tailjob() { local fzf_args=$(_kube_fzf_fzf_args "" "--select-1") - _kube_fzf_echo "kubectl logs --namespace='$namespace' --follow $job_name" + _kube_fzf_echo "kubectl logs --namespace='$namespace' --follow job/$job_name" kubectl logs --namespace=$namespace --follow job/$job_name } From e90303fd885c4d1b1c5ffb2e266ff0545184fc4f Mon Sep 17 00:00:00 2001 From: BMouser Date: Wed, 3 Feb 2021 18:08:15 -0700 Subject: [PATCH 05/10] Adding deletepod (#1) --- README.md | 7 +++++++ deletepod | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100755 deletepod diff --git a/README.md b/README.md index a4558a5..49f981d 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ git clone https://github.com/thecasualcoder/kube-fzf.git ~/.kube-fzf sudo ln -s ~/.kube-fzf/findpod /usr/local/bin/findpod sudo ln -s ~/.kube-fzf/execpod /usr/local/bin/execpod sudo ln -s ~/.kube-fzf/tailpod /usr/local/bin/tailpod +sudo ln -s ~/.kube-fzf/deletepod /usr/local/bin/deletepod sudo ln -s ~/.kube-fzf/describepod /usr/local/bin/describepod sudo ln -s ~/.kube-fzf/pfpod /usr/local/bin/pfpod sudo ln -s ~/.kube-fzf/taildeploy /usr/local/bin/taildeploy @@ -50,6 +51,12 @@ findpod [-a | -n ] [pod-query] findeploy [-a | -n ] [deploy-query] ``` +### `deletepod` + +``` +deletepod [-a | -n ] [pod-query] +``` + ### `describepod` ``` diff --git a/deletepod b/deletepod new file mode 100755 index 0000000..aacc198 --- /dev/null +++ b/deletepod @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH +deletepod() { + local namespace_query pod_query result namespace pod_name + + _kube_fzf_handler "deletepod" "$@" + namespace_query=$(echo $args | awk -F '|' '{ print $1 }') + pod_query=$(echo $args | awk -F '|' '{ print $2 }') + + result=$(_kube_fzf_search_pod "$namespace_query" "$pod_query") + IFS=$'|' read -r namespace pod_name <<< "$result" + + _kube_fzf_echo "kubectl delete pod $pod_name --namespace='$namespace'" + kubectl delete pod $pod_name --namespace=$namespace +} + +deletepod "$@" From d7733162290e584c8604855fc3c13183ea0eb82f Mon Sep 17 00:00:00 2001 From: BMouser Date: Wed, 17 Feb 2021 10:24:30 -0700 Subject: [PATCH 06/10] Adding install script and change exec default to bash (#2) * Adding in install script * Changing default exec command to bash --- README.md | 12 ++---------- install.sh | 8 ++++++++ kube-fzf.sh | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) create mode 100755 install.sh diff --git a/README.md b/README.md index 49f981d..fdeb980 100644 --- a/README.md +++ b/README.md @@ -25,16 +25,8 @@ brew install kube-fzf ### Manual ``` -git clone https://github.com/thecasualcoder/kube-fzf.git ~/.kube-fzf -sudo ln -s ~/.kube-fzf/findpod /usr/local/bin/findpod -sudo ln -s ~/.kube-fzf/execpod /usr/local/bin/execpod -sudo ln -s ~/.kube-fzf/tailpod /usr/local/bin/tailpod -sudo ln -s ~/.kube-fzf/deletepod /usr/local/bin/deletepod -sudo ln -s ~/.kube-fzf/describepod /usr/local/bin/describepod -sudo ln -s ~/.kube-fzf/pfpod /usr/local/bin/pfpod -sudo ln -s ~/.kube-fzf/taildeploy /usr/local/bin/taildeploy -sudo ln -s ~/.kube-fzf/findeploy /usr/local/bin/findeploy -sudo ln -s ~/.kube-fzf/kube-fzf.sh /usr/local/bin/kube-fzf.sh +git clone https://github.com/bmouser/kube-fzf.git ~/.kube-fzf +./install.sh ``` ## Usage diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..3dada7f --- /dev/null +++ b/install.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +CURRENT_FILE=$(basename $0) + +BIN_PATH=${1:-${HOME}/bin} + +for file in $(find . -maxdepth 1 -type f -executable ! -path "./${CURRENT_FILE}" -printf '%P\n'); do + ln -fs "$(pwd)/${file}" "${BIN_PATH}/${file}" +done diff --git a/kube-fzf.sh b/kube-fzf.sh index ed768fd..9d1d6c2 100755 --- a/kube-fzf.sh +++ b/kube-fzf.sh @@ -103,7 +103,7 @@ _kube_fzf_handler() { if [ "$func" = "execpod" ] || [ "$func" = "pfpod" ]; then if [ $# -eq 1 ]; then cmd=$1 - [ -z "$cmd" ] && cmd="sh" + [ -z "$cmd" ] && cmd="bash" elif [ $# -eq 2 ]; then pod_query=$1 cmd=$2 @@ -117,7 +117,7 @@ _kube_fzf_handler() { else if [ -z "$cmd" ]; then if [ "$func" = "execpod" ]; then - cmd="sh" + cmd="bash" elif [ "$func" = "pfpod" ]; then echo "Port required." && _kube_fzf_usage "$func" && return 1 fi From 0ad597417abb96716da0da79722fb6be3d05c368 Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Wed, 17 Feb 2021 10:33:03 -0700 Subject: [PATCH 07/10] Added edit-pod command --- README.md | 6 ++++++ editdeploy | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100755 editdeploy diff --git a/README.md b/README.md index fdeb980..a112c74 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,12 @@ findpod [-a | -n ] [pod-query] findeploy [-a | -n ] [deploy-query] ``` +### `editdeploy` + +``` +editdeploy [-a | -n ] [deploy-query] +``` + ### `deletepod` ``` diff --git a/editdeploy b/editdeploy new file mode 100755 index 0000000..dcea208 --- /dev/null +++ b/editdeploy @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH + +editdeploy() { + local namespace_query deploy_query result namespace deploy_name + + _kube_fzf_handler "editdeploy" "$@" + namespace_query=$(echo $args | awk -F '|' '{ print $1 }') + deploy_query=$(echo $args | awk -F '|' '{ print $2 }') + + result=$(_kube_fzf_search_deploy "$namespace_query" "$deploy_query") + IFS=$'|' read -r namespace deploy_name <<< "$result" + + local fzf_args=$(_kube_fzf_fzf_args "" "--select-1") + + _kube_fzf_echo "kubectl edit --namespace='$namespace' deployment/$deploy_name" + kubectl edit --namespace=$namespace deployment/$deploy_name +} + +editdeploy "$@" From 133fe9f3354eff616a4bbd340d65926d3b40de0e Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Wed, 17 Feb 2021 10:55:28 -0700 Subject: [PATCH 08/10] Added scaledeploy command. --- README.md | 6 ++++++ scaledeploy | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100755 scaledeploy diff --git a/README.md b/README.md index a112c74..a045b2e 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,12 @@ findpod [-a | -n ] [pod-query] findeploy [-a | -n ] [deploy-query] ``` +### `scaledeploy` + +``` +scaledeploy [-a | -n ] scale-number +``` + ### `editdeploy` ``` diff --git a/scaledeploy b/scaledeploy new file mode 100755 index 0000000..bec0e19 --- /dev/null +++ b/scaledeploy @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +[[ -z "${KUBE_FZF_PATH}" ]] && source kube-fzf.sh || source $KUBE_FZF_PATH + +scaledeploy() { + local namespace_query cmd result namespace deploy_name + + _kube_fzf_handler "scaledeploy" "$@" + IFS=$'|' read -r namespace_query cmd _unused _unused <<< "$args" + + result=$(_kube_fzf_search_deploy "$namespace_query") + IFS=$'|' read -r namespace deploy_name <<< "$result" + + local fzf_args=$(_kube_fzf_fzf_args "" "--select-1") + + _kube_fzf_echo "kubectl scale --replicas=$cmd --namespace='$namespace' deployment/$deploy_name" + kubectl scale --replicas=$cmd --namespace=$namespace deployment/$deploy_name +} + +scaledeploy "$@" From 6afe78eed7a37cde6668f589942f882ea79bd17f Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Mon, 12 Jul 2021 19:56:14 -0600 Subject: [PATCH 09/10] Fixed repo name in readme. set default command to client's shell --- README.md | 2 +- kube-fzf.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a045b2e..645910f 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ brew install kube-fzf ### Manual ``` -git clone https://github.com/bmouser/kube-fzf.git ~/.kube-fzf +git clone https://github.com/thecasualcoder/kube-fzf.git ~/.kube-fzf ./install.sh ``` diff --git a/kube-fzf.sh b/kube-fzf.sh index 9d1d6c2..6c6ac23 100755 --- a/kube-fzf.sh +++ b/kube-fzf.sh @@ -103,7 +103,7 @@ _kube_fzf_handler() { if [ "$func" = "execpod" ] || [ "$func" = "pfpod" ]; then if [ $# -eq 1 ]; then cmd=$1 - [ -z "$cmd" ] && cmd="bash" + [ -z "$cmd" ] && cmd="$SHELL" elif [ $# -eq 2 ]; then pod_query=$1 cmd=$2 @@ -117,7 +117,7 @@ _kube_fzf_handler() { else if [ -z "$cmd" ]; then if [ "$func" = "execpod" ]; then - cmd="bash" + cmd="$SHELL" elif [ "$func" = "pfpod" ]; then echo "Port required." && _kube_fzf_usage "$func" && return 1 fi From 0ccbabca27e0fdb675e0ccb5b8b8d5e14ff42c0b Mon Sep 17 00:00:00 2001 From: Ian Laird Date: Thu, 15 Jul 2021 18:04:56 -0600 Subject: [PATCH 10/10] Set default command to sh --- kube-fzf.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kube-fzf.sh b/kube-fzf.sh index 6c6ac23..ed768fd 100755 --- a/kube-fzf.sh +++ b/kube-fzf.sh @@ -103,7 +103,7 @@ _kube_fzf_handler() { if [ "$func" = "execpod" ] || [ "$func" = "pfpod" ]; then if [ $# -eq 1 ]; then cmd=$1 - [ -z "$cmd" ] && cmd="$SHELL" + [ -z "$cmd" ] && cmd="sh" elif [ $# -eq 2 ]; then pod_query=$1 cmd=$2 @@ -117,7 +117,7 @@ _kube_fzf_handler() { else if [ -z "$cmd" ]; then if [ "$func" = "execpod" ]; then - cmd="$SHELL" + cmd="sh" elif [ "$func" = "pfpod" ]; then echo "Port required." && _kube_fzf_usage "$func" && return 1 fi