我想将我的生产 Kubernetes 集群的 letencrypt 证书传输到我正在为 GitLab CI 中的 e2e 测试启动的集群。
我的目标是避免将证书存储在 CI 中并通过环境注入它,因为这样我需要手动更新并始终将其保存在那里,而不仅仅是 CI 作业的时间。我假设我无法为 e2e 集群的域创建证书,因为生产集群一直在运行。
我正在导出入口使用的密钥,kubectl get -o yaml
并将其导入到新创建的集群中kubectl apply
。这适用于microk8s
本地。
我的生产和 e2e 集群位于 Google Cloud 中。入口没有获得 IP 外部地址,因为他们在抱怨Issuer resource "letsencrypt-prod" not found
。我需要 IP 地址来配置名称解析,以便测试指向 e2e 集群而不是生产。
我尝试添加一个
apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# The ACME server URL
server: https://acme-staging.api.letsencrypt.org/directory
# Email address used for ACME registration
email: admin@mereet.com
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt-prod
# Enable the HTTP-01 challenge provider
http01: {}
进入创建入口的命名空间和cert-manager
安装的命名空间。
缺少的颁发者指的是什么以及如何使已经从生产到本地的证书转移工作。