3.9. 构建环境

与 Pod 环境变量一样,可以定义构建环境变量,在使用 Downward API 时引用其他源或变量。需要注意一些例外情况。

您也可以使用 oc set env 命令管理 BuildConfig 中定义的环境变量。

注意

不支持在构建环境变量中使用 valueFrom 引用容器资源,因为这种引用在创建容器之前解析。

3.9.1. 使用构建字段作为环境变量

您可以注入构建对象的信息,使用 fieldPath 环境变量源指定要获取值的字段的 JsonPath

注意

Jenkins Pipeline 策略不支持将 valueFrom 语法用于环境变量。

流程

  • fieldPath 环境变量源设置为您有兴趣获取其值的字段的 JsonPath

    env:
      - name: FIELDREF_ENV
        valueFrom:
          fieldRef:
            fieldPath: metadata.name

3.9.2. 使用 secret 作为环境变量

您可以使用 valueFrom 语法,将 secret 的键值作为环境变量提供。

流程

  • 要将 secret 用作环境变量,请设置 valueFrom 语法:

    apiVersion: v1
    kind: BuildConfig
    metadata:
      name: secret-example-bc
    spec:
      strategy:
        sourceStrategy:
          env:
          - name: MYVAL
            valueFrom:
              secretKeyRef:
                key: myval
                name: mysecret