将 cert-manager 证书从一个集群转移到另一个集群以进行端到端测试
Transfer cert-manager certificate from one cluster to another for e2e tests
我想将我的生产 Kubernetes 集群的 letsencrypt 证书传输到我正在为 GitLab 中的端到端测试启动的集群 CI。
我的目标是避免将证书存储在 CI 中并通过环境注入它,因为那时我需要手动更新并始终将其保存在那里,而不仅仅是 [=30= 的时间] 工作。我假设我无法为 e2e 集群的域创建证书,因为生产集群保持 运行.
我正在使用 kubectl get -o yaml
导出入口使用的秘密,并使用 kubectl apply
将其导入新创建的集群。这适用于 microk8s
本地。
我的生产和 e2e 集群在 Google 云中。入口没有获得 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
的命名空间。
缺少的颁发者指的是什么,我怎样才能使已经从生产到本地有效的证书转移工作。
为您的生产环境和测试环境使用相同的证书是一种糟糕的安全做法。您应该为测试环境生成一个单独的证书,并希望自动生成它以实现高度自动化的端到端测试。
我想将我的生产 Kubernetes 集群的 letsencrypt 证书传输到我正在为 GitLab 中的端到端测试启动的集群 CI。
我的目标是避免将证书存储在 CI 中并通过环境注入它,因为那时我需要手动更新并始终将其保存在那里,而不仅仅是 [=30= 的时间] 工作。我假设我无法为 e2e 集群的域创建证书,因为生产集群保持 运行.
我正在使用 kubectl get -o yaml
导出入口使用的秘密,并使用 kubectl apply
将其导入新创建的集群。这适用于 microk8s
本地。
我的生产和 e2e 集群在 Google 云中。入口没有获得 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
的命名空间。
缺少的颁发者指的是什么,我怎样才能使已经从生产到本地有效的证书转移工作。
为您的生产环境和测试环境使用相同的证书是一种糟糕的安全做法。您应该为测试环境生成一个单独的证书,并希望自动生成它以实现高度自动化的端到端测试。