Contributing
2 minute read
Kowabunga API
It’s all about API ;-)
Kowabunga implements a full OpenAPI v3 compliant API.
Starting you journey with Kowabunga an extending its capabilities and features take its roots in API definition
Our API build tools rely on some heavily tuned Jinja macros to factorize code as much as can be.
While we try to keep as much compatibility as can be, Kowabunga’s API is not yet frozen (and won’t before reaching 1.0 stage) and can still evolve. Our API is designed to be self-consumed by the Kahuna server and all code-generated SDK libaries.
Orchestrator and Agents
Server-side and standalone agents (Kiwi, Kaktus but also service ones, like Kawaii, Konvey and others …) are all managed in a single source repository.
They are build with love in Go programming language.
Linux Requirements
On Ubuntu 24.04, you fundamentaly need Ceph librairies (Rados/RBD):
$ sudo apt-get update
$ sudo apt-get install -y gcc librados-dev librbd-dev
and a Go compiler:
$ sudo apt-get install -y golang-1.23
even though it is recommended to always use latest up-to-date release from which Kowabunga’s development is always based on.
macOS Requirements
macOS requires Ceph librairies from Homebrew project:
$ brew tap mulbc/ceph-client
$ brew install ceph-client
Warning
Note that macOS ceph-client is currently outdate and prevents us from using go-ceph v0.34.0+ bindings ;-(
Anyone willing to update the tap would be a lifesaver ;-)
and latest Go compiler:
$ brew install go
Build
Building all Kowabunga binaries is as simple as:
$ make
One can also check for secure programming checks through:
$ make sec
and check for known (to-date) vulnerabilities through:
$ make vuln
Koala WebUI
Our WebUI, Koala is made with Angular and actively looking for contributors and maintainers ;-)
Kowabunga’s purpose being to enforce automation-as-code and configuration-as-code, Koala is designed to be user-facing, yet read-only.