arcalot / arcaflow-engine

Arcaflow is a highly-portable workflow engine enabling modular and validated pipelines through containerized plugins.
https://arcalot.io/arcaflow/
Apache License 2.0
7 stars 9 forks source link

CLI Show Workflow Namespaces Option #200

Closed mfleader closed 4 months ago

mfleader commented 4 months ago

Changes introduced with this PR

Behavior Happy Path

❯ ./arcaflow --get-namespaces --workflow workflow.yaml --config config.yaml --input input.yaml
OBJECT              NAMESPACE   
HogCpuInput          $.steps.hog_cpu_wf.execute.inputs.items
KubernetesTarget     $.steps.hog_cpu_wf.execute.inputs.items
ThirdObject          $.steps.hog_cpu_wf.execute.inputs.items
StressNGParams       $.steps.hog_cpu_wf.execute.inputs.items.stressng_params
error                $.steps.hog_cpu_wf.failed.outputs.error
data                 $.steps.hog_cpu_wf.outputs.outputs.success

given workflow.yaml

version: v0.2.0
input:
  root: HogCpuInput
  objects:
    ThirdObject:
      id: ThirdObject
      properties:
        name:
          type:
            type_id: string
    KubernetesTarget:
      id: KubernetesTarget
      properties:
        kubeconfig_path:
          type:
            type_id: string
        namespace:
          type:
            type_id: string
          required: true
    HogCpuInput:
      id: HogCpuInput
      properties:
        stressng_params:
          type:
            type_id: ref
            id: StressNGParams
            namespace: $.steps.stressng.starting.inputs.input

steps:
  stressng:
    plugin: 
      src: quay.io/arcalot/arcaflow-plugin-stressng:0.6.0
      deployment_type: image
    step: workload
    input: !expr $.input.stressng_params

outputs:
  success:
    stressng: !expr $.steps.stressng.outputs.success

By contributing to this repository, I agree to the contribution guidelines.