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

时间:2020-04-21 14:59:47

标签: kubernetes hashicorp-vault cert-manager

我创建了一个使用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

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

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

在此方面的任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

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

如果将整个base64编码的文件放在一行中,然后将其放置在caBundle上,则应该可以使用。请参阅发布的链接以获取示例。