Skip to content

Viewing Argo Workflow Outputs

This guide shows you all the ways to view output from Argo workflow steps.

View logs from latest workflow

# View all steps from the most recent workflow
argo logs -n argo @latest

# View logs from a specific workflow
argo logs -n argo <workflow-name>

# View logs from a specific step
argo logs -n argo <workflow-name> -c <step-name>

# Follow logs in real-time (like tail -f)
argo logs -n argo <workflow-name> --follow

Using justfile shortcuts

# View logs from latest workflow
just argo-logs

# List all workflows
just argo-list

# Watch a specific workflow
just argo-watch <workflow-name>

# Get workflow details
just argo-get <workflow-name>

Method 2: Submit with Watch Mode

Submit the workflow with --watch to see output in real-time:

# Submit and watch output in real-time
argo submit -n argo workflows/<your-workflow>.yml --watch

# Watch a specific workflow
argo watch <workflow-name> -n argo

Method 3: kubectl (Direct Pod Access)

Find the pod for a step

# List pods created by workflows
kubectl get pods -n argo -l workflows.argoproj.io/workflow

# Find pods for a specific workflow
kubectl get pods -n argo -l workflows.argoproj.io/workflow=<workflow-name>

View logs from a pod

# View logs from a specific pod
kubectl logs -n argo <pod-name>

# Follow logs in real-time
kubectl logs -n argo <pod-name> -f

# View logs from a specific container (if multi-container pod)
kubectl logs -n argo <pod-name> -c <container-name>

# View logs from previous container instance (if crashed)
kubectl logs -n argo <pod-name> --previous

Method 4: Argo UI (Web Interface)

Access the Argo UI

# Port-forward the Argo server
kubectl -n argo port-forward deployment/argo-server 2746:2746

# Or use the justfile shortcut
just argo-ui

Then open your browser to: - URL: http://localhost:2746 - Default login: Server mode (no auth required)

In the UI: 1. Click on your workflow 2. Click on individual steps to see their logs 3. View real-time output as steps execute

Method 5: Workflow Status and Details

Get workflow information

# Get full workflow details
argo get <workflow-name> -n argo

# Get workflow status in YAML format
kubectl get workflow <workflow-name> -n argo -o yaml

# Get workflow status in JSON format
kubectl get workflow <workflow-name> -n argo -o json

View specific step outputs

# Get step output parameters/artifacts
argo get <workflow-name> -n argo -o json | jq '.status.nodes[] | select(.displayName=="step-name")'

Method 6: Check Workflow Step Status

# Get workflow with all node/step information
kubectl get workflow <workflow-name> -n argo -o jsonpath='{.status.nodes}'

# List all steps and their status
kubectl get workflow <workflow-name> -n argo -o jsonpath='{range .status.nodes[*]}{.displayName}{"\t"}{.phase}{"\n"}{end}'

Example Workflow Commands

Common workflow operations:

# 1. Submit and watch
argo submit -n argo workflows/<your-workflow>.yml --watch

# 2. If already submitted, view logs
argo logs -n argo @latest

# 3. View specific step logs (replace with your workflow and step names)
argo logs -n argo <workflow-name> -c <step-name>

# 4. Get workflow name first, then view logs
WORKFLOW=$(argo list -n argo --latest -o name | cut -d/ -f2)
argo logs -n argo $WORKFLOW

Troubleshooting

Workflow completed but can't see logs

# Check if pods still exist
kubectl get pods -n argo | grep <workflow-name>

# If pods are deleted, check workflow status
argo get <workflow-name> -n argo

# View archived logs (if Argo archival is enabled)
argo get <workflow-name> -n argo --archive

Step failed - check error logs

# Get failed step logs
argo logs <workflow-name> -n argo --step <step-name>

# Check pod events
kubectl describe pod <pod-name> -n argo

# Check previous container logs (if restarted)
kubectl logs <pod-name> -n argo --previous

Real-time monitoring

# Watch workflow progress
watch -n 2 'argo list -n argo'

# Stream logs from all steps
argo logs <workflow-name> -n argo --follow

Quick Reference

Task Command
View latest logs argo logs -n argo @latest
View specific workflow argo logs -n argo <name>
View specific step argo logs -n argo <name> -c <step>
Follow logs argo logs -n argo <name> --follow
Submit and watch argo submit -n argo <file> --watch
List workflows argo list -n argo
Get details argo get <name> -n argo
Watch progress argo watch <name> -n argo

Persistent local-path data: locate and clean up

When using the local-path StorageClass with reclaimPolicy: Retain, PV data persists after PVC deletion. Use these commands to find data and clean up when done:

# Locate PVC and corresponding PV
kubectl get pvc -n argo <pvc-name>
kubectl get pv | grep <pvc-name>

# Get the PV name from the PVC
kubectl get pvc <pvc-name> -n argo -o jsonpath='{.spec.volumeName}'

# On the host, data is stored under this base directory
BASE=/opt/deployment/argo-workflows/k3d/storage
ls -lah $BASE

# Optional: find exact directory for a PV (example PV name pv-XXXXX)
PV=<pv-name>
echo "Host path likely under: $BASE/$PV"

# Cleanup retained resources when no longer needed
kubectl delete pvc -n argo <pvc-name>

# If PV is Released and reclaim policy is Retain, delete PV to remove data via provisioner teardown
kubectl get pv | grep Released
kubectl delete pv <pv-name>

🗓️ Updated: 2026-08-25