Sourcing Events from GitHub Webhooks
Setup
Deploy Gloo
glooctl install kube
Deploy NATS and minio
kubectl apply -f \
https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/kube-deploy.yaml
Create a route for nats
glooctl route create --sort \
--path-exact /github-webhooks \
--upstream default-nats-streaming-4222 \
--function github-webhooks
Create a route for mirroring with minio
glooctl route create --sort \
--path-prefix=/ \
--header "User-Agent:Minio.*" \
--upstream default-minio-service-9000
Image Pusher Microservice
Install minio client - linux
wget https://dl.minio.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
Install minio client - mac
brew install minio/stable/mc
mc config host add gloo http://idit.aws.solo.io:8080 \
gloo.solo.io \
gloo.solo.io
deploy the image-pusher service
kubectl apply -f \
https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/image-pusher/deploy.yaml
start mirroring the "images" minio bucket
mkdir -p images
mc mirror gloo/bucket ./images -w
browse to ./images in your file browser
unstar/star the git repo to see images appear
export TWITTER_CONSUMER_KEY=<your-twitter-consumer-key>
export TWITTER_CONSUMER_SECRET=<your-twitter-consumer-secret>
export TWITTER_ACCESS_TOKEN=<your-twitter-access-token>
export TWITTER_ACCESS_SECRET=<your-twitter-access-secret>
kubectl create secret -n default generic \
twitter-secret \
--from-literal=TWITTER_CONSUMER_KEY=${TWITTER_CONSUMER_KEY} \
--from-literal=TWITTER_CONSUMER_SECRET=${TWITTER_CONSUMER_SECRET} \
--from-literal=TWITTER_ACCESS_TOKEN=${TWITTER_ACCESS_TOKEN} \
--from-literal=TWITTER_ACCESS_SECRET=${TWITTER_ACCESS_SECRET}
deploy the microservice
kubectl apply -f \
https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/star-tweeter/deploy.yaml
unstar/star the git repo to see tweets appear
Slack-Bot Microservice
create a kubernetes secret with slack bot credentials
export SLACK_TOKEN=<your-slack-api-token>
kubectl create secret -n default generic slack-secret \
--from-literal=SLACK_TOKEN=${SLACK_TOKEN}
deploy the microservice
kubectl apply -f \
https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/slack-bot/deploy.yaml
unstar/star the git repo to see slack messages
Cleanup
kubectl delete virtualservice default
kubectl delete -f https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/kube-deploy.yaml
kubectl delete -f https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/image-pusher/deploy.yaml
kubectl delete -f https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/slack-bot/deploy.yaml
kubectl delete -f https://raw.githubusercontent.com/solo-io/gloo/master/example/source_events_from_github/star-tweeter/deploy.yaml