0

我必须使用 api 登录 Openshift,我在 deployment.yaml 文件中提到了 apikey,如下所示:

    apiVersion: extensions/v1beta1
kind: Deployment
metadata:
 name: abc
spec:
 replicas: 1
 template:
   metadata:
     labels:
       app: abc
       version: v1
   spec:
     containers:
      - name: chaos
        image: abcusr/abc:v1
        imagePullPolicy: Always
        env:
         - name: HOST
           value: $host
         - name: NAMESPACE
           value: $namespace
         - name: APIKEY
           value: $apikey

这 3 个环境变量在 travis 中设置为环境变量。但是当我运行构建时,我的部署没有成功。它给出了错误:

 error: --server and passing the server URL as an argument are mutually exclusive

但是当我对所有这些值进行硬编码时,它就会起作用。

4

1 回答 1

0

env 变量($host 等)之前没有定义,因为env 变量中的被描述为:

变量引用 $(VAR_NAME) 使用容器中先前定义的环境变量和任何服务环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。$(VAR_NAME) 语法可以用双 $$ 转义,即:$$(VAR_NAME)。无论变量是否存在,转义引用都不会被扩展。默认为“”。

但是,将模板与部署(以及您的应用程序的所有其他对象)和所有此类变量(如模板的参数)一起使用是一种更好的方法。因此,您可以在流程模板阶段设置该参数。

于 2020-02-17T15:32:16.387 回答