我正在使用Spring Cloud Data flow进行微服务编排,并将它们部署在Kubernetes中。我的应用程序管道看起来像下面这样:Source-app--> Processor-app--> Sink-app。
我能够创建和部署流,它成功地创建部署和pods,我的管道与下面的SCDF部署器属性工作正常。
app.Source-app.deployer.kubernetes.livenessProbePath=/api/v1/actuator/health
app.Source-app.deployer.kubernetes.readinessProbePath=/api/v1/actuator/info
app.Source-app.server.port=8080
app.Processor-app.deployer.kubernetes.livenessProbePath=/api/v1/actuator/health
app.Processor-app.deployer.kubernetes.readinessProbePath=/api/v1/actuator/info
app.Processor-app.server.port=8080
app.Sink-app.deployer.kubernetes.livenessProbePath=/api/v1/actuator/health
app.Sink-app.deployer.kubernetes.readinessProbePath=/api/v1/actuator/info
app.Sink-app.server.port=8080
deployer.*.kubernetes.liveness-probe-path=/api/v1/actuator/health
deployer.*.kubernetes.readiness-probe-path=/api/v1/actuator/info
现在我的需求是,我想将上述所有配置存储在Kubernetes的ConfigMap中,并在SCDF部署器属性窗口中引用或挂载该ConfigMap。我知道我们可以使用configMapKeyRefs作为环境变量来引用(只限制字符串值),比如......。
deployer.Source-app.kubernetes.configMapKeyRefs=[{envVarName: 'LIVENESSPROBEPATH', configMapName: 'test-conf', dataKey: 'livenessProbePath }]
app.Source-app.deployer.kubernetes.livenessProbePath=$(LIVENESSPROBEPATH)
... 以此类推,每个属性...
我正在寻找类似于这样的东西,在configMap中提到所有的属性,并且在SCDF中部署流时引用或挂载该ConfigMap,然后瞧!你的所有属性都被传递给应用程序。如果有人能为我的案例提供一个解决方案,那将会有很大的帮助。
考虑你有configmap这样的东西。
apiVersion: v1
data:
USER_ID: "1"
USER_EMAIL: [email protected]
IS_DATA_ENABLED : "True"
kind: ConfigMap
metadata:
name: staging-configmap
namespace: default
你可以在部署中注入所有属性
envFrom:
- secretRef:
name: test-secret
- configMapRef:
name: staging-configmap
如果你也有秘密,你可以将秘密也挂载或注入部署及其变量集操作系统。configMapRef
它将把config-map的所有属性添加到部署中。