This is the multi-page printable view of this section. Click here to print.
Developers Corner
- 1: Contributing
- 2: SDK
1 - Contributing
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.
2 - SDK
Kowabunga comes with various ready-to-be consumed SDKs. If you’re a developer and want to interface with Kowabunga services, making REST API calls is great but using a prebuilt library for your programming language of choice is always better.
We currently support the following SDKs:
- Go: reference and implementation.
- Python: reference and implementation.
- JavaScript: with Angular, Aurelia, RxJS and Node.JS implementations and reference.
Information
Note that thanks to OpenAPI v3 compatibility, our SDKs are auto-generated !!
Feel free to help and add support for new ones.
Ansible Collection
Kowabunga comes with fully-documented Ansible Collection, using our Python SDK.
It helps you deploy and maintain your Kowabunga infrastructure thanks to pre-built roles and playbooks and consume Kowabunga’s API to manage its services.
Terraform / OpenTofu Provider
Kowabunga comes with fully-documented Terraform / OpenTofu provider.
It helps you spawn and control various Kowabunga resources following infrastructure-as-code principles.