2

在使用Ansible Playbook Bundles时,秘密在https://github.com/openshift/ansible-service-broker/blob/master/docs/secrets.md中指定

但是,多行机密似乎无法正常工作。

如果通过create_broker_secret.py添加秘密,多行秘密将在解析为剧本包参数时将其换行符更改为空格。

如果手动添加秘密,如下所示:

---
apiVersion: v1
kind: Secret
metadata:
    name: test
    namespace: openshift-automation-service-broker
stringData:
    "test1": "test1"
    "test2": "test2"
    "test_multiline": |-
      -----BEGIN RSA PRIVATE KEY-----
      <FIRST LINE OF THE SSH KEY>
      <SECOND LINE OF THE SSH KEY>

Ansible Playbook Bundle 在加载秘密 YAML 文件时会看到一个错误,就好像它使用换行符来分隔秘密一样:

ERROR! Syntax Error while loading YAML.
  could not find expected ':'
The error appears to have been in '/tmp/secrets': line 6, column 1, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
<FIRST LINE OF THE SSH KEY>
<SECOND LINE OF THE SSH KEY>
^ here

使用 SSH 密钥时,这个问题非常令人沮丧。

您知道如何将多行机密与 Ansible Broker 一起使用吗?

编辑:

我注意到 Ansible Playbook Bundle 代码似乎存在错误。

https://github.com/ansibleplaybookbundle/apb-base/blob/cc949ecfeee2e84bd626c73b4cbc54d496fc6738/files/usr/bin/entrypoint.sh#L48

for key in ${mounted_secrets} ; do
      for file in $(ls ${SECRETS_DIR}/${key}/..data); do
        echo "$file: $(cat ${SECRETS_DIR}/${key}/..data/${file})" >> /tmp/secrets
      done
done

正如在这段代码中看到的那样,挂载的秘密只是被复制而cat忽略了其中一些可能是多行字符串块的事实。

欢迎任何错误解决方法。

4

0 回答 0