ten7.digitalocean_kubeconfig

Ansible 角色: digitalocean_kubeconfig

获取 DigitalOcean Kubernetes 集群的 kubeconfig。

在自动化操作 DigitalOcean Kubernetes 时,你需要一种动态获取 kubeconfig.yaml 的方法。这个文件会定期由 DigitalOcean 更新,作为安全措施。这个角色使用 DigitalOcean API 动态获取 kubeconfig,让你每次都能使用一套新的凭证来访问集群。

需求

  • 你必须拥有一个 DigitalOcean API 密钥。
  • 必须能访问 DigitalOcean API。

角色变量

可用的变量如下所示,并包含默认值(见 defaults/main.yml)。

API 令牌

digitalocean_api_token: '1234567890abscdefg'

你的 DigitalOcean API 令牌。

获取 kubeconfig

digitalocean_kubeconfig:
  cluster: 'my_cluster_name'
  kubeconfig: '/path/to/save/kubeconfig.yaml'

其中:

  • cluster: 集群名称
  • kubeconfig: 保存 kubeconfig 文件的路径。

依赖

无。

示例剧本

一个简单的用法如下:

---
- 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 写入临时文件或目录。这种情况下,你可以在 Ansible 2.x 中使用 include_role 或 import_role,将角色变量提供给导入任务:

---
- 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

作者信息

这个角色是 socketwenchTEN7 创建的。

关于项目

Gets the kubeconfig file for clusters on DigitalOcean

安装
ansible-galaxy install ten7.digitalocean_kubeconfig
许可证
Unknown
下载
6.4k
拥有者
We are a digital agency that builds, rescues and cares for Drupal sites. Our mission is to Make Things That Matter.