ten7.digitalocean_kubeconfig
Rol de Ansible: digitalocean_kubeconfig
Obtiene el kubeconfig para un clúster de Kubernetes de DigitalOcean.
Al trabajar con Kubernetes de DigitalOcean en la automatización, necesitas un método para obtener dinámicamente el kubeconfig.yaml. Este archivo se actualiza periódicamente por parte de DigitalOcean como medida de seguridad. Este rol utiliza la API de DigitalOcean para obtener el kubeconfig de manera dinámica, lo que te permite aprovisionar los clústeres con un nuevo conjunto de credenciales cada vez.
Requisitos
- Debes tener una clave API de DigitalOcean.
- La API de DigitalOcean debe ser accesible.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
).
Token API
digitalocean_api_token: '1234567890abscdefg'
Tu token API de Digital Ocean.
Obtener el kubeconfig
digitalocean_kubeconfig:
cluster: 'mi_nombre_de_clúster'
kubeconfig: '/ruta/para/guardar/kubeconfig.yaml'
donde:
- cluster: El nombre del clúster
- kubeconfig: La ruta para guardar el archivo kubeconfig.
Dependencias
Ninguna.
Ejemplo de Playbook
Un uso simple podría ser:
---
- hosts: cluster
vars:
digitalocean_api_token: "1234567890abscdefg"
digitalocean_kubeconfig:
cluster: "mi_nombre_de_clúster"
kubeconfig: "/ruta/para/guardar/kubeconfig.yaml"
roles:
- socketwench.digitalocean_kubeconfig
tasks:
- name: Aplicar nuestras definiciones
k8s:
kubeconfig: "/ruta/para/guardar/kubeconfig.yaml"
src: "/ruta/a/mis/definiciones_k8s.yml"
A veces, quieres escribir el kubeconfig en un archivo o directorio temporal. En ese caso, puedes utilizar include_role o import_role en Ansible 2.x, proporcionando las variables del rol dentro de la tarea de importación:
---
- hosts: cluster
vars:
digitalocean_api_token: '1234567890abscdefg'
tasks:
- name: Crear un directorio temporal para almacenar archivos necesarios para la ejecución
tempfile:
state: directory
register: _run_temp_dir
- name: Obtener el archivo kubeconfig.
import_role:
name: socketwench.digitalocean_kubeconfig
vars:
digitalocean_kubeconfig:
cluster: "mi_nombre_de_clúster"
kubeconfig: "{{ _run_temp_dir.path }}/kubeconfig.yaml"
- name: Aplicar nuestras definiciones
k8s:
kubeconfig: "{{ _run_temp_dir.path }}/kubeconfig.yaml"
src: "/ruta/a/mis/definiciones_k8s.yml"
Licencia
GPL v3
Información del Autor
Este rol fue creado por socketwench para TEN7.
Gets the kubeconfig file for clusters on DigitalOcean
ansible-galaxy install ten7.digitalocean_kubeconfig