kubectl
ansible-role-kubectl
Устанавливает утилиту командной строки kubectl, используемую для взаимодействия с API-сервером Kubernetes.
Версии
Я отмечаю каждое обновление и стараюсь следовать семантическому версионированию. Если вы хотите использовать данную роль, я рекомендую обратить внимание на последнюю метку. Главная ветка в основном предназначена для разработки, в то время как метки обозначают стабильные версии. Но, в общем, я также стараюсь поддерживать главную ветку в хорошем состоянии. Метка 23.0.2+1.28.5
означает, что это версия 23.0.2
этой роли, а версия клиентского бинарного файла kubectl
— 1.28.5
. Если само содержание роли изменится, число перед +
увеличится. Если изменится версия Kubernetes, число после +
увеличится. Это позволяет маркировать исправления ошибок и новые основные версии роли во время её разработки для конкретного релиза Kubernetes.
Журнал изменений
См. CHANGELOG
Переменные роли
# Версия "kubectl" для установки
kubectl_version: "1.29.3"
# По умолчанию "binary" будет загружать "kubectl" как бинарный файл. Этот файл
# примерно в 2.5 раза больше, чем файл ".tar.gz". Файл tarball нужно будет распаковать
# сначала с помощью роли после загрузки, и он меньше.
#
# Если вы укажете "binary", бинарный файл "kubectl" будет загружен. В
# отличие от tarball, бинарный файл примерно в 2.5 раза больше, но его
# не нужно распаковывать с помощью этой роли.
#
# Если размер загружаемого файла важен для вас (например, медленная загрузка или загрузка
# по мобильной сети), оставайтесь с "archive". В противном случае "binary" может быть вариантом.
kubectl_download_filetype: "binary"
#
# SHA512 контрольная сумма файла "kubernetes-client-linux-amd64.tar.gz"
# (см. https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#client-binaries)
kubectl_checksum_archive: "sha512:c9cc7ab9e3aa776f2daab3a9e10ee78d57d0c081ef43f8032de36a61c6425ba527d5df92611b058672be0975a6b97ad3f3a169e282c26275d2c0e59e1f9b1173"
#
# SHA512 контрольная сумма бинарного файла. Обычно нет необходимости её менять.
# Дополнительная информация:
# - https://kubernetes.io/releases/download/#binaries
# - https://www.downloadkubernetes.com/
kubectl_checksum_binary: "sha512:https://cdn.dl.k8s.io/release/v{{ kubectl_version }}/bin/{{ kubectl_os }}/{{ kubectl_arch }}/kubectl.sha512"
# Куда установить бинарный файл "kubectl"
kubectl_bin_directory: "/usr/local/bin"
# Директория для хранения архива kubectl
kubectl_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"
# Владелец бинарного файла "kubectl"
kubectl_owner: "root"
# Группа бинарного файла "kubectl"
kubectl_group: "root"
# Указывает разрешения для бинарного файла "kubectl"
kubectl_binary_mode: "0755"
# Операционная система, на которой должен работать "kubectl"
kubectl_os: "linux" # используйте "darwin" для MacOS X, "windows" для Windows
# Архитектура процессора, на которой должен работать "kubectl"
kubectl_arch: "amd64" # другие возможные значения: "386","arm64","arm","ppc64le","s390x"
Тестирование
Эта роль имеет небольшую тестовую настройку, которая создается с использованием molecule. Чтобы запустить тесты, следуйте руководству по установке molecule. Также убедитесь, что демон Docker запущен на вашей машине.
Предполагая, что Docker уже установлен, вам нужны как минимум два пакета Python:
pip3 install --user molecule
pip3 install --user molecule-docker
После этого можно запустить molecule:
molecule converge
Это настроит несколько контейнеров Docker с Ubuntu 20.04/22.04 и Debian 11/12 с установленным kubectl
. Чтобы проверить, что все работает:
molecule verify
Чтобы очистить, выполните
molecule destroy
Пример Playbook
- hosts: your-host
roles:
- githubixx.kubectl
Лицензия
GNU GENERAL PUBLIC LICENSE Version 3
Информация об авторе
Installs kubectl command line utility used to interact with the Kubernetes API Server.
ansible-galaxy install githubixx/ansible-role-kubectl