helm-chart/CONTRIBUTING.md
justusbunsi 5e5496f15d Add support for ServiceAccount configuration (#451)
### Description of the change

This adds a new values object `serviceAccount`, that allows creating a dedicated ServiceAccount with the Helm Release into the cluster. It supports all common options like labels, annotations, name override (or referring to an externally created ServiceAccount), auto-mount token, image pull secrets.

It supersedes the stale PR #357.

### Benefits

Users can deploy Gitea with more fine-tuned security settings.

### Applicable issues

- related to #448

### Additional information

I've bumped the helm-unittest plugin in the CI build, to be able to use the `exists` and `notExists` feature in the new tests.

### Checklist

- [x] Parameters are documented in the `values.yaml` and added to the `README.md` using [readme-generator-for-helm](https://github.com/bitnami-labs/readme-generator-for-helm)

Reviewed-on: https://gitea.com/gitea/helm-chart/pulls/451
Reviewed-by: pat-s <pat-s@noreply.gitea.com>
Co-authored-by: justusbunsi <sk.bunsenbrenner@gmail.com>
Co-committed-by: justusbunsi <sk.bunsenbrenner@gmail.com>
2023-05-31 08:47:58 +00:00

2.6 KiB

Contribution Guidelines

Any type of contribution is welcome; from new features, bug fixes, tests, refactorings for easier maintainability or documentation improvements.

Development environment

  • node at least current LTS
  • helm
  • make is optional; you may call the commands directly

When using Visual Studio Code as IDE, following plugins might be useful:

Documentation Requirements

The README.md must include all configuration options. The parameters section is generated by extracting the parameter annotations from the values.yaml file, by using this tool.

If changes were made on configuration options, run make readme to update the README file.

Pull Request Requirements

When submitting or updating a PR:

  • make sure it passes CI builds.
  • do not make independent changes in one PR.
  • try to avoid rebases. They make code reviews for large PRs and comments much harder.
  • if applicable, use the PR template for a well-defined PR description.
  • clearly mark breaking changes.

Local development & testing

For local development and testing of pull requests, the following workflow can be used:

  1. Install minikube and helm.
  2. Start a minikube cluster via minikube start.
  3. From the gitea/helm-chart directory execute the following command. This will install the dependencies listed in Chart.yml and deploy the current state of the helm chart found locally. If you want to test a branch, make sure to switch to the respective branch first. helm install --dependency-update gitea . -f values.yaml.
  4. Gitea is now deployed in minikube. To access it, it's port needs to be forwarded first from minikube to localhost first via kubectl --namespace default port-forward svc/gitea-http 3000:3000. Now Gitea is accessible at http://localhost:3000.

Unit tests

# install the unittest plugin
$ helm plugin install https://github.com/helm-unittest/helm-unittest

# run the unittests
make unittests

See plugin documentation for usage instructions.