註:筆者居住於韓國,部分內容包含韓國特有的背景。

1. 前言

Sealed Secrets 整體上都不錯,但有一個問題:每次設定時都要建立 Secrets.yaml,再用 CLI 轉換為 Sealed Secrets,然後加入 Git,這個過程實在非常繁瑣。

為了讓這個過程更輕鬆,我打算使用 kubeseal-webgui 簡單地建立一個 Web UI。

Kubeseal webui,可以在網頁上簡單設定 Secret 並取得 Sealed Secrets。

2. 安裝

我們再次使用 ArgoCD 來簡單安裝吧!

modules/sealed-secrets-system/kubeseal-webgui.yaml

yaml
# https://github.com/Jaydee94/kubeseal-webgui
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kubeseal-webgui
  namespace: argocd
spec:
  destination:
    namespace: sealed-secrets-system
    server: 'https://kubernetes.default.svc'
  source:
    repoURL: 'https://jaydee94.github.io/kubeseal-webgui'
    targetRevision: 5.1.4
    chart: kubeseal-webgui
    helm:
      parameters:
        - name: api.url
          value: https://<web ui를 사용할 subdomain 예시:seal.lemon.com>
        - name: sealedSecrets.autoFetchCert
          value: 'true'
        - name: sealedSecrets.controllerName
          value: sealed-secrets
        - name: sealedSecrets.controllerNamespace
          value: sealed-secrets-system
  sources: []
  project: default

modules/sealed-secrets-system/ingress.yaml

yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: sealed-secrets-ingress
  namespace: sealed-secrets-system
spec:
  tls:
    certResolver: le
  routes:
    - kind: Rule
      match: Host(`<web ui를 사용할 subdomain 예시:seal.lemon.com>`)
      services:
        - name: kubeseal-webgui
          port: 8080

如有需要,可參考上一篇文章 來新增 Basic Auth。

之後就可以透過該 UI 輕鬆建立 Sealed Secrets 了!