better-printer-5326
02/13/2024, 4:31 AMFirstFlow, I get this error:
Unable to publish Argo Event (metaflow.FirstFlow.end): unknown url type: 'None'
Can someone tell me what did I miss with the setup?ancient-application-36103
02/13/2024, 4:35 AMmetaflow configure kubernetes ?better-printer-5326
02/13/2024, 4:53 AMexport METAFLOW_KUBERNETES_NAMESPACE=argo-events
export METAFLOW_ARGO_EVENTS_EVENT=metaflow-event
export METAFLOW_ARGO_EVENTS_EVENT_SOURCE=argo-events-webhook
export METAFLOW_ARGO_EVENTS_SERVICE_ACCOUNT=default
export METAFLOW_KUBERNETES_CONTAINER_IMAGE=<some-image>
Did I miss any more configs?user
02/13/2024, 5:04 AMMETAFLOW_ARGO_EVENTS_WEBHOOK_URL. This should point to the Argo-events webhook service endpoint inside your cluster.better-printer-5326
02/13/2024, 8:37 PMEventSource defined as this:
apiVersion: argoproj.io/v1alpha1
kind: EventSource
metadata:
name: argo-events-webhook
namespace: {{ .Release.Namespace | quote }}
spec:
service:
ports:
- port: 12000
targetPort: 12000
webhook:
metaflow-event:
port: "12000"
endpoint: /metaflow-event
method: POST
and my configuration as export METAFLOW_ARGO_EVENTS_WEBHOOK_URL=<http://argo-events-webhook-eventsource-svc.argo-events.svc.cluster.local:12000/metaflow-event>
However, now I see the error as Unable to publish Argo Event (metaflow.FirstFlow.end): [Errno 104] Connection reset by peer Do you know what am I doing wrong?user
02/13/2024, 8:47 PMbetter-printer-5326
02/13/2024, 8:51 PMEventSource pod right? Yeah I have it in my namespaces as argo-events-webhook-eventsource-srcfd-5dcbc8745-mqksm
If you mean the argo-events-webhook then no, because as I understand, it is only a “Argo Events admission webhook”proud-eye-90172
02/13/2024, 8:57 PMargo-events-webhook-eventsource*. Looks like you already have it. ✅
Can you run an nginx pod in your cluster and try to hit the argo-events webhook endpoint?
$ kubectl run nginx --image=nginx
$ kubectl exec -it nginx bash
curl -d '{"message":"this is my first webhook"}' -H "Content-Type: application/json" -X POST <http://argo-events-webhook-eventsource-svc.argo-events.svc.cluster.local:12000/metaflow-event>user
02/13/2024, 10:22 PMbetter-printer-5326
02/14/2024, 12:04 AMbetter-printer-5326
02/14/2024, 4:37 AMEventSource does not explicitly expose a port (e.g. 12000 ) for the webhook actually. I installed Argo Events and Argo on local Minikube and saw this behaviorproud-eye-90172
02/14/2024, 4:56 AMapiVersion: v1
kind: Service
metadata:
labels:
controller: eventsource-controller
eventsource-name: argo-events-webhook
owner-name: argo-events-webhook
name: argo-events-webhook-eventsource-svc
namespace: svcs-forestbee
ownerReferences:
- apiVersion: <http://argoproj.io/v1alpha1|argoproj.io/v1alpha1>
blockOwnerDeletion: true
controller: true
kind: EventSource
name: argo-events-webhook
spec:
clusterIP: 172.20.69.65
clusterIPs:
- 172.20.69.65
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- port: 12000
protocol: TCP
targetPort: 12000
selector:
controller: eventsource-controller
eventsource-name: argo-events-webhook
owner-name: argo-events-webhook
sessionAffinity: None
type: ClusterIP
And this seems to be created by the argo-events controller. Do you want to check in your argo-events-controller logs if there are any errors creating this service. Maybe it's service account doesn't have permissions.better-printer-5326
02/14/2024, 10:05 PMtime="2024-02-14T21:51:29.290Z" level=fatal msg="Failed to submit workflow: rpc error: code = PermissionDenied desc = <http://workflowtemplates.argoproj.io|workflowtemplates.argoproj.io> \"secondflow\" is forbidden: User \"system:serviceaccount:argo-events:default\" cannot get resource \"workflowtemplates\" in API group \"<http://argoproj.io|argoproj.io>\" in the namespace \"argo-events\": Azure does not have opinion for this user."
Which is the sensor that was created by secondflow. Is there a way to configure the secondflow Sensor object to use a ServiceAccount argo?better-printer-5326
02/14/2024, 10:35 PMexport METAFLOW_ARGO_EVENTS_SERVICE_ACCOUNT=argo and it works now