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.toml
tovicky/Rocket.toml
Rocket.example.toml
contains the correct configuration to run with the provided development environment.
- Edit
vicky/Rocket.toml
- Add own machine token to configuration
- This is needed for
fairy
later.
- 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.toml
tofairy/Rocket.toml
- Edit
fairy/Rocket.toml
- Add
machine_token
from last step into this configuration.
- Add
- Enter
fairy
- Run
cargo run --bin fairy
- Enter
dashboard
- Install Dependencies
npm ci
indashboard
Folder
- Run
npm run start
- Enter vickyctl
- Run
cargo run
for help - Provide
VICKY_URL
andVICKY_TOKEN
as 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