如何在 RedHat Openshift 上读取 NodeJS 中的 Helm 值文件?

问题描述 投票:0回答:1

我创建了 NodeJS 应用程序:

const http = require('http');
const Route =require('./route.js');
//Log
const logger = require('./logger.js');

//Server
const express = require('express')
const app = express()
const port= process.env.PORT || 8080;
server = http.createServer(app)

app.use(express.json());
const password= process.env.PASS || "1234";

//endpoint
app.use(Route)

app.listen(port, ()=>{
  logger.info(`App started on port ${port}`)
}) 

此应用程序将作为容器部署在 RedHat Openshift 上,而不是 process.env。我必须使用 Helm 文件中的值。

我知道有一个专门的包可以读取yaml文件,但我不确定我们使用Openshift时是否需要它。是吗

node.js kubernetes openshift kubernetes-helm
1个回答
0
投票

保持代码不变。可以在本地开发环境中正常运行

export PASS=passw0rd
npm run dev

当你打包在容器中时,你可以在运行它进行本地测试时类似地提供一个环境变量

docker run -d -e PASS=passw0rd your-image

在 Kubernetes 中,您将在容器规范的

env:
块中传递它。如果您通过 Helm 图表部署它,那么此时您可以替换它的值。

# charts/myapp/templates/deployment.yaml
env:
  - name: PASS
    value: {{ .Values.password }}
# dev-values.yaml
password: passw0rd
helm install . myapp -f dev-values.yaml

最好也使用 Kubernetes Secret 来传递值,但这提供的额外安全性最低。

© www.soinside.com 2019 - 2024. All rights reserved.