Kubernetes 컨텍스트를 일정 시간 동안 유지하고 사용하는 fish 함수
4537 단어 fishkubectlPecokubernetes
소개
Kubernetes의 여러 개발 환경을 다루는 경우 kubectl config set-context
또는 kubectx
와 같은 플러그인을 사용하여 컨텍스트를 전환하지만이 방법으로 의도하지 않은 환경을 조작하는 경우가 종종 있습니다.
그래서 Kubernetes의 컨텍스트를 일정 시간만큼 유지해 이용하는 fish 함수를 써 보았습니다.
설명
사전 준비
다음을 사용할 수 있는 환경을 전제로 하고 있습니다.
- kubectl
- fish
- peco
fish function 만들기
function 이름은 kubettl
입니다.$HOME/.config/fish/functions/kubettl.fish
라는 파일을 작성하고 다음 소스를 작성합니다.
function kubettl
# 利用する変数の初期化
set ctx_dir $HOME/.context
set cxt_file $ctx_dir/kubectx
set ctx
# コンテキストが保持されていても無視する `--ignore` オプションの指定を確認
set cmd_argv $argv
if [ $argv[1] = '--ignore' ]
set cmd_argv $argv[2..-1]
end
# コンテキストの決定
if [ $argv[1] != '--ignore' ]; and test (find $cxt_file -mmin -10 ^ /dev/null | wc -l) -eq 1
# 利用可能なコンテキストがあれば使う
set ctx (cat $cxt_file)
else
# 無ければ peco を利用して選択する
set ctx (string split ' ' (kubectl config view -o jsonpath='{.users[*].name}') | peco)
end
# コンテキストをファイルへ出力
test -d $ctx_dir; or mkdir $ctx_dir
echo $ctx >$cxt_file
# コンテキストを指定してコマンド実行
kubectl --context=$ctx $cmd_argv
end
컨텍스트를 일정 시간 동안 사용하는 방법에 대해
문맥을 파일에 출력해, 그 파일의 갱신 일시가 10 min 이내이면 그 내용을 이용하도록 하고 있습니다.
find hoge -mmin -10
이렇게 하면 hoge
파일이 10분 이내에 업데이트된 경우에만 결과가 출력됩니다.
* find 명령의 mtime 옵션 요약 라는 기사가 참고가 됩니다.
해당 파일이 없으면 오류가 발생하기 때문에 소스에서 ^ /dev/null
를 붙인 다음 행 수를 계산합니다.
test (find hoge -mmin -10 ^ /dev/null | wc -l) -eq 1
사용법
kubectl
대신 kubettl
를 사용하면됩니다.
kubettl get pods
마지막으로
단순히 컨텍스트를 파일에 내보내고 일정 시간 내에만 이용하는 기법이므로 물론 Kubernetes 컨텍스트에 한하지 않고 이용할 수 있습니다.
Reference
이 문제에 관하여(Kubernetes 컨텍스트를 일정 시간 동안 유지하고 사용하는 fish 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hmarui66/items/0d718347e71f8b91372f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사전 준비
다음을 사용할 수 있는 환경을 전제로 하고 있습니다.
- kubectl
- fish
- peco
fish function 만들기
function 이름은
kubettl
입니다.$HOME/.config/fish/functions/kubettl.fish
라는 파일을 작성하고 다음 소스를 작성합니다.function kubettl
# 利用する変数の初期化
set ctx_dir $HOME/.context
set cxt_file $ctx_dir/kubectx
set ctx
# コンテキストが保持されていても無視する `--ignore` オプションの指定を確認
set cmd_argv $argv
if [ $argv[1] = '--ignore' ]
set cmd_argv $argv[2..-1]
end
# コンテキストの決定
if [ $argv[1] != '--ignore' ]; and test (find $cxt_file -mmin -10 ^ /dev/null | wc -l) -eq 1
# 利用可能なコンテキストがあれば使う
set ctx (cat $cxt_file)
else
# 無ければ peco を利用して選択する
set ctx (string split ' ' (kubectl config view -o jsonpath='{.users[*].name}') | peco)
end
# コンテキストをファイルへ出力
test -d $ctx_dir; or mkdir $ctx_dir
echo $ctx >$cxt_file
# コンテキストを指定してコマンド実行
kubectl --context=$ctx $cmd_argv
end
컨텍스트를 일정 시간 동안 사용하는 방법에 대해
문맥을 파일에 출력해, 그 파일의 갱신 일시가 10 min 이내이면 그 내용을 이용하도록 하고 있습니다.
find hoge -mmin -10
이렇게 하면
hoge
파일이 10분 이내에 업데이트된 경우에만 결과가 출력됩니다.* find 명령의 mtime 옵션 요약 라는 기사가 참고가 됩니다.
해당 파일이 없으면 오류가 발생하기 때문에 소스에서
^ /dev/null
를 붙인 다음 행 수를 계산합니다.test (find hoge -mmin -10 ^ /dev/null | wc -l) -eq 1
사용법
kubectl
대신 kubettl
를 사용하면됩니다.kubettl get pods
마지막으로
단순히 컨텍스트를 파일에 내보내고 일정 시간 내에만 이용하는 기법이므로 물론 Kubernetes 컨텍스트에 한하지 않고 이용할 수 있습니다.
Reference
이 문제에 관하여(Kubernetes 컨텍스트를 일정 시간 동안 유지하고 사용하는 fish 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hmarui66/items/0d718347e71f8b91372f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Kubernetes 컨텍스트를 일정 시간 동안 유지하고 사용하는 fish 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hmarui66/items/0d718347e71f8b91372f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)