Kubernetes - cert-manager - ошибка при создании эмитента, использующего Hashicorp Vault - PullRequest
1 голос
/ 21 апреля 2020

Я создал кластер хранилища, в котором используются самозаверяющие сертификаты OpenSSL, сгенерированные terraform- aws -vault module

При попытке создать эмитента появляется следующая ошибка ресурс в Kubernetes, который использует этот кластер Vault.

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

Я использовал эту команду для шифрования файла baseBundle base64 -

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

Любая помощь по этому вопросу высоко ценится.

1 Ответ

1 голос
/ 22 апреля 2020

Это, вероятно, связано с ожидаемым форматом в файле yaml для атрибута caBundle. Я не мог найти документированную схему для этого. Но я нашел пример https://github.com/kubernetes/kubernetes/issues/61171. Кажется, что caBundle берет одну строку строки, которая является base64. Я проверил это, и это работает для меня.

Это должно работать, если вы поместите весь кодированный в base64 файл в одну строку и поместите его в caBundle. Обратитесь к ссылке, размещенной для примера.

...