4.8 KiB
Contributing
First of all, thank you for contributing to FCOS! The goal of this document is to provide everything you need to know in order to contribute to FCOS.
- 🚩 Assumptions
- 🚧 How to Contribute
- 🎮 Setup a development environment
- 👩💻 Development Workflow
- 🌐 Realease Workflow
🚩 Assumptions
- You're familiar with Kubernetes and Helm
- You're familiar with Gitlab and the Merge Request(PR) workflow.
- You've read the FCOS documentation and the README.
- You know about the FCOS community. Please use this for help.
🚧 How to Contribute
- Make sure that the contribution you want to make is explained or detailed in a Gitlab issue! Find an existing issue or open a new one.
- Once done, fork the FCOS Core Chart repository in your Gitlab account. Ask a maintainer if you want your issue to be checked before making a PR.
- Create a new Git branch.
- Review the Development Workflow section that describes the steps to maintain the repository.
- Make the changes on your branch.
- Submit the branch as a PR pointing to the
main
branch of the main fcoscore-chart repository. A maintainer should comment and/or review your Pull Request within a few days. Although depending on the circumstances, it may take longer.
We do not enforce a naming convention for the PRs, but please use something descriptive of your changes, having in mind that the title of your PR will be automatically added to the next release changelog.
🎮 Setup a development environment
In order to use the different tools on this repository, you will first need to:
-
Install GNU Make on your machine. This allows you to execute our predefined subset of commands with the
make
command. -
Install Kubectl on your machine. This will allow you to run commands against your Kubernetes cluster with the
kubectl
command. -
Install Helm. This will allow you to run the
helm
command, enabling the installation and manipulation of Helm charts. -
Install k3d. This will allow you to bootstrap creating a local Kubernetes cluster with the
k3d
command. -
Optional: Use the Nix Package Manager. This will allow you to make use of the nixpkgs, automatically managing all required dependencies from the
nix develop
. In addition you also need the nixpkgs: direnv for automatic environment selection.
👩💻 Development Workflow
- 🔀 Fork the Project
- Check out
make help
- Create your feature branch
git checkout -b feature/branch
- Start the development Cluster
make up
- Make your changes
- Validate chart rendering
make dry-run
- 📋 Testing and Linting
make lint
- Install the chart
make install
- 🐛 Watch all resources to be fully applied
make watch-all
- Commit your changes
git commit -am 'Add some fooBar'
- Push to the branch
git push origin feature/branch
- 🙏 Thank you
Please note that when deploying the helm chart during development, there may be a situation where the
zenflow
container crashes constantly. In this case, please rebuild thek3d
development environment to delete any leftoverpostgres
configuration.
🌐 Realease Workflow
- Install the helm plugins
make get-plugins
- Add the Gitlab repository
helm repo add --username <username> --password <access_token> fcoscore-alpha https://gitlab.fabcity.hamburg/api/v4/projects/248/packages/helm/alpha
- Build the package
make build
- Push the package to Gitlab
make push
Thank you again for reading this through, we can not wait to begin to work with you if you made your way through this contributing guide 😍.