|
| 1 | +# Contributing Guidelines |
| 2 | + |
| 3 | +The Kubernetes Charts project accepts contributions via GitHub pull requests. This document outlines the process to help get your contribution accepted. |
| 4 | + |
| 5 | +## Contributor's License Agreement (CLA) |
| 6 | + |
| 7 | +To be able to contribute to the New Relic Helm charts repository you have to sign a CLA. |
| 8 | +The CLA signature process is handled by a bot and is presented to the contributor as a |
| 9 | +check in the pull request. |
| 10 | + |
| 11 | +If you didn't sign the CLA yet, follow the procedures in the comment of the bot to do |
| 12 | +so. |
| 13 | + |
| 14 | +## How to contribute to an existing chart |
| 15 | + |
| 16 | +1. Fork this repository, develop and test your chart's changes. |
| 17 | +1. Ensure your Chart changes follow the [technical](#technical-requirements) and [documentation](#documentation-requirements) guidelines, described below. |
| 18 | +1. Submit a pull request. |
| 19 | +1. Automated builds will run for testing and linting. |
| 20 | +1. A code review will automaticallly be requested by the owners of the chart. |
| 21 | +1. The PR is reviewed, merged and the chart is automatically released. |
| 22 | + |
| 23 | +***NOTE***: In order to make testing and merging of PRs easier, please submit changes to multiple charts in separate PRs. |
| 24 | + |
| 25 | +### Technical requirements |
| 26 | + |
| 27 | +* All Chart dependencies should also be submitted independently |
| 28 | +* Must pass the linter (`helm lint`) |
| 29 | +* Must successfully launch with default values (`helm install .`) |
| 30 | + * All pods go to the running state (or NOTES.txt provides further instructions if a required value is missing). |
| 31 | + * All services have at least one endpoint |
| 32 | +* Must include source GitHub repositories for images used in the Chart |
| 33 | +* Images should not have any major security vulnerabilities |
| 34 | +* Must be up-to-date with the latest stable Helm/Kubernetes features |
| 35 | + * Use Deployments in favor of ReplicationControllers |
| 36 | +* Should follow Kubernetes best practices |
| 37 | + * Include Health Checks wherever practical |
| 38 | + * Allow configurable [resource requests and limits](http://kubernetes.io/docs/user-guide/compute-resources/#resource-requests-and-limits-of-pod-and-container) |
| 39 | +* Provide a method for data persistence (if applicable) |
| 40 | +* Support application upgrades |
| 41 | +* Allow customization of the application configuration |
| 42 | +* Provide a secure default configuration |
| 43 | +* Do not leverage alpha features of Kubernetes |
| 44 | +* Includes a [NOTES.txt](https://helm.sh/docs/topics/charts/#chart-license-readme-and-notes) explaining how to use the application after install |
| 45 | +* Follows [best practices](https://helm.sh/docs/chart_best_practices/) |
| 46 | + (especially for [labels](https://helm.sh/docs/chart_best_practices/labels/) |
| 47 | + and [values](https://helm.sh/docs/chart_best_practices/values/)) |
| 48 | + |
| 49 | +### Documentation requirements |
| 50 | + |
| 51 | +* Must include an in-depth `README.md`, including: |
| 52 | + * Short description of the Chart |
| 53 | + * Any prerequisites or requirements |
| 54 | + * Customization: explaining options in `values.yaml` and their defaults |
| 55 | +* Must include a short `NOTES.txt`, including: |
| 56 | + * Any relevant post-installation information for the Chart |
| 57 | + * Instructions on how to access the application or service provided by the Chart |
| 58 | + |
| 59 | +### Pull request approval and release process |
| 60 | + |
| 61 | +A Github Action will run to lint and test the chart's installation. More information abouut it |
| 62 | +can be found in the [Chart Testing documentation](CHART_TESTING.md). |
| 63 | + |
| 64 | +A maintainer of the chart will review the changes and eventually approve them. Any change requires at least one review. |
| 65 | +No pull requests can be merged until at least one maintainer reviews it. A good guide for what to review |
| 66 | +can be found in the [Review Guidelines](REVIEW_GUIDELINES.md). |
| 67 | + |
| 68 | +Once the Chart has been merged, the release will be automatically made by a Github Workflwo using the Github Pages of this repository. |
| 69 | + |
| 70 | +## Support Channels |
| 71 | + |
| 72 | +Whether you are a user or contributor, official support channels include: |
| 73 | + |
| 74 | +- GitHub issues: https://github.com/newrelic-experimental/charts/issues |
| 75 | + |
| 76 | +Before opening a new issue or submitting a new pull request, it's helpful to search the project - it's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of. |
0 commit comments