从 kubernetes 部署读取 karate-config.js 中的环境变量

时间:2021-03-19 21:15:01

标签: kubernetes karate

我目前正在使用 Kubernetes 和 Karate 创建一个 Jenkins 作业,以使用 Cucumber 报告显示一些测试结果。我在尝试获取通过 configmap 传递到部署文件中的环境变量时遇到困难,如下所示:

部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
spec:
  
  selector:
    matchLabels:
      app: jenkins
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
        - name: jenkins
          image: url/customjenkinsimage:tag
          ports:
            - containerPort: 8080
          envFrom:
            - configMapRef:
                name: jenkins-configmap

配置映射:

kind: ConfigMap 
apiVersion: v1 
metadata:
  name: jenkins-configmap 
data:
  # pass data as environment variables 
    URL_TO_TEST: "http://www.examplewebsite.com"

我查了一下,看到有些人提到在 karate-config.js 文件中使用 karate.properties['VAR_NAME'] 并通过配置传递它,但这导致我的 jenkins 输出告诉我 'url ' Given url host1 中的部分不存在。我也尝试过 process.env(当然这不起作用,但值得一试)

我想知道是否有任何方法可以访问 karate-config.js 中的这个环境变量(或者即使我在 configmap 中传递了一个 json 对象),因为我需要它来构建一个 url 以传递给该功能用于测试。

我的空手道-config.js:

function fn() {  

    var config = {
        host1: karate.properties['URL_TO_TEST']
    };

    return config;
  }

所有这些文件都放入 /var/jenkins_home/jobs/karate_job/workspace/ 文件夹中,以使用 Shell 命令运行:cd /var/jenkins_home/jobs/karate_job/workspace/ ; java -jar karate.jar test.feature

任何帮助将不胜感激,谢谢。

0 个答案:

没有答案