Skip to content

Commit e3b65ad

Browse files
committed
doc add developers corner
1 parent dd74c8e commit e3b65ad

4 files changed

Lines changed: 130 additions & 0 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Developers Corner
3+
description: Learn how to contribute to Kowabunga
4+
weight: 13
5+
---
6+
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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.

content/en/docs/developers/sdk.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: SDK
3+
description: Use our SDKs and IAC tools to connect to Kowabunga
4+
weight: 3
5+
---
6+
7+
**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.
8+
9+
We currently support the following SDKs:
10+
11+
- **Go**: [reference](https://pkg.go.dev/github.com/kowabunga-cloud/kowabunga-go) and [implementation](https://github.com/kowabunga-cloud/kowabunga-go).
12+
- **Python**: [reference](https://pypi.org/project/kowabunga/) and [implementation](https://github.com/kowabunga-cloud/kowabunga-python).
13+
- **JavaScript**: with [Angular](https://www.npmjs.com/package/@kowabunga-cloud/angular), [Aurelia](https://www.npmjs.com/package/@kowabunga-cloud/aurelia), [RxJS](https://www.npmjs.com/package/@kowabunga-cloud/rxjs) and [Node.JS](https://www.npmjs.com/package/@kowabunga-cloud/node) implementations and [reference](https://github.com/kowabunga-cloud/kowabunga-javascript).
14+
15+
{{< alert color="success" title="Information" >}}
16+
Note that thanks to [OpenAPI v3](https://kowabunga.cloud/api/) compatibility, our SDKs are [auto-generated](https://openapi-generator.tech/) !!
17+
18+
Feel free to help and add support for new ones.
19+
{{< /alert >}}
20+
21+
## Ansible Collection
22+
23+
Kowabunga comes with [fully-documented](https://ansible.kowabunga.cloud/kowabunga/cloud/index.html#plugins-in-kowabunga-cloud) [Ansible Collection](https://github.com/kowabunga-cloud/ansible-collections-kowabunga), using our **Python** SDK.
24+
25+
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.
26+
27+
## Terraform / OpenTofu Provider
28+
29+
Kowabunga comes with [fully-documented](https://search.opentofu.org/provider/kowabunga-cloud/kowabunga/latest) [Terraform / OpenTofu](https://github.com/kowabunga-cloud/terraform-provider-kowabunga) provider.
30+
31+
It helps you spawn and control various Kowabunga resources following infrastructure-as-code principles.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Test Labs
3+
description: Discover Kowabunga test labs
4+
weight: 2
5+
draft: true
6+
---

0 commit comments

Comments
 (0)