This folder contains a full Kubernetes deployment example.
It contains:
- An
overseer
Kubernetes namespace. - A service account, which will let
overseer
observe services in the k8s cluster. - An
overseer-worker
deployment, to process tests to execute. - An
overseer-bridge-webhook-n17
deployment, to notify errors using Notify17. - An optional
overseer-bridge-email
deployment, to notify errors using a standard email SMTP server. - An optional
overseer-bridge-queue
deployment, to duplicate test results and send them to multiple destination (read more). - An optional
k8s-event-watcher
deployment, to observe Kubernetes events and raise alerts when certain conditions are met. - A
CronJob
that will periodically enqueue the tests you want to run. - A simple
Redis
deployment, to hold test queues and results.
- Use the Overseer recipe to create a notification template using Notify17's dashboard,
and replace the
REPLACE_TEMPLATE_API_KEY
string inoverseer-bridge-webhook-n17.yaml
with the template's API key. - Run
kubectl apply -f .
to create alloverseer
resources.
In the scenario where you want to send your notifications to multiple destinations (e.g. Notify17 AND email), you can use the overseer-bridge-queue
deployment:
- Use one
-dest-queues
argument for each queue you want (e.g. if you want to send an email, you can create a queue with-dest-queue=overseer.results.email
). - Configure the corresponding bridges to use the new queue names by having the
-redis-queue-key
argument match the previously configured one. (e.g.overseer.results.email
).
A complete scenario can be:
- An enqueue cron job to queue the tests.
- A worker to process tests and write results (e.g. to standard Redis queue
overseer.results
). - A queue bridge to clone results from
overseer.results
tooverseer.results.email
andoverseer.results.n17
. - An email bridge to send emails using test results stored in
overseer.results.email
queue. - A webhook bridge to send Notify17 notifications, using test results stored in
overseer.results.n17
queue.
-
enqueue.sh
can be used to manually enqueue a test:./enqueue.sh "https://google.com must run ssl
-
test-cron.sh
can be used to manually trigger the enqueuing of all tests defined inoverseer-enqueue.yaml
'sCronJob
.
- Run
kubectl delete ns overseer
to destroy alloverseer
resources.