Skip to content

Add ability to run tasks using a specific container and environment. #12

@zack-is-cool

Description

@zack-is-cool

Is your feature request related to a problem? Please describe

A problem we run into when using this task runner is the common works on my machine problem. A lot of our tasks end up basically being shell scripts using the default sh, which different versions have different features. This causes problems when running tasks and meeting every little edge case.

Describe the solution you'd like

I'd like the ability to at a top level and also even per task level, be able to run them from inside a specific container.
You should be able to set environment variables and run arbitrary commands.

This could be a nice way to expand airgap deployment patterns where you could bring a maru runner package (or something?) with you with your runner container and any dependencies with you (terraform, source code, container images, stuff that you wouldn't necessarily be shoving into k8s with zarf, but need at deploy time)

Describe alternatives you've considered

I've done a proof of concept of this when migrating from our makefile patterns using the buildharness container, but it feels sort of janky and error prone.

see:
https://github.com/defenseunicorns/narwhal-delivery-zarf-package-eks-addons/blob/main/tasks.yaml

specifically:
https://github.com/defenseunicorns/narwhal-delivery-zarf-package-eks-addons/blob/main/tasks/setup/vars.yaml#L33-L103
https://github.com/defenseunicorns/narwhal-delivery-zarf-package-eks-addons/blob/main/tasks/setup/vars.yaml#L107-L121
https://github.com/defenseunicorns/narwhal-delivery-zarf-package-eks-addons/blob/main/tasks/setup/infra.yaml#L35-L41

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions