0

我正在使用 Argo 为我的硕士论文工作构建基因组管道。本质上,我创建了一个WorkflowTemplate定义了所有容器模板的模板,然后我的想法是从该模板构建两个单独的工作流:一个用于测试目的,一个用于生产,它将使用不同的参数和数据 wrt 测试工作流。

这是WorkflowTemplate

apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: genomic-workflow-template
  namespace: tesi-fabrici
spec:
  templates:
  - name: data-handling
    container:
      name: data-handling-container
      image: eferos93/data-handling
      volumeMounts:
        - name: external-volume
          mountPath: /data
  - name: bcl2fastq
    container:
      name: bcl2fastq-container
      image: eferos93/bcl2fastq
      volumeMounts: 
        - name: external-volume
          mountPath: /data
  - name: fastqc
    container:
      name: fasqc-container
      image: eferos93/fastqc
      volumeMounts:
        - name: external-volume
          mountPath: /data
  - name: multiqc
    container:
      name: multiqc-container
      image: eferos93/multiqc
      volumeMounts:
        - name: external-volume
          mountPath: /data

在构建测试工作流时,我在将参数传递给容器时遇到问题,即,即使指定了它们,容器也没有得到任何参数,因此导致 pod 内部出现错误,因为它将使用不匹配的默认参数我的情况。

这是工作流测试定义:

apiVersion: argoproj.io/v1alpha1
kind: Workflow 
metadata:
  generateName: test-workflow-
  namespace: tesi-fabrici
spec:
  volumes:
    - name: external-volume
      nfs: 
        server: 10.128.2.231
        path: /tesi_fabrici
  entrypoint: genomic-workflow 
  arguments:
    parameters:
      - name: test-flags
        value: --ignore-missing-bcls --ignore-missing-filter --ignore-missing-positions --use-bases-mask y4n*,n*
      - name: base-input-dir
        value: data/
      - name: base-output-dir
        value: output/
      - name: input-dir
        value: copy_170612_A00181_0011_AH2JK7DMXX/
      - name: input-path
        value: data/copy_170612_A00181_0011_AH2JK7DMXX
      - name: sample-sheet-path
        value: data/copy_170612_A00181_0011_AH2JK7DMXX/SampleSheet.csv
      - name: fastq-dir
        value: data/output/copy_170612_A00181_0011_AH2JK7DMXX/fastq
      - name: fastqc-dir
        value: data/output/copy_170612_A00181_0011_AH2JK7DMXX/fastqc
      - name: multiqc-dir
        value: data/output/copy_170612_A00181_0011_AH2JK7DMXX/multiqc_results
      - name: logs-dir
        value: logs/
      - name: benchmark-dir
        value: benchmark/
  templates:
    - name: genomic-workflow
      steps:
      - - name: bcl2fastq-step
          templateRef:
            name: genomic-workflow-template
            template: bcl2fastq
            inputs:
              parameters:
              - name: test-flags
              - name: sample-sheet-path
              - name: input-dir
              - name: fastq-dir
            args: [ "{{inputs.parameters.test-flags]}}", "--sample-sheet", "{{inputs.parameters.sample-sheet-path]}}", "-R", "{{inputs.parameters.input-dir}}", "-o", "{{inputs.parameters.fastq-dir}}"]

这里使用bcl2fastq上面定义的模板的步骤不带任何参数。我也尝试直接引用全局参数({{workflow.parameters.test-flags}},....),仍然是同样的问题。bcl2fastq-step这是从 Argo Server UI 获得的清单:

name: genomic-workflow
inputs: {}
outputs: {}
metadata: {}
steps:
  - - name: bcl2fastq-step
      arguments: {}
      templateRef:
        name: genomic-workflow-template
        template: bcl2fastq

如您所见,没有参数,也没有输入。

现在,我还没有尝试在内部声明参数,WorkflowTemplate但这是我想要避免的,因为我的想法是从WorkflowTemplate上面定义的单个工作流程构建两个工作流程。

有谁知道问题出在哪里?


这是 bcl2fastq 的Dockerfile的链接。

我正在使用最新版本的 Argo:

argo: v3.2.6+db7d90a.dirty
  BuildDate: 2021-12-18T04:36:35Z
  GitCommit: db7d90a1f609685cfda73644155854b06fa5d28b
  GitTreeState: dirty
  GitTag: v3.2.6
  GoVersion: go1.17.5
  Compiler: gc
  Platform: linux/amd64
4

0 回答 0