|
| 1 | +--- |
| 2 | +title: Contributing |
| 3 | +description: Learn how to controbute to Kowabunga |
| 4 | +weight: 1 |
| 5 | +--- |
| 6 | + |
| 7 | +## Kowabunga API |
| 8 | + |
| 9 | +It's all about API ;-) |
| 10 | + |
| 11 | +Kowabunga implements a full [OpenAPI v3](https://swagger.io/specification/) compliant [API](https://kowabunga.cloud/api/). |
| 12 | + |
| 13 | +Starting you journey with Kowabunga an extending its capabilities and features take its roots in [API definition](https://github.com/kowabunga-cloud/openapi) |
| 14 | + |
| 15 | +Our API build tools rely on some heavily tuned Jinja macros to factorize code as much as can be. |
| 16 | + |
| 17 | +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. |
| 18 | + |
| 19 | +## Orchestrator and Agents |
| 20 | + |
| 21 | +Server-side and standalone agents (**Kiwi**, **Kaktus** but also service ones, like **Kawaii**, **Konvey** and others ...) are all managed in a single [source repository](https://github.com/kowabunga-cloud/kowabunga). |
| 22 | + |
| 23 | +They are build with love in [Go](https://go.dev/) programming language. |
| 24 | + |
| 25 | +### Linux Requirements |
| 26 | + |
| 27 | +On Ubuntu 24.04, you fundamentaly need Ceph librairies (Rados/RBD): |
| 28 | + |
| 29 | +```sh |
| 30 | +$ sudo apt-get update |
| 31 | +$ sudo apt-get install -y gcc librados-dev librbd-dev |
| 32 | +``` |
| 33 | + |
| 34 | +and a Go compiler: |
| 35 | + |
| 36 | +```sh |
| 37 | +$ sudo apt-get install -y golang-1.23 |
| 38 | +``` |
| 39 | + |
| 40 | +even though it is recommended to always use [latest up-to-date release](https://go.dev/dl/) from which Kowabunga's development is always based on. |
| 41 | + |
| 42 | +### macOS Requirements |
| 43 | + |
| 44 | +macOS requires Ceph librairies from Homebrew project: |
| 45 | + |
| 46 | +```sh |
| 47 | +$ brew tap mulbc/ceph-client |
| 48 | +$ brew install ceph-client |
| 49 | +``` |
| 50 | + |
| 51 | +{{< alert color="warning" title="Warning" >}} |
| 52 | +Note that macOS ceph-client is currently outdate and prevents us from using [go-ceph](https://github.com/ceph/go-ceph/tree/master) v0.34.0+ bindings ;-( |
| 53 | + |
| 54 | +Anyone willing to update the tap would be a lifesaver ;-) |
| 55 | +{{< /alert >}} |
| 56 | + |
| 57 | +and latest Go compiler: |
| 58 | + |
| 59 | +```sh |
| 60 | +$ brew install go |
| 61 | +``` |
| 62 | + |
| 63 | +### Build |
| 64 | + |
| 65 | +Building all Kowabunga binaries is as simple as: |
| 66 | + |
| 67 | +```sh |
| 68 | +$ make |
| 69 | +``` |
| 70 | + |
| 71 | +One can also check for [secure programming checks](https://securego.io/) through: |
| 72 | + |
| 73 | +```sh |
| 74 | +$ make sec |
| 75 | +``` |
| 76 | + |
| 77 | +and check for known (to-date) [vulnerabilities](https://go.dev/doc/security/vuln/) through: |
| 78 | + |
| 79 | +```sh |
| 80 | +$ make vuln |
| 81 | +``` |
| 82 | + |
| 83 | +## Koala WebUI |
| 84 | + |
| 85 | +Our WebUI, [Koala](https://github.com/kowabunga-cloud/koala) is made with [Angular](https://angular.dev/) and actively looking for contributors and maintainers ;-) |
| 86 | + |
| 87 | +Kowabunga's purpose being to enforce automation-as-code and configuration-as-code, **Koala** is designed to be user-facing, yet read-only. |
0 commit comments