____ __ ____ __ .__ __. .__ __. ___ __ ___ _______ .______
\ \ / \ / / | | | \ | | | \ | | / \ | |/ / | ____|| _ \
\ \/ \/ / | | | \| | | \| | / ^ \ | ' / | |__ | |_) |
\ / | | | . ` | | . ` | / /_\ \ | < | __| | /
\ /\ / | | | |\ | | |\ | / _____ \ | . \ | |____ | |\ \----.
\__/ \__/ |__| |__| \__| |__| \__| /__/ \__\ |__|\__\ |_______|| _| `._____|
In August of 2021, this project was archived.
Winnaker is an auditing tool for Spinnaker. Real testing in a real browser!
- python 2.7
- a copy of ChromeDriver in your PATH
- a spinnaker url
- a sample app
- a sample pipeline
-
Build Docker:
docker build -t winnaker .
-
Config : copy the sample env file and edit it.
cp winnaker/.env-sample .env
-
Run :
docker run --env-file .env -it -v $(pwd)/winnaker-screenshots:/winnaker-screenshots/ winnaker
-
Add options as needed.
- run
./run.sh
- Add options as needed.
- Logs in to
spinnaker
through chromium browser - Searches for
sampleapp
app - Searches for
samplepipeline
the pipeline - Gets the last build status
- Generates screenshot :
./applications.png
./pipelines.png
./last_build_status.png
./login.png
./stage1.png
- Any error will result in a non-zero code to the system.
- Error screenshots will be timestamped.
- screenshot folder by default is winnaker-screenshots
The config file is located at ./src/config.sh but you can simply add any of the options below to your run.sh command.
optional arguments:
-h, --help show this help message and exit
-s, --start starts manual execution of the pipeline
-fb, --forcebake force bake, to be used wth --start
-a APP, --app APP the name of application to look for
-p PIPELINE, --pipeline PIPELINE
the name of pipeline to test
-nl, --nologin will not attempt to login
-hl, --headless will run in an xvfb display
./run.sh
./run.sh -s
./run.sh -s -fb
./run.sh -s -p "deploy to npe"
use with --caution--, will override the sample app.
./run.sh -a "differentapp" -p "different pipeline"
- create a hipchat bot
- grab the post url
it should look like
https://INSERT_HIPCHAT_BASE_URL.com/v2/room/INSERT_ROOM_ID/notification?auth_token=INSERT_TOKEN
pip install git+git://github.com/target/winnaker
- Then in your python script you can import the Winnaker modules. For example you can import the
models
module viafrom winnaker import models
-
Start minikube
minikube start
-
Activate minikube docker in your bash
eval $(minikube docker-env)
-
build docker
make build-docker-nocache
-
Fill out secret and configmaps and change default 5 minute cronjob to your needs. (edit configmap and secret inside kube folder)
-
apply kube files
kubectl apply -f kube