Почему завершение kubectl bash не работает в macOS/OS X?

Я следовал инструкциям по установке завершения Bash, данным kubectl completion -h:

  1. Я установил bash-completion через Homebrew
  2. In my ~/.bashrc, I first source bash-completion then output from the completion kubectl subcommand:
    • source $(brew --prefix)/etc/bash_completion
    • source <(kubectl completion bash)

Имея это на месте, я запускаю новую оболочку, но завершение не работает. Как заставить его работать?


person Dmitry Minkovsky    schedule 21.07.2017    source источник


Ответы (3)


После того, как Homebrew установил bash-completion, кажется, что его дополнения должны находиться в $(brew --prefix)/etc/bash_completion.d. Там вы найдете множество других дополнений, которые идут в комплекте. Чтобы добавить завершение для kubectl:

$ kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl

Это помогло мне.

person Dmitry Minkovsky    schedule 21.07.2017

В ответной форме Ahmet B исправление говорит добавить следующее в ваш файл .bashrc:

export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"

Однако установка доработок 2:

brew install bash-completion@2

заканчивается сообщением о добавлении строки экспорта, если вы ХОТИТЕ ИСПОЛЬЗОВАТЬ дополнения V1. Удаление этого экспорта позволило мне выполнить завершение kubectl.

person David J Arnone    schedule 13.06.2019

См. раздел «В macOS с использованием bash» документации kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/#on-macos-using-bash Я недавно добавил их, так что они должны быть актуальными. Если нет, отправьте запрос на включение, чтобы исправить это.

Также: https://blog.fabric8.io/enable-bash-completion-for-kubernetes-with-kubectl-506bc89fe79e

person Ahmet Alp Balkan    schedule 21.07.2017