gpt4 book ai didi

spring-boot - Spring Boot bootstrap.yml 中的 Openshift secret

转载 作者:行者123 更新时间:2023-12-02 11:48:35 25 4
gpt4 key购买 nike

这就是我的 bootstrap.yml 的样子。

spring:
cloud:
config:
uri: http://xxxx.com
username: ****
password: ****
vault:
host: vault-server
port: 8200
scheme: http
authentication: token
token: ${VAULT_ROOT_TOKEN}
application:
name: service-name
management:
security:
enabled: false

当我在部署配置中将 secret 配置为 ENV 变量时,应用程序正在启动 – OSE,如下所示。
   name: VAULT_ROOT_TOKEN
value: *********

但是 将 secret 配置为 ENV 变量并从 OSE secret 中获取值不起作用 .
name: VAULT_ROOT_TOKEN
valueFrom:
secretKeyRef:
name: vault-token
key: roottoken

我得到的错误是
org.springframework.vault.VaultException: Status 400 secret/service-name/default: 400 Bad Request: missing required Host header

在这种情况下感到惊讶,E NV 变量在容器/POD 中工作,但在引导过程中无法获取 .
env | grep TOKEN
VAULT_ROOT_TOKEN=********

我在 OSE 中的 secret 配置
oc describe secret vault-token
Name: vault-token
Namespace: ****
Labels: <none>
Annotations: <none>

Type: Opaque

Data
====
roottoken: 37 bytes

我的部署配置中缺少什么或 OSE 中的 secret ?如何配置获取 key 作为 ENV 变量并注入(inject) bootstrap.yml 文件?

注意:我无法将 Vault 配置移出 bootstrap.yml。

Openshift 企业信息:
Version:
OpenShift Master:v3.2.1.31
Kubernetes Master:v1.2.0-36-g4a3f9c5

最佳答案

最后我能够做到这一点。这就是我所做的

提供 token 作为参数:

java $JAVA_OPTS -jar -Dspring.cloud.vault.token=${SPRING_CLOUD_VAULT_TOKEN} service-name.jar

这是我的配置的样子:

部署配置:
- name: SPRING_CLOUD_VAULT_TOKEN
valueFrom:
secretKeyRef:
name: vault-token
key: roottoken

引导文件:
spring:
cloud:
config:
uri: http://xxxx.com
username: ****
password: ****
vault:
host: vault-server
port: 8200
scheme: http
authentication: token
token: ${SPRING_CLOUD_VAULT_TOKEN}
application:
name: service-name
management:
security:
enabled: false

感谢提供意见的同事。

关于spring-boot - Spring Boot bootstrap.yml 中的 Openshift secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51400677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com