kubectl

ansible-role-kubectl

Устанавливает утилиту командной строки kubectl, используемую для взаимодействия с API-сервером Kubernetes.

Версии

Я отмечаю каждое обновление и стараюсь следовать семантическому версионированию. Если вы хотите использовать данную роль, я рекомендую обратить внимание на последнюю метку. Главная ветка в основном предназначена для разработки, в то время как метки обозначают стабильные версии. Но, в общем, я также стараюсь поддерживать главную ветку в хорошем состоянии. Метка 23.0.2+1.28.5 означает, что это версия 23.0.2 этой роли, а версия клиентского бинарного файла kubectl1.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

Информация об авторе

TauCeti Blog

О проекте

Installs kubectl command line utility used to interact with the Kubernetes API Server.

Установить
ansible-galaxy install githubixx/ansible-role-kubectl
Лицензия
gpl-3.0
Загрузки
9464
Владелец
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)