ten7.digitalocean_kubeconfig
Rôle Ansible : digitalocean_kubeconfig
Récupère le kubeconfig pour un cluster Kubernetes sur DigitalOcean.
Lorsque vous travaillez avec Kubernetes sur DigitalOcean dans le cadre de l'automatisation, vous avez besoin d'une méthode pour obtenir dynamiquement le fichier kubeconfig.yaml. Ce fichier est régulièrement réinitialisé par DigitalOcean pour des raisons de sécurité. Ce rôle utilise l'API de DigitalOcean pour obtenir le kubeconfig de manière dynamique, vous permettant d'approvisionner des clusters avec un nouvel ensemble de credentials à chaque fois.
Exigences
- Vous devez disposer d'une clé API DigitalOcean.
- L'API DigitalOcean doit être accessible.
Variables de Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
).
Jeton API
digitalocean_api_token: '1234567890abscdefg'
Votre jeton API Digital Ocean.
Obtention du kubeconfig
digitalocean_kubeconfig:
cluster: 'nom_de_mon_cluster'
kubeconfig: '/chemin/pour/sauvegarder/kubeconfig.yaml'
où :
- cluster : Le nom du cluster
- kubeconfig : Le chemin pour sauvegarder le fichier kubeconfig.
Dépendances
Aucune.
Exemple de Playbook
Une utilisation simple serait :
---
- hosts: cluster
vars:
digitalocean_api_token: "1234567890abscdefg"
digitalocean_kubeconfig:
cluster: "nom_de_mon_cluster"
kubeconfig: "/chemin/pour/sauvegarder/kubeconfig.yaml"
roles:
- socketwench.digitalocean_kubeconfig
tasks:
- name: Appliquer nos définitions
k8s:
kubeconfig: "/chemin/pour/sauvegarder/kubeconfig.yaml"
src: "/chemin/vers/mes_definitions_k8s.yml"
Parfois, vous souhaitez écrire le kubeconfig dans un fichier ou un répertoire temporaire. Dans ce cas, vous pouvez utiliser include_role ou import_role dans Ansible 2.x, en fournissant les variables du rôle dans la tâche d'importation :
---
- hosts: cluster
vars:
digitalocean_api_token: '1234567890abscdefg'
tasks:
- name: Créer un répertoire temporaire pour stocker les fichiers nécessaires à l'exécution
tempfile:
state: directory
register: _run_temp_dir
- name: Obtenir le fichier kubeconfig.
import_role:
name: socketwench.digitalocean_kubeconfig
vars:
digitalocean_kubeconfig:
cluster: "nom_de_mon_cluster"
kubeconfig: "{{ _run_temp_dir.path }}/kubeconfig.yaml"
- name: Appliquer nos définitions
k8s:
kubeconfig: "{{ _run_temp_dir.path }}/kubeconfig.yaml"
src: "/chemin/vers/mes_definitions_k8s.yml"
Licence
GPL v3
Informations sur l'Auteur
Ce rôle a été créé par socketwench pour TEN7.
Gets the kubeconfig file for clusters on DigitalOcean
ansible-galaxy install ten7.digitalocean_kubeconfig