注:作者居住在韩国,部分内容包含韩国特有的背景。

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