This is a PoC demonstrating possible integrations using Argo Workflows and Argo Events.
-
Static Analysis pipelines with github global hooks
-
Scheduled DAG triggers with timezone support
-
Build using Drone file
TODO
-
Spin up a kubernetes of your choice.
-
Install All: Argo Events, Argo Workflows, Fission
kubectl apply -f kube/
To install from the master branch use:
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-events/master/hack/k8s/manifests/installation.yaml
kubectl create namespace argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/stable/manifests/install.yaml
kubectl -n fission apply -f \
https://github.com/fission/fission/releases/download/1.8.0/fission-all-1.8.0-minikube.yaml
This installation only reads argo events resources form the argo-events namespace.
References:
Installing Argo Events Installing Argo Workflows Installing Fission
-
Install the Argo Workflows cli
-
Install the Fission cli
-
Argo Workflow Artifact Support
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm repo update
helm install argo-artifacts stable/minio --set service.type=LoadBalancer --set fullnameOverride=argo-artifacts
References:
- Triggering events using argo events
- Show integration with Workflows
kubectl -n argo-events -f http-workflow-sensor.yaml
kubectl -n port-forward svc/webhook-gateway-svc 12000:12000
curl -d '{"message":"this is my first webhook"}' -H "Content-Type: application/json" -X POST http://localhost:12000/example
To check the workflow status and logs run:
argo list -n argo-events
argo -n argo-events logs <workflow-id>
- Show integration with Fission
Spin up a simple Fission function
# Add the stock NodeJS env to your Fission deployment
fission env create --name nodejs --image fission/node-env
# Upload your function code to fission
fission function create --name hello --env nodejs --code hello.js
# Map GET /hello to your new function
fission route create --method GET --url /hello --function hello
-
Github Webhook
-
Kafka
-
SQS
- Global CI pipelines
- Use Github webhooks to trigger a pipeline (would be nice to support Drone's YAML)
- Scan for secrets on Github webhook
- Scheduled jobs
- Trigger a daemons job using argo events
-
Use helm charts to simplify events and workflows deployments
-
Drone file to workflow conversion?