Skip to content

Commit

Permalink
Add developer's guide (#4)
Browse files Browse the repository at this point in the history
* KAMUDEP-26 | Developer's guide

* Some improvements
  • Loading branch information
romcheg authored Oct 26, 2023
1 parent d198189 commit c3f3a44
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 1 deletion.
53 changes: 53 additions & 0 deletions DEVELOPERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Developer's Guide


## Repository content and structure

This repository contains all charts published by Kamu. In general
they could be classified into two categories:

* **Product charts** manage different components of Kamu platform. They
can be installed independently and should be considered production ready.
* **Service charts** are used to either perform different service operations,
running tests or to manage dependencies of Kamu in local or demo environments.
These charts are opinionated and shall not be used in production.

Each chart is stored in its corresponding directory in `charts`. The repository
contains only the sources of the charts. Packages are built and published
automatically within the CI/CD pipeline.


## Introducing changes to charts.

The `master` branch is the source of truth for all released versions of each chart.
For that reason contributors must stick to the following rules:

* Every change requires an approved pull request before being merged.
* Changes to charts should be done along with the version bump.
* **TODO**: Linting tests must pass before a change can be merged.


## Releasing charts

Charts are released automatically after every merge to master by a
[GitHub workflow][1]. The workflow uses [Chart Releaser action][2] to manage
the GitHub Pages and to create GitHub releases in the repository. It
automatically updates the `index.yaml` file, creates tags, builds charts
and uploads binaries together with the changelog.


## Publishing charts and making the repository available

The repository index is published along with the landing page as a GitHub
Pages website. GitHub's embedded workflow automatically generates the website
every time the release workflow pushes new changes to the `gh-pages` branch.
The `README.md` file is the source for the landing page.

The index file references chart packages that are published as GitHub releases.
ArtifactHub [to publish][3] scans the index file periodically to publish
all charts' metadata and living documentation to users.


[1]: https://github.com/kamu-data/helm-charts/blob/master/.github/workflows/release.yml
[2]: https://helm.sh/docs/howto/chart_releaser_action/
[3]: https://artifacthub.io/packages/search?repo=kamu&sort=relevance&page=1
1 change: 0 additions & 1 deletion TODO.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
- setup repository (ghpages?)
- setup CI (linting, testing, release)
- chart.lock
- reuse macros across charts
Expand Down

0 comments on commit c3f3a44

Please sign in to comment.