Vicky, which is the babysitter of Timmy in The Fairly OddParents, is a CD tool for environments with many constraints and dependencies that usually cannot be represented.
Vicky consists out of multiple components to make a spreaded deployment possible.
- vicky
- Main Task Scheduler | Commands fairies to work on tasks
- fairy
- Fairy, can run multiple times. | Asks for tasks from vicky and runs them locally
- dashboard
- Web-UI
- vickyctl
- CLI application to manage vicky
Each component can be developed and deployed individually.
We need to start an instance of vicky, S3 storage (here, minio) and postgres to run anything.
These are provided to you in the deployment folder as a docker compose file.
- Generate TLS client certificates for etcd authentication
nix run .\#generate-certs- Certificates are located at
certs
- Enter
deployment - Start docker-compose collection
docker-compose up -d
TODO @yu-re-ka: Add Information
- Copy
vicky/Rocket.example.tomltovicky/Rocket.tomlRocket.example.tomlcontains the correct configuration to run with the provided development environment.
- Edit
vicky/Rocket.toml- Add own machine token to configuration
- This is needed for
fairylater.
- This is needed for
- Add OIDC authentication provider to configuration
- Add own machine token to configuration
- Enter
vicky - Run
cargo run --bin vicky
- Copy
fairy/Rocket.example.tomltofairy/Rocket.toml - Edit
fairy/Rocket.toml- Add
machine_tokenfrom last step into this configuration.
- Add
- Enter
fairy - Run
cargo run --bin fairy
- Enter
dashboard - Install Dependencies
npm ciindashboardFolder
- Run
npm run start
- Enter vickyctl
- Run
cargo runfor help - Provide
VICKY_URLandVICKY_TOKENas env variables to the program so that it can connect to vicky.- Example:
VICKY_URL=http://127.0.0.1:8000 VICKY_TOKEN=abc1234 cargo run task create --name "Deployment 1" --flake-url github:wobcom/example-vicky --lock-name "Cool Lock" --lock-type WRITE
- Example:
Usage: vickyctl <COMMAND>
Commands:
task Manage tasks on the vicky delegation server
tasks Show all tasks vicky is managing
locks Show all poisoned locks vicky is managing
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version