在 Openshift 中安装秘密

mounting secrets in Openshift

我正在尝试将 java SpringBoot 应用程序移动到 Openshift。 我在 application.yaml 中定义了这样的密钥库文件:

platform:
  messaging:
    mq:
      keystore-path: classpath:certificates/spid_S116807_T.p12
      keystore-password: xxx
      keystore-type: pkcs12

我想如果我像这样创建 volumount 和 secret 我可以使用密钥库。 lapc-spid 包含 spid_S116807_T.p12.

          volumeMounts:
            - mountPath: /certificates
              name: lapc-spid-n3jcy
              readOnly: true
      volumes:
        - name: lapc-spid-n3jcy
          secret:
            defaultMode: 420
            secretName: lapc-spid

不幸的是,我收到以下错误:

Caused by: java.io.FileNotFoundException: class path resource [certificates/spid_S116807_T.p12] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/cs/app/app.jar!/BOOT-INF/classes!/certificates/spid_S116807_T.p12

我在这里错过了什么?我如何将机密安装到我的容器?

也许对某人有用。

我修改了 application.yaml 配置如下:

platform:
  messaging:
    mq:
      keystore-path: file:/p12/spid_S116807_T.p12
      keystore-password: xxx
      keystore-type: pkcs12

然后我将它安装到文件夹 p12

  volumeMounts:
    - mountPath: /p12
      name: lapc-spid-a168z
      readOnly: true

  volumes:
    - name: lapc-spid-a168z
      secret:
        defaultMode: 420
        secretName: lapc-spid

而且有效。