Skip to content

User Container

This example showcases the user of a user container with a volume mount.

from hera.workflows import (
    DAG,
    UserContainer,
    Workflow,
    models as m,
    script,
)


@script(
    sidecars=[
        UserContainer(name="sidecar-name", volume_mounts=[m.VolumeMount(mount_path="/whatever", name="something")])
    ]
)
def foo():
    print("hi")


with Workflow(
    generate_name="sidecar-volume-mount-",
    entrypoint="d",
    volume_claim_templates=[
        m.PersistentVolumeClaim(
            metadata=m.ObjectMeta(name="something"),
            spec=m.PersistentVolumeClaimSpec(
                access_modes=["ReadWriteOnce"],
                resources=m.VolumeResourceRequirements(requests={"storage": "64Mi"}),
            ),
        )
    ],
) as w:
    with DAG(name="d"):
        foo()
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: sidecar-volume-mount-
spec:
  entrypoint: d
  templates:
  - name: d
    dag:
      tasks:
      - name: foo
        template: foo
  - name: foo
    sidecars:
    - name: sidecar-name
      volumeMounts:
      - name: something
        mountPath: /whatever
    script:
      image: python:3.9
      source: |-
        import os
        import sys
        sys.path.append(os.getcwd())
        print('hi')
      command:
      - python
  volumeClaimTemplates:
  - metadata:
      name: something
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 64Mi

Comments