Kubernetes - 证书管理器 - 创建使用 Hashicorp Vault 的颁发者时出错

Kubernetes - cert-manager - error while creating the issuer that uses Hashicorp Vault

我创建了一个使用由 terraform-aws-vault 模块

生成的 OpenSSL 自签名证书的保管库集群

当我尝试在使用此 Vault 集群的 Kubernetes 中创建颁发者资源时出现以下错误。

validation failure list:
spec.vault.caBundle in body must be of type byte: "../certs/vault-cabundle.pem"

这是我的发行人 yaml 文件

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: vault-clusterissuer
spec:
  vault:
    path: pki_int/sign/cert-manager
    server: https://vault-cluster.example.com:8200
    caBundle: /etc/ssl/certs/istio-ingress/vault-cabundle.pem
    auth:
      appRole:
        path: approle
        roleId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        secretRef:
          name: cert-manager-vault-approle
          key: secretId

我已经使用这个命令对caBundle文件进行base64加密-

openssl base64 -in cabundle.pem -out vault-cabundle.pem

非常感谢对此的任何帮助。

这似乎是由于属性 caBundle 的 yaml 文件中的预期格式所致。我找不到它的文档化架构。但是,我找到了一个例子 https://github.com/kubernetes/kubernetes/issues/61171。 caBundle 似乎采用了一行 base64 字符串。我已经测试过了,它对我有用。

如果您将整个 base64 编码文件放在一行中并将其放在 caBundle 上,它应该可以工作。请参阅 link 发布的示例。