我创建了一个使用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
在此方面的任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
这似乎是由于yaml文件中属性caBundle的预期格式。我找不到它的文档化架构。但是,我找到了一个示例https://github.com/kubernetes/kubernetes/issues/61171。该caBundle似乎采用的是base64字符串的单行。我已经测试过了,对我有用。
如果将整个base64编码的文件放在一行中,然后将其放置在caBundle上,则应该可以使用。请参阅发布的链接以获取示例。