NodeJs 在从 kubernetes yaml 文件中读取秘密值时抛出未定义的错误
NodeJs throwing undefined error while reading the secret value from kubernetes yaml file
我需要从 NodeJs 读取 Kubernetes 键和值。但是我收到一个未定义的错误。
请找到下面的代码。
deployment.yaml
containers:
- name: server
env:
-name: CLIENT_DEV
valueFrom:
secretKeyRef:
name: dev1-creds-config
key: clientId
secretKeyRef 值将在另一个 yaml 文件中可用。当 dev/local minikube 构建是 运行 时,这将被正确读取,基于我们所在的区域 运行.
secrets.enc.yaml
apiVersion: v1
kind: Secret
metadata:
name: dev1-creds-config
type: Opaque
data:
clientId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
username: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
上面的包含加密值。这是为了确保安全而创建的。
NodeJs的index.js文件读取值
require("dotenv").config();
const express = require("express");
const app = express();
console.log("value.."+processs.env.CLIENT_DEV);
const host = customHost || "localhost";
app.listen(port,host,err => {
if(err){
return logger.error(err.message);
}
logger.appStarted("3000", host);
});
console.log("value.."+processs.env.CLIENT_DEV);
这一行给我“未定义”
我的查询是,
- 是否可以使用 Node js 从部署 yaml 中获取 yaml 加密值
- 是否可以在Node Js的.env文件中配置yaml键值
我无法从我的节点 js 中的 yaml 文件中读取这个秘密值。
请帮我解决这个问题。
提前致谢。
检查你的 deployment.yaml 中的缩进,它应该是这样的:
containers:
- name: server
env:
- name: CLIENT_DEV
valueFrom:
secretKeyRef:
name: dev1-creds-config
key: clientId
在你的问题中,缩进不正确。不过只要你的nodejspods都运行就好了,我看你刚才贴的不是很准确
其次,您的 JavaScript 代码中有一个拼写错误 processs
。更正行:
console.log("value.."+process.env.CLIENT_DEV);
验证所有这些后,您的 NodeJs 应用程序将读取 Kubernetes 秘密值。
我需要从 NodeJs 读取 Kubernetes 键和值。但是我收到一个未定义的错误。
请找到下面的代码。
deployment.yaml
containers:
- name: server
env:
-name: CLIENT_DEV
valueFrom:
secretKeyRef:
name: dev1-creds-config
key: clientId
secretKeyRef 值将在另一个 yaml 文件中可用。当 dev/local minikube 构建是 运行 时,这将被正确读取,基于我们所在的区域 运行.
secrets.enc.yaml
apiVersion: v1
kind: Secret
metadata:
name: dev1-creds-config
type: Opaque
data:
clientId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
username: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
上面的包含加密值。这是为了确保安全而创建的。
NodeJs的index.js文件读取值
require("dotenv").config();
const express = require("express");
const app = express();
console.log("value.."+processs.env.CLIENT_DEV);
const host = customHost || "localhost";
app.listen(port,host,err => {
if(err){
return logger.error(err.message);
}
logger.appStarted("3000", host);
});
console.log("value.."+processs.env.CLIENT_DEV);
这一行给我“未定义”
我的查询是,
- 是否可以使用 Node js 从部署 yaml 中获取 yaml 加密值
- 是否可以在Node Js的.env文件中配置yaml键值
我无法从我的节点 js 中的 yaml 文件中读取这个秘密值。
请帮我解决这个问题。
提前致谢。
检查你的 deployment.yaml 中的缩进,它应该是这样的:
containers:
- name: server
env:
- name: CLIENT_DEV
valueFrom:
secretKeyRef:
name: dev1-creds-config
key: clientId
在你的问题中,缩进不正确。不过只要你的nodejspods都运行就好了,我看你刚才贴的不是很准确
其次,您的 JavaScript 代码中有一个拼写错误 processs
。更正行:
console.log("value.."+process.env.CLIENT_DEV);
验证所有这些后,您的 NodeJs 应用程序将读取 Kubernetes 秘密值。