# Pub/Sub "vcf-uploaded" (published by the API) -> Argo Workflow from the annotate-vcf template. apiVersion: argoproj.io/v1alpha1 kind: EventSource metadata: { name: vcf-uploaded } spec: template: # Workload Identity: roles/pubsub.subscriber on the subscription (infra/terraform/iam.tf). serviceAccountName: rarelens-pipeline pubSub: vcf-uploaded: projectID: __GCP_PROJECT__ subscriptionID: vcf-uploaded-argo # created by Terraform (infra/terraform/pubsub.tf) jsonBody: true --- apiVersion: argoproj.io/v1alpha1 kind: Sensor metadata: { name: annotate-vcf } spec: template: serviceAccountName: argo-events-sensor dependencies: - { name: vcf, eventSourceName: vcf-uploaded, eventName: vcf-uploaded } triggers: - template: name: submit-annotate-vcf argoWorkflow: operation: submit source: resource: apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: { generateName: annotate-vcf- } spec: workflowTemplateRef: { name: annotate-vcf } arguments: parameters: - { name: job_id } - { name: vcf_uri } - { name: assembly } parameters: - src: { dependencyName: vcf, dataKey: body.job_id } dest: spec.arguments.parameters.0.value - src: { dependencyName: vcf, dataKey: body.vcf_uri } dest: spec.arguments.parameters.1.value - src: { dependencyName: vcf, dataKey: body.assembly, value: GRCh38 } dest: spec.arguments.parameters.2.value