-
-
Save vfarcic/a0a7ff04a7e22409cdfd8b466edb4e48 to your computer and use it in GitHub Desktop.
# Source: https://gist.github.com/a0a7ff04a7e22409cdfd8b466edb4e48 | |
################################################# | |
# Argo Events # | |
# Event-Based Dependency Manager for Kubernetes # | |
# https://youtu.be/sUPkGChvD54 # | |
################################################# | |
######### | |
# Setup # | |
######### | |
# It could be any Kubernetes cluster | |
minikube start | |
kubectl create namespace argo-events | |
kubectl apply \ | |
--filename https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml | |
kubectl --namespace argo-events apply \ | |
--filename https://raw.githubusercontent.com/argoproj/argo-events/stable/examples/eventbus/native.yaml | |
git clone https://github.com/vfarcic/argo-events-demo.git | |
cd argo-events-demo | |
########################## | |
# Creating event sources # | |
########################## | |
cat event-source.yaml | |
kubectl --namespace argo-events apply \ | |
--filename event-source.yaml | |
kubectl --namespace argo-events \ | |
get eventsources | |
kubectl --namespace argo-events \ | |
get services | |
kubectl --namespace argo-events \ | |
get pods | |
# Replace `[...]` with the name of the `webhook-eventsource-*` Pod | |
export EVENTSOURCE_POD_NAME=$(\ | |
kubectl --namespace argo-events \ | |
get pods \ | |
--output name \ | |
--selector eventsource-name=webhook) | |
kubectl --namespace argo-events \ | |
port-forward $EVENTSOURCE_POD_NAME 12000:12000 & | |
curl -X POST \ | |
-H "Content-Type: application/json" \ | |
-d '{"message":"My first webhook"}' \ | |
http://localhost:12000/devops-toolkit | |
# Open https://github.com/argoproj/argo-events/blob/master/api/event-source.md#eventsourcespec | |
################################# | |
# Creating sensors and triggers # | |
################################# | |
cat sensor.yaml | |
kubectl --namespace argo-events apply \ | |
--filename sensor.yaml | |
curl -X POST \ | |
-H "Content-Type: application/json" \ | |
-d '{"message":"My first webhook"}' \ | |
http://localhost:12000/devops-toolkit | |
kubectl --namespace argo-events get pods | |
kubectl --namespace argo-events logs \ | |
--selector app=payload | |
kubectl --namespace argo-events \ | |
delete pods \ | |
--selector app=payload | |
# Open https://github.com/argoproj/argo-events/blob/master/api/sensor.md#sensor | |
########### | |
# Destroy # | |
########### | |
pkill kubectl | |
minikube delete |
Apologies victor for messaging here. Youtube doesnot allow me to add link.
To one of the queries which i posted in YT
below is the error log in ingress
2023/05/16 13:24:53 [error] 2318#2318: *134851 SSL_do_handshake() failed (SSL: error:0A00010B:SSL routines::wrong version number) while SSL handshaking to upstream, client: 152.37.90.132, server: argoeventsweb.simplifydevopstools.com, request: "POST /devops-tools HTTP/1.1", upstream: "https://10.224.0.82:8080/devops-tools", host: "argoeventsweb.simplifydevopstools.com"
I already answered in YouTube. We can continue here @sarsatis .
I'm trying to expose the webhook externally, however it doesn't seem to work for me.
apiVersion: v1 kind: Service metadata: name: webhook-eventsource namespace: argo-events spec: ports: - name: tcp port: 12000 protocol: TCP targetPort: 12000 selector: eventsource-name: webhook type: NodePort
Do you have any examples of how to implement it with ingress?
@Pzharyuk If you're exposing it through ingress, you just have to add Ingress resource that points to the Service.
@vfarcic, definitely ok! in fact, thanks for helping out! enjoy your holiday!