Skip to content

Releases: arcalot/arcaflow-engine

v0.20.0-beta.2

02 Oct 17:11
ccf74b8
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.20.0-beta.1...v0.20.0-beta.2

v0.20.0-beta.1

23 Sep 20:44
62797d2
Compare
Choose a tag to compare

This release significantly improves the usability of Arcaflow.

The graceful handling of disabled steps changes make it so that you can disable steps without causing workflow failure. There are multiple methods to find tune to each use case.

Changes

  • Graceful handling of disabled steps (documentation: arcalot.io)
    • Added !oneof for OR dependencies in inferred outputs.
    • Added !ordisabled for convenience OR dependency on success and disabled outputs.
    • Added !wait-optional for optional dependencies that resolve whenever something succeeds, but waits for success or failure, with the field being left out when the dependency fails.
    • Added !soft-optional for optional dependencies that should not block output resolution. Not recommended for most use cases.
  • Made generated schema IDs not enforced
    • Inferred output schemas will not need to have the ID match
    • Inferred step input objects will not need to have the ID match
    • Bind constants function output will not need to have the ID match.

Pull Requests

Full Changelog: v0.19.1...v0.20.0-beta.1

v0.19.1

21 Aug 15:45
5ef0c20
Compare
Choose a tag to compare

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

v0.19.0-beta.1

16 Aug 23:09
2cce328
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.1...v0.19.0-beta.1

v0.18.1

21 Jun 09:13
d8af555
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.0...v0.18.1

v0.18.0

18 Jun 09:03
d1e42bc
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.2...v0.18.0

v0.17.2

12 Jun 16:32
688e0e8
Compare
Choose a tag to compare

The CI now uses the organization-wide GO version variable, which as of the time of this release is set to 1.21.11.
This should result in 1.21.11 being used for the build artifacts, including the Python library.

What's Changed

Full Changelog: v0.17.1...v0.17.2

v0.17.1

30 May 18:46
cbf8ad9
Compare
Choose a tag to compare

Feature Changes

  • Add support for privileged containers when using the Podman and/or Docker deployers.
  • Add bindConstants() builtin function.
  • Add support for namespaced scopes when defining schemas.

Features in Progress (use at own risk!)

  • Disable steps.

Bug Fixes

  • Fixed plugin provider race condition.
  • Fixed rare deadlock that could occur when using stop_if.
  • Created a more user friendly error message on user schema definition error.

Pull Requests

Full Changelog: v0.14.1...v0.17.1

v0.17.0-beta2

14 May 14:42
d83fbe6
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.0-beta1...v0.17.0-beta2

v0.17.0-beta1

06 May 16:12
38ca84b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.16.0-beta1...v0.17.0-beta1