Skip to content

v0.19.1

Latest
Compare
Choose a tag to compare
@mfleader mfleader released this 21 Aug 15:45
· 7 commits to main since this release
5ef0c20

Critical Fixes

Upgrading github.com/docker/docker v26.1.5 to fix CVE-2024-41110.

New Features

getEnvVar()

A simple builtin function for a workflow to get the value of an environment variable on the arcaflow engine's host computing environment. The first parameter is your environment variable's identifier, and the second parameter is the value used if your environment variable is not found.

workflow.yaml

steps:
  stressng:
    input:
      stressors:
        stressor: cpu
        workers: !expr 'getEnvVar(QTY_WORKERS_CPU, 1)'

Get Object Namespaces

Use the --get-namespaces option at the cli to get the objects and their namespaces from a workflow and present them as a table.

❯ ./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

Other changes

  • Complete re-write of the dependency system. This allows quick failure, and will enable future features. This touches a lot of the code so keep an eye out for bugs.

Pull Requests

Full Changelog: v0.18.1...v0.19.1