当前位置: 首页 > 知识库问答 >
问题:

如何用舵图拉动环境变量

公西星文
2023-03-14
...
...
    spec:
      restartPolicy: Always
      containers:
        - name: sample-app
          image: "sample-app:latest"
          imagePullPolicy: Always
          env:          
            - name: "USERNAME"
              value: "app-username"
            - name: "PASSWORD"
              value: "28sin47dsk9ik"
...
...

当我运行helm时,我如何从本地环境变量中拉取USERNAME和PASSWORD的值?

这可能吗?如果是,那我该怎么做呢?

共有1个答案

季俭
2023-03-14

您可以导出变量,并在运行helm install时使用它。

在此之前,您必须修改您的图表,以便在安装时该值可以为set

如果您已经知道如何设置模板字段,请跳过此部分。

username: root
password: password
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-auth
data:
  password: {{ .Values.password | b64enc }}
  username: {{ .Values.username | b64enc }}
...
...
    spec:
      restartPolicy: Always
      containers:
        - name: sample-app
          image: "sample-app:latest"
          imagePullPolicy: Always
          env:          
          - name: "USERNAME"
            valueFrom:
              secretKeyRef:
                key:  username
                name: {{ .Release.Name }}-auth
          - name: "PASSWORD"
            valueFrom:
              secretKeyRef:
                key:  password
                name: {{ .Release.Name }}-auth
...
...
$ export USERNAME=root-user

现在在运行helm install时使用这个变量,

$ helm install --set username=$USERNAME ./mychart

如果您以dry-run模式运行此helm install,则可以验证更改,

$ helm install --dry-run --set username=$USERNAME --debug ./mychart
[debug] Created tunnel using local port: '44937'

[debug] SERVER: "127.0.0.1:44937"

[debug] Original chart version: ""
[debug] CHART PATH: /home/maruf/go/src/github.com/the-redback/kubernetes-yaml-drafts/helm-charts/mychart

NAME:   irreverant-meerkat
REVISION: 1
RELEASED: Fri Apr 20 03:29:11 2018
CHART: mychart-0.1.0
USER-SUPPLIED VALUES:
username: root-user

COMPUTED VALUES:
password: password
username: root-user

HOOKS:
MANIFEST:

---
# Source: mychart/templates/secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: irreverant-meerkat-auth
data:
  password: password
  username: root-user
---
# Source: mychart/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: irreverant-meerkat
  labels:
    app: irreverant-meerkat
spec:
  replicas: 1
  template:
    metadata:
      name: irreverant-meerkat
      labels:
        app: irreverant-meerkat
    spec:
      containers:
      - name: irreverant-meerkat
        image: alpine
        env:
        - name: "USERNAME"
          valueFrom:
            secretKeyRef:
              key:  username
              name: irreverant-meerkat-auth
        - name: "PASSWORD"
          valueFrom:
            secretKeyRef:
              key:  password
              name: irreverant-meerkat-auth

        imagePullPolicy: IfNotPresent
      restartPolicy: Always
  selector:
    matchLabels:
      app: irreverant-meerkat

您可以看到秘密中的username的数据已更改为root-user

 类似资料:
  • 值文件得代码段. 在deployment.yaml中,当引用值时,仅设置姓氏/值,其他值将被覆盖。如何读取/设置部署文件中的所有名称/值?

  • 问题内容: 如何使用变量配置Web服务器(Linux服务器)? 如何设置使用? 问题答案: 是一些服务器和其他Java应用程序附加到执行命令的调用的标准环境变量。 例如在tomcat中,如果您定义,启动脚本将执行 如果您在Linux / OSX上运行,则可以在调用启动脚本之前通过执行以下操作来设置JAVA_OPTS: 只要打开控制台,此操作将一直持续。要使其更永久,可以将其添加到〜/ .profi

  • 问题内容: 我使用martini在Go中有一个GAE应用程序。我需要能够设置环境变量以告诉martini它应该使用生产设置进行初始化。根据Python文档,您可以在app.yaml中设置环境变量。我没有在Go docs中 看到任何有关此的内容,但我猜想它应该可以正常工作。 我需要能够将环境变量设置为,但是我只想在实际投入生产时(即)进行操作。有什么方法可以告诉您仅在非开发服务器上运行吗? 问题答案

  • 我正在使用maven作为构建工具。我设置了一个名为的环境变量。如何访问文件中的环境变量值?

  • 问题内容: 我开始研究一个项目,它使用了Github私有存储库中的一些私有模块,每当我尝试运行它时,都会出现以下错误: 验证github.com/repoURL/go- proto@v2.86.0+incompatible/go.mod:github.com/repoURL/go- proto@v2.86.0+incompatible/go.mod:阅读https://sum.golang。 or

  • 问题内容: 我的视图中有三个按钮。在viewDidLoad()中设置cornerRadus之后:我在日志中收到以下错误消息: 问题: 如何设置CG_CONTEXT_SHOW_BACKTRACE环境变量? 或者如何解决此警告? 好吧,现在我已经从消息中得到了回溯。这对我来说没有任何意义。请帮忙… 问题答案: 这是9b5中的错误:https://forums.developer.apple.com/t