EventSource Troubleshooting¶
EventSources connect to external systems. When they fail, events never enter the system. These issues are usually configuration, authentication, or network-related.
Diagnostic Steps¶
1. Check EventSource Status¶
kubectl get eventsources -n argo-events
# Example output:
# NAME STATUS AGE
# github-webhook True 5d
# pubsub-events False 2h # Problem here
False status indicates the EventSource isn't ready.
2. Check EventSource Conditions¶
Look for:
Status: Falseconditions with reasons- Events section at the bottom for recent errors
- Container restart counts
3. Check Pod Logs¶
Common Issues¶
Authentication Failures¶
Symptom: EventSource pod running but no events arriving.
Fix: Verify secret exists and has correct keys:
# Check secret exists
kubectl get secret gcp-pubsub-credentials -n argo-events
# Verify secret content
kubectl get secret gcp-pubsub-credentials -n argo-events -o jsonpath='{.data}' | jq
# Check EventSource references correct key
kubectl get eventsource pubsub-events -o yaml | grep -A5 credentialSecret
Webhook Not Receiving Events¶
Symptom: EventSource running, external service configured, but no events.
Diagnostic:
# Check service exists
kubectl get svc -n argo-events | grep eventsource
# Test internal connectivity
kubectl run -n argo-events debug --rm -it --image=curlimages/curl -- \
curl -v http://github-eventsource-svc:12000/push
Common causes:
- Ingress misconfiguration: External URL not routing to service
- Port mismatch: EventSource listening on different port than configured
- Endpoint path wrong: GitHub sending to
/but EventSource expects/push
# Verify webhook configuration matches
spec:
github:
webhook:
endpoint: /push # Must match external path
port: "12000" # Must match service port
url: https://hooks.example.com/github/push # Must be reachable
Pub/Sub Events Not Parsing¶
Symptom: Events arrive but trigger nothing.
Root cause: Missing jsonBody: true setting.
# Wrong - events arrive as raw strings
spec:
pubsub:
event:
topic: my-topic
# Missing jsonBody
# Correct - events parsed as JSON
spec:
pubsub:
event:
topic: my-topic
jsonBody: true
Without jsonBody: true, the entire message is a string. JSON paths in Sensors fail silently.
Subscription Already Exists¶
Symptom: EventSource fails to start with subscription error.
Fix: Either use the existing subscription or configure unique names:
spec:
pubsub:
event:
subscriptionID: "unique-subscription-name"
# Or let it auto-generate:
# deleteSubscriptionOnFinish: true # Careful: loses messages on restart
Resource Exhaustion¶
Symptom: EventSource OOMKilled or CPU throttled.
kubectl describe pod -n argo-events -l eventsource-name=high-volume
# Look for:
# Last State: Terminated
# Reason: OOMKilled
Fix: Increase resources:
spec:
template:
container:
resources:
requests:
memory: 256Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 500m
Network Policy Blocking¶
Symptom: EventSource can't reach external service.
Fix: Verify NetworkPolicy allows egress:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-eventsource-egress
namespace: argo-events
spec:
podSelector:
matchLabels:
eventsource-name: pubsub-events
policyTypes:
- Egress
egress:
- to: [] # Allow all egress
Verification Test¶
Create a simple webhook EventSource to verify the system works:
apiVersion: argoproj.io/v1alpha1
kind: EventSource
metadata:
name: test-webhook
namespace: argo-events
spec:
webhook:
test:
port: "12000"
endpoint: /test
method: POST
Test it:
# Port forward
kubectl port-forward -n argo-events svc/test-webhook-eventsource-svc 12000:12000
# Send test event
curl -X POST http://localhost:12000/test -d '{"test": "hello"}'
# Check logs for event receipt
kubectl logs -n argo-events -l eventsource-name=test-webhook --tail=5
If this works, the issue is with your specific EventSource configuration.
Start Simple
When debugging, reduce your EventSource to minimal configuration. Remove filters, transforms, and optional settings. Get basic connectivity working, then add complexity back.
Related¶
- EventSource Configuration - Setup reference
- Sensor Issues - Next debugging step
- Official EventSource Docs - Complete reference