Kubernetes 将cert manager证书从一个群集传输到另一个群集以进行e2e测试

Kubernetes 将cert manager证书从一个群集传输到另一个群集以进行e2e测试,kubernetes,ssl-certificate,gcloud,e2e-testing,cert-manager,Kubernetes,Ssl Certificate,Gcloud,E2e Testing,Cert Manager,我想将我的生产Kubernetes集群的letsencrypt证书转移到正在GitLab CI中进行e2e测试的集群 我的目标是避免将证书存储在CI中,并通过环境将其注入,因为这样我就需要手动更新,并始终将其保存在那里,而不仅仅是在CI作业期间。我假设我无法为e2e集群的域创建证书,因为生产集群一直在运行 我正在使用kubectl get-o yaml导出入口使用的秘密,并使用kubectl apply将其导入新创建的集群。这适用于microk8s本地 我的产品和e2e集群在谷歌云中。入口无法获

我想将我的生产Kubernetes集群的letsencrypt证书转移到正在GitLab CI中进行e2e测试的集群

我的目标是避免将证书存储在CI中,并通过环境将其注入,因为这样我就需要手动更新,并始终将其保存在那里,而不仅仅是在CI作业期间。我假设我无法为e2e集群的域创建证书,因为生产集群一直在运行

我正在使用
kubectl get-o yaml
导出入口使用的秘密,并使用
kubectl apply
将其导入新创建的集群。这适用于
microk8s
本地

我的产品和e2e集群在谷歌云中。入口无法获取IP外部地址,因为它们抱怨未找到
颁发者资源“letsencrypt prod”
。我需要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
的命名空间


缺少的颁发者指的是什么,以及如何使已从生产转移到本地的证书转移工作。

在生产环境和测试环境中使用相同的证书是一种糟糕的安全做法。您应该为测试环境生成一个单独的证书,并尝试自动生成证书,以实现高度自动化的端到端测试。

想要使用在prod中用于测试的同一证书听起来有些粗略。为什么不另外准备一份证书来测试呢?@AmitKumarGupta这是一个很好的观点。我想我想在自动化证书创建之前进行高度自动化的e2e测试。故意做错事是很难的:)如果你在一句话中提到这一点,我会奖励你正确的答案。好的,很高兴你走上了正确的方向。官方证书管理器备份/还原文档(包括证书)可在