2017年11月14日火曜日

Oracle Linux 7 の Kubernetes で Bash 補完する。

Oracle Linux 7 で Kubernetes を利用するときも、kubectl を利用します。
そこで、kubectl などで Bash 補完機能を利用できるようにしてみます。

今回の環境は Oracle Linux 7.4 を利用しています。
[gowatana@k8s-master-01 ~]$ cat /etc/oracle-release
Oracle Linux Server release 7.4

kubectl の Bash 補完。
今回の kubectl です。
[gowatana@k8s-master-01 ~]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.4+0c1a5fc", GitCommit:"0c1a5fc302a1f849e245e64f3ec0d71fb54df8a7", GitTreeState:"not a git tree", BuildDate:"2017-09-06T14:42:45Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.4+0c1a5fc", GitCommit:"0c1a5fc302a1f849e245e64f3ec0d71fb54df8a7", GitTreeState:"not a git tree", BuildDate:"2017-09-06T14:42:45Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

まず、bash-completion をインストールします。
[root@k8s-master-01 ~]# yum install -y bash-completion

Bash 補完のためのファイルを作成しておきます。
[root@k8s-master-01 ~]# kubectl completion bash > /etc/bash_completion.d/kubectl

ログインしたユーザで、
Tab キーによる kubectl の補完候補が表示されるようになります。
[root@k8s-master-01 ~]# su - gowatana
[gowatana@k8s-master-01 ~]$ kubectl ★ここでTab
annotate        convert         expose          rolling-update
api-versions    cordon          get             rollout
apply           cp              label           run
attach          create          logs            scale
auth            delete          options         set
autoscale       describe        patch           taint
certificate     drain           plugin          top
cluster-info    edit            port-forward    uncordon
completion      exec            proxy           version
config          explain         replace
[gowatana@k8s-master-01 ~]$ kubectl

kubeadm の Bash 補完。
ちなみに、Oracle Linux の Kubernetes ではどこまで利用してよいのか
悩ましいですが、kubeadm も Bash 補完できます。
[root@k8s-master-01 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.4+0c1a5fc", GitCommit:"0c1a5fc302a1f849e245e64f3ec0d71fb54df8a7", GitTreeState:"not a git tree", BuildDate:"2017-09-06T14:42:45Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Bash 補完のためのファイルを作成します。
 [root@k8s-master-01 ~]# kubeadm completion bash > /etc/bash_completion.d/kubeadm

ログインしたユーザで、Bash 補完できるようになります。
[root@k8s-master-01 ~]# su - gowatana
[gowatana@k8s-master-01 ~]$ kubeadm ★ここでTab
alpha       init        reset       version
completion  join        token

今回はシステム全体で Bash 補完機能を利用できるようにしていますが、
下記のような感じで、ユーザ単位で設定することもできます。
これも、ユーザでログインしなおすか source コマンドの部分を実行することで
Bash 補完できるようになります。
[gowatana@k8s-master-01 ~]$ echo 'source <(kubectl completion bash)' >> ~/.bash_profile
[gowatana@k8s-master-01 ~]$ echo 'source <(kubeadm completion bash)' >> ~/.bash_profile

以上、OL7 で Kubernetes の Bash 補完を利用できるようにする話でした。

0 件のコメント:

コメントを投稿