diff --git a/event-sensor-workflows/README.md b/event-sensor-workflows/README.md new file mode 100644 index 0000000..bcf7c38 --- /dev/null +++ b/event-sensor-workflows/README.md @@ -0,0 +1,11 @@ +# This folder contains artifacts and instructions for spinnaker-type pipelines such as github-triggered and webhook-triggered deployments + +The set-up is in srini-strix. Argo-events is setup in argo-events, argo-workflows in argo and argocd in argocd namespaces. + +Document link: https://docs.google.com/document/d/1BVMmq7AV0MPmIREjYv2_gIyJaapM2ransW9EszBxw1w/edit?tab=t.0 + +Webhook strigger command: +```curl -vvv -d '{"message":"test"}' https://webhook-events.srini-striks.opsmx.co/webhook -H "content-type: application/json"``` + + +TODO: pod-logs are not showing up in sensor-created workflow pods. Looks like authentication is the issue? diff --git a/event-sensor-workflows/eventsource-webhook.yaml b/event-sensor-workflows/eventsource-webhook.yaml new file mode 100644 index 0000000..bfe9f47 --- /dev/null +++ b/event-sensor-workflows/eventsource-webhook.yaml @@ -0,0 +1,22 @@ +apiVersion: argoproj.io/v1alpha1 +kind: EventSource +metadata: + annotations: + name: webhook + namespace: argo-events +spec: + service: + metadata: + annotations: + foo: bar + labels: + foo: bar + ports: + - port: 12000 + targetPort: 12000 + webhook: + webhook: + endpoint: /webhook + method: POST + port: "12000" + url: "" diff --git a/event-sensor-workflows/sensor-webhook.yaml b/event-sensor-workflows/sensor-webhook.yaml new file mode 100644 index 0000000..945d0c4 --- /dev/null +++ b/event-sensor-workflows/sensor-webhook.yaml @@ -0,0 +1,47 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Sensor +metadata: + annotations: + name: webhook + namespace: argo-events +spec: + dependencies: + - eventName: webhook + eventSourceName: webhook + name: webhook-generic + loggingFields: null + template: + serviceAccountName: operate-workflow-sa + triggers: + - template: + k8s: + operation: create + parameters: + - dest: spec.arguments.parameters.0.value + src: + dataKey: body.message + dependencyName: webhook-generic + source: + resource: + apiVersion: argoproj.io/v1alpha1 + kind: Workflow + metadata: + generateName: webhook- + spec: + arguments: + parameters: + - name: message + value: WILLBEREPLACED + entrypoint: whalesay + templates: + - container: + args: + - '{{inputs.parameters.message}}' + command: + - cowsay + image: docker/whalesay:latest + inputs: + parameters: + - name: message + name: whalesay + name: webhook-workflow-trigger diff --git a/event-sensor-workflows/webhook-events-ing.yaml b/event-sensor-workflows/webhook-events-ing.yaml new file mode 100644 index 0000000..71f31e5 --- /dev/null +++ b/event-sensor-workflows/webhook-events-ing.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + cert-manager.io/cluster-issuer: letsencrypt-isd-argo-argocd + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/backend-protocol: HTTP + name: webhook-ingress + namespace: argo-events +spec: + rules: + - host: webhook-events.srini-striks.opsmx.co + http: + paths: + - backend: + service: + name: webhook-eventsource-svc + port: + number: 12000 + path: / + pathType: Prefix + tls: + - hosts: + - webhook-events.srini-striks.opsmx.co + secretName: webhook-events-tls-certificate