This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Developers Corner

Learn how to contribute to Kowabunga

1 - Contributing

Learn how to controbute to Kowabunga

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

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

Use our SDKs and IAC tools to connect to Kowabunga

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:

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.