banner
NEWS LETTER

Helm部署Drone-Kubernetes-Secrets

Scroll down

本文作者:丁辉

Helm部署Drone-Kubernetes-Secrets

使用文档

介绍

Drone-Kubernetes-Secrets 是一个用于管理 Drone 与 Kubernetes 之间 Secrets 交互的组件。它允许用户在 Drone CI/CD 流程中使用 Kubernetes 集群中的 Secrets,以便更安全地访问敏感数据,例如密码、令牌或 SSH 密钥。

开始部署

  1. 添加 Drone Helm Chart 存储库

    1
    2
    helm repo add drone https://charts.drone.io
    helm repo update
  2. 创建命名空间

    1
    kubectl create namespace drone
  3. 生成密钥

    1
    openssl rand -hex 16
  4. 编写模版文件

    1
    vi drone-kubernetes-secrets-values.yaml

    内容如下

    1
    2
    3
    4
    5
    rbac:
    secretNamespace: drone
    env:
    SECRET_KEY: 填入密钥
    KUBERNETES_NAMESPACE: drone
  5. 启动

    1
    helm install drone-kubernetes-secrets drone/drone-kubernetes-secrets -f drone-runner-kube-values.yaml -n drone

修改Runner-Kube配置

  1. 编辑 drone-runner-kube-values.yaml 文件

    1
    vi drone-runner-kube-values.yaml

    env 下添加

    1
    2
    3
    4
    5
    env:
    DRONE_SECRET_PLUGIN_ENDPOINT: http://drone-kubernetes-secrets:3000
    DRONE_SECRET_PLUGIN_TOKEN: 此处跟SECRET_KEY一致
    # 如有需要开启 DEBUG 调试
    # DRONE_DEBUG: true
  2. 更新 drone-runner-kube

    1
    helm upgrade drone-runner-kube drone/drone-runner-kube -f drone-runner-kube -n drone

卸载

  1. 卸载 drone-kubernetes-secrets

    1
    helm uninstall drone-kubernetes-secrets -n drone
  2. 删除命名空间

    1
    kubectl delete namespace drone

使用方法

  1. 创建 Secret

    1
    vi drone-secret.yaml

    内容如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    apiVersion: v1
    kind: Secret
    type: Opaque
    data:
    username: YWRtaW4K
    password: YWRtaW4K
    metadata:
    name: build-secret
    namespace: drone

    部署

    1
    kubectl apply -f drone-secret.yaml
  2. 编写 .drone.yml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    kind: pipeline
    type: kubernetes
    name: secret-demo

    steps:
    - name: hello
    image: busybox
    # 环境变量
    environment:
    USERNAME:
    from_secret: USERNAME
    PASSWORD:
    from_secret: PASSWORD
    # 执行命令
    commands:
    # 判断是否存在环境变量,存在则输出成功,不存在则输出失败
    - if [ -n "$USERNAME" ]; then echo "USERNAME exists"; else echo "USERNAME does not exist"; fi
    - if [ -n "$PASSWORD" ]; then echo "PASSWORD exists"; else echo "PASSWORD does not exist"; fi
    ---
    kind: secret
    name: USERNAME
    get:
    path: build-secret
    name: username
    ---
    kind: secret
    name: PASSWORD
    get:
    path: build-secret
    name: password
  3. 构建后查看结果

I'm so cute. Please give me money.

其他文章
cover
Helm部署Config-Syncer
  • 70/01/01
  • 00:00
  • Kubernetes-Helm
cover
Helm部署Docker-Registry
  • 70/01/01
  • 00:00
  • Kubernetes-Helm
目录导航 置顶
  1. 1. Helm部署Drone-Kubernetes-Secrets
    1. 1.1. 介绍
    2. 1.2. 开始部署
    3. 1.3. 修改Runner-Kube配置
    4. 1.4. 卸载
  2. 2. 使用方法
请输入关键词进行搜索