我正在尝试为作业创建一个 Openshift 模板,该模板使用以下模板在模板参数中传递作业的命令行参数:
apiVersion: v1
kind: Template
metadata:
name: test-template
objects:
- apiVersion: batch/v2alpha1
kind: Job
metadata:
name: "${JOB_NAME}"
spec:
parallelism: 1
completions: 1
autoSelector: true
template:
metadata:
name: "${JOB_NAME}"
spec:
containers:
- name: "app"
image: "batch-poc/sample-job:latest"
args: "${{JOB_ARGS}}"
parameters:
- name: JOB_NAME
description: "Job Name"
required: true
- name: JOB_ARGS
description: "Job command line parameters"
Run Code Online (Sandbox Code Playgroud)
因为“args”需要是一个数组,所以我尝试使用 JSON 语法设置模板参数,例如从命令行:
oc process -o=yaml test-template -v=JOB_NAME=myjob,JOB_ARGS='["A","B"]'
Run Code Online (Sandbox Code Playgroud)
或通过 Spring Cloud Launcher OpenShift 客户端以编程方式:
OpenShiftClient client;
Map<String,String> templateParameters = new HashMap<String,String>();
templateParameters.put("JOB_NAME", jobId);
templateParameters.put("JOB_ARGS", …Run Code Online (Sandbox Code Playgroud) openshift ×1