• 沒有找到結果。

变量GCS_DATA_PVC用于代表每个环境关联的OBS桶,便于挂载常用的对象存储桶。

须知

GCS_DATA_PVC变量在workflow语法中,挂卷的volumes字段内可用。

语法

volumes:

genobs:

mount_path: /obs #挂载到容器内的路径 mount_from:

pvc: '${GCS_DATA_PVC}' #内置变量,代表执行流程的环境所关联的OBS桶

解释

容器挂载共享存储是可以使用任意的PVC的,提供这个内置变量是为了省去用户定义 PVC的动作。你也可以自己定义PVC来完成这个挂载行为。

使用时,把GCS_DATA_PVC当做普通的inputs变量就可以。

须知

GCS_SFS_PVC变量在workflow语法中,挂卷的volumes字段内可用。

语法

volumes:

gensfs:

mount_path: /sfs #挂载到容器内的路径 mount_from:

pvc: '${GCS_SFS_PVC}' #内置变量,代表流程中使用的SFS文件存储卷

解释

容器挂载SFS文件存储卷是可以使用任意的PVC的,提供这个内置变量是为了省去用户 定义PVC的动作。您也可以自己定义PVC来完成这个挂载行为。

使用时,把GCS_SFS_PVC当做普通的inputs变量就可以。

4 流程语法示例

4.1 单一步骤(一个并发)

4.2 单一步骤(并发执行)

4.3 复杂依赖任务(DAG)

4.1 单一步骤(一个并发)

命令示例

首先以执行单一命令为例。以 gcs sub job 为例,我们使用:

gcs sub job --cpu 0.5 --memory 1g --tool bwa:0.7.12 --shell sh bwa_help.sh

生成 GCS 流程示例

该命令将会生成以下模板,并提交基因容器语法解析器:

version: genecontainer_0_1 inputs:

memory:

default: 1g type: string cpu:

default: 0.5c type: string tool:

default: bwa:0.7.12 type: string job-script:

default: bwa_help.sh type: string

jobid:

default: bwa-help-2018-0830-171114-00d34 type: string

shell:

default: sh

memory: ${memory}

cpu: ${cpu}

commands:

- sh /obs/gcscli/bwa-help-2018-0830-171114-00d34/bwa_help.sh volumes:

sample-data:

mount_path: /obs

bwa-help-2018-0830-171114-00d34:

path:

- /obs/output/bwa-help-2018-0830-171114-00d34

生成 Kubernetes 示例

该模板将进一步解析成以下 Kubernetes 模板 ,并提交云容器引擎:

kind: Job

apiVersion: batch/v1 metadata:

name: bwa-help-2018-0830-171114-00d34-0-81419ff7ad0d11e8 namespace: default

selfLink:

/apis/batch/v1/namespaces/default/jobs/bwa-help-2018-0830-171114-00d34-0-81419ff7ad0d11e8 uid: 815b643b-ad0d-11e8-aba9-fa163ed435e0

resourceVersion: '706141' labels:

gcs.execution.id: 81419ff7-ad0d-11e8-bebc-0255ac1066a1

gcs.execution.name: gcs-2018-0830-171114-1-0-2018-0830-171114-35d77 gcs.source.name: bwa-help-2018-0830-171114-00d34

source: gcs

stack-name: gcs-2018-0830-171114-1-0-2018-0830-171114-35d77 spec:

parallelism: 1 completions: 1 backoffLimit: 6 selector:

matchLabels:

controller-uid: 815b643b-ad0d-11e8-aba9-fa163ed435e0 template:

metadata:

creationTimestamp: null labels:

controller-uid: 815b643b-ad0d-11e8-aba9-fa163ed435e0 gcs.execution.id: 81419ff7-ad0d-11e8-bebc-0255ac1066a1

gcs.execution.name: gcs-2018-0830-171114-1-0-2018-0830-171114-35d77 gcs.source.name: bwa-help-2018-0830-171114-00d34

job-name: bwa-help-2018-0830-171114-00d34-0-81419ff7ad0d11e8 source: gcs

containers:

- name: bwa-help-2018-0830-171114-00d34-0-81419ff7ad0d11e8

image: '100.125.5.235:20202/genecontainer/bwa:0.7.12-r1039-sam18-sbb67' command:

- sh - '-c'

- sh /obs/gcscli/bwa-help-2018-0830-171114-00d34/bwa_help.sh resources:

terminationMessagePath: /dev/termination-log terminationMessagePolicy: File

imagePullPolicy: IfNotPresent restartPolicy: OnFailure

terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst

securityContext: {}

affinity:

podAffinity:

preferredDuringSchedulingIgnoredDuringExecution:

- weight: 1 schedulerName: default-scheduler

4.2 单一步骤(并发执行)

其次,再看一下任务并发的情况。假如用户之前脚本是这样:

#run.sh var1=$1 var2=$2

echo "$var1\t$var2"

# 执行该脚本 workflow 部分:

workflow:

第二种是使用并发变量:

inputs:

var1:

default:

- 1 - 2

description: var1 type: array label: basic var2:

default:

- a - b

description: var2 type: array label: basic workflow:

splitfq:

tool: zsplit:0.2 type: GCS.Job resources:

memory: 1g cpu: 0.5c commands_iter:

command: >

sh /obs/gcscli/run-xxx/run.sh ${1} ${2}

vars_iter:

- '${var1}' - '${var2}'

4.3 复杂依赖任务(DAG)

如果有四个任务,a/b/c/d 我们希望首先执行 任务 a,然后执行 b/c,b/c 同时完成 后,最后执行 d,如下图所示:

为了实现这个目标,需要引入 depends 字段。以任务 d为例,完成任务 d 需要首先完 成任务 b/c,则depends 字段为:

depends:

version: genecontainer_0_1 inputs:

volumes:

sample-data:

mount_path: /obs mount_from:

pvc: ${GCS_DATA_PVC}

temp-data:

mount_path: /sfs mount_from:

pvc: ${GCS_SFS_PVC}

ref-data:

mount_path: /ref mount_from:

pvc: ${GCS_REF_PVC}

相關文件