注:筆者は韓国在住のため、本文には韓国特有の文脈が含まれることがあります。

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を作成できます!