Skip to main content
This guide shows how to access the default MinIO artifact repository installed by the Argo Workflows quick-start / minimal configuration. The bundled MinIO server stores workflow artifacts and archived logs so you can inspect them from a web UI or via S3-compatible tools.

1. Confirm MinIO pod and service are running

First, verify the MinIO pod and service exist in the argo namespace:
kubectl -n argo get po,svc | grep -i minio
Example output:
pod/minio-5cb4ff75c9-stmmw   1/1   Running   0   4h40m
service/minio               ClusterIP   10.108.36.67   <none>   9000/TCP,9001/TCP   4h40m
By default the service is a ClusterIP and not directly reachable from outside the cluster.

2. Expose the MinIO web UI (quick demo options)

To view the MinIO web console in your browser you can either:
  • Change the Service to a NodePort (quick one-off demo), or
  • Use kubectl port-forward (recommended for local access without changing cluster services), or
  • Configure an Ingress with authentication for production.
Quick method: edit the MinIO service and change the type to NodePort:
kubectl -n argo edit svc minio
# change "type: ClusterIP" to "type: NodePort" and save
After editing, confirm the NodePort mapping:
kubectl -n argo get po,svc | grep -i minio
Example output showing NodePorts (9000 and 9001 mapped to high-numbered node ports):
pod/minio-5cb4ff75c9-stmmw   1/1   Running   0   4h40m
service/minio               NodePort    10.108.36.67   <none>   9000:30648/TCP,9001:30731/TCP   4h40m
  • Internal MinIO UI port: 9001
  • Example NodePort for the UI: 30731 (your cluster will assign different high ports)
Table: quick port summary
Internal portExample NodePortPurpose
900030648S3 API endpoint (object operations)
900130731MinIO web console (UI)
Note: For secure/demo access without changing services, you can run:
kubectl -n argo port-forward svc/minio 9001:9001
# then open http://localhost:9001 in your browser

3. Retrieve MinIO credentials

Argo stores the MinIO credentials as Kubernetes secrets in the argo namespace. Decode them with:
kubectl -n argo get secrets my-minio-cred -o json | jq -r .data.accesskey | base64 --decode
kubectl -n argo get secrets my-minio-cred -o json | jq -r .data.secretkey | base64 --decode
Example output:
admin
adminpassword
Use these values to sign in to the MinIO web console (NodePort or port-forward URL).

4. Browse buckets and archived workflow logs

Once authenticated, you will see buckets created by Argo Workflows (for example my-bucket) and the objects within. These objects include archived logs and workflow artifacts produced by completed runs. If you browse into a bucket you will see items corresponding to workflows and their logs:
A screenshot of the MinIO Object Store web console showing the contents of a bucket named "my-bucket" with a list of object/folder names (e.g., cowsay-template, daemon-workflow, retry-workflow). The left sidebar shows navigation items like Buckets, Access Keys, and Administrator settings.
All completed workflow logs are persisted to the MinIO object store by default when Argo is configured to archive logs.

5. Inspect the artifact-repositories ConfigMap

Argo’s artifact repository configuration (which controls archiving behavior and S3/MinIO connection details) lives in a ConfigMap named artifact-repositories in the argo namespace. View it with:
kubectl -n argo get cm artifact-repositories -o yaml
Example excerpt (showing the relevant default-v1 entry):
apiVersion: v1
data:
  default-v1: |
    archiveLogs: true
    s3:
      bucket: my-bucket
      endpoint: minio:9000
      insecure: true
      accessKeySecret:
        name: my-minio-cred
        key: accesskey
      secretKeySecret:
        name: my-minio-cred
        key: secretkey
kind: ConfigMap
metadata:
  name: artifact-repositories
  namespace: argo
Key points:
  • archiveLogs: true — instructs Argo to persist workflow logs to the artifact store.
  • endpoint: minio:9000 — hostname and port of the S3-compatible MinIO service as seen from within the cluster.
  • Credentials are referenced via the my-minio-cred secret.
The quick-start bundles MinIO for convenience and local testing. For production use, point Argo to a managed S3-compatible provider (e.g., AWS S3, Google Cloud Storage) and manage credentials using a secure secrets workflow.
Do not expose MinIO (or any artifact store) publicly without proper authentication and network restrictions. For ad-hoc demos, prefer kubectl port-forward or restrict NodePort access to trusted networks.

6. Verify artifact uploads

Because archiveLogs: true, completed workflow logs appear in the configured bucket automatically. To test artifact uploads, run a workflow that produces an artifact (or archive logs) and then check the bucket in the MinIO console or via an S3 client: Example quick verification with mc (MinIO client) after port-forward or using NodePort with S3 endpoint:
# Example: using AWS CLI S3-compatible endpoint (set AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY)
aws --endpoint-url http://localhost:9000 s3 ls s3://my-bucket
Replace endpoint and credentials to match your environment. This process helps you access, inspect, and verify artifacts and archived logs stored by the Argo Workflows’ bundled MinIO server.

Watch Video