Kubernetes cluster'ımızla konuşmak için kullandığımız komut "kubectl", bash ve zsh için otomatik tamamlama desteği sağlamaktadır. Bu da cluster'ımızı yönetirken bizi gereksiz yazı yazmaktan kurtarıp hızlıca tab tuşunu kullanarak otomatik tamamlamasını sağlıyor. Örneğin "kubectl -n" yazıp tab tuşuna bastığımızda namespace'lerimizi listeliyor veya birkaç benzersiz harf yazdığımızda otomatik tamamlıyor ve bunu tüm parametrelerde kullanabiliyoruz. Hatta "kubectl" yerine "k" bile kullanabiliyoruz. Hayydi gelin hızlıca bunu nasıl yaptığımıza bir bakalım.
Öncelikle apt-get install bash-completion
veya yum install bash-completion
gibi basit bir komutla shell ekranında bash-completion yüklemesi yapıyoruz. (Farklı bir işletim sistemi kullanıyor iseniz buradan nasıl yükleneceğini kontrol edebilirsiniz.)
Bu komutlar /usr/share/bash-completion/bash_completion altına gerekli script'i oluşturmaktadır. Paket yöneticimize bağlı olarak bunu ~/.bashrc dosyamızın içine eklememiz gerekmektedir.
vi ~/.bashrc
komutu ile dosyanın içerisine girerek uygun bir yere source /usr/share/bash-completion/bash_completion
yazıyoruz. Akabinde shell ekranımızı yeniden başlatıp type _init_completion
yazdığımızda script'in çıktısını alabiliyorsak işlem tamam, kurulumu doğru bir şekilde yaptık demektir.
Şimdi ise tüm shell oturumlarında kubectl'in otomatik tamamlamasını sağlayacağız. Bunu yapmanın iki yolu vardır:
- İlki ~/.bashrc dosyamıza daha önceki adımda yaptığımız gibi aşağıdaki satırı eklemek:
echo 'source <(kubectl completion bash)' >>~/.bashrc
- İkincisi de script'imizi /etc/bash_completion.d klasörü altına eklemek, bunu da aşağıdaki komut ile yapabilirsiniz:
kubectl completion bash >/etc/bash_completion.d/kubectl
Bunlara ek olarak bir de "kubectl" komutu yerine "k" komutunu kullanabilmek için aşağıdaki komutlar ile bir alias tanımlayabiliriz.
echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc
İşlemlerin akabinde komut satırınızı yeniden başlattığınızda kubectl otomatik tamamlıyor olacaktır. Emin olun, artık hayat daha kolay! 🙂
Selamlar, ben Sedat. PayCore bünyesinde DevOps olarak çalışıyorum. Linux sistemler, Docker & Kubernetes, DevSecOps ve cloud üzerinde çalışmayı seviyorum. Hobi olarak da loading ekranlarında müzik yapıyorum. 🙂