Viewing Argo Workflow Outputs¶
This guide shows you all the ways to view output from Argo workflow steps.
Method 1: Argo CLI (Recommended)¶
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