digitalocean_kubeconfig
Ansible Роль: digitalocean_kubeconfig
Получает kubeconfig для Kubernetes кластера на DigitalOcean.
При работе с Kubernetes на DigitalOcean в автоматизации вам нужен способ динамически получать kubeconfig.yaml. Этот файл периодически обновляется DigitalOcean как мера безопасности. Эта роль использует API DigitalOcean для динамического получения kubeconfig, позволяя вам развертывать кластеры с новым набором учетных данных каждый раз.
Требования
- У вас должен быть ключ API DigitalOcean.
- API DigitalOcean должен быть доступен.
Переменные Роли
Доступные переменные перечислены ниже вместе с значениями по умолчанию (см. defaults/main.yml
).
API токен
digitalocean_api_token: '1234567890abscdefg'
Ваш токен API DigitalOcean.
Получение kubeconfig
digitalocean_kubeconfig:
cluster: 'my_cluster_name'
kubeconfig: '/path/to/save/kubeconfig.yaml'
где:
- cluster: Имя кластера
- kubeconfig: Путь для сохранения файла kubeconfig.
Зависимости
Нет.
Пример Playbook
Простое использование будет следующим:
---
- hosts: cluster
vars:
digitalocean_api_token: "1234567890abscdefg"
digitalocean_kubeconfig:
cluster: "my_cluster_name"
kubeconfig: "/path/to/save/kubeconfig.yaml"
roles:
- socketwench.digitalocean_kubeconfig
tasks:
- name: Применить наши определения
k8s:
kubeconfig: "/path/to/save/kubeconfig.yaml"
src: "/path/to/my/k8s_definitions.yml"
Иногда вам нужно записать kubeconfig во временный файл или каталог. В этом случае вы можете воспользоваться include_role или import_role в Ansible 2.x, указав переменные роли в задаче импорта:
---
- hosts: cluster
vars:
digitalocean_api_token: '1234567890abscdefg'
tasks:
- name: Создать временный каталог для хранения файлов, необходимых для выполнения
tempfile:
state: directory
register: _run_temp_dir
- name: Получить файл kubeconfig.
import_role:
name: socketwench.digitalocean_kubeconfig
vars:
digitalocean_kubeconfig:
cluster: "my_cluster_name"
kubeconfig: "{{ _run_temp_dir.path }}/kubeconfig.yaml"
- name: Применить наши определения
k8s:
kubeconfig: "{{ _run_temp_dir.path }}/kubeconfig.yaml"
src: "/path/to/my/k8s_definitions.yml"
Лицензия
GPL v3
Информация об авторе
Эта роль была создана socketwench для TEN7.
ansible-galaxy install ten7/ansible-role-digitalocean-kubeconfig