Percona welcomes and encourages community contributions to help improve Percona Operator for MySQL based on Percona XtraDB Cluster. The Operator automates the creation, modification, or deletion of items in your Percona XtraDB Cluster environment, and contains the necessary Kubernetes settings to maintain a consistent Percona XtraDB Cluster instance.
Before submitting code or documentation contributions, you should first complete the following prerequisites.
Before you can contribute, we kindly ask you to sign our Contributor License Agreement (CLA). You can do this using your GitHub account and one click.
Please make sure to read and observe the Contribution Policy.
Improvement and bugfix tasks for the Operator are tracked in Jira. Although not mandatory, it is a good practice to examine already open Jira issues before submitting a pull request. For bigger contributions, we suggest creating a Jira issue first and discussing it with the engineering team and community before proposing any code changes.
Another good place to discuss Percona Operator for MySQL based on Percona XtraDB Cluster with developers and other community members is the community forum.
Contributions to the source tree should follow the workflow described below:
-
First, you need to fork the repository on GitHub, clone your fork locally, and then sync your local fork to upstream. After that, before starting to work on changes, make sure to always sync your fork with upstream.
-
Create a branch for changes you are planning to make. If there is a Jira ticket related to your contribution, it is recommended to name your branch in the following way:
<Jira issue number>-<short description>
, where the issue number is something likeK8SPXC-622
.Create the branch in your local repo as follows:
git checkout -b K8SPXC-622-fix-feature-X
When your changes are ready, make a commit, mentioning the Jira issue in the commit message, if any:
git add . git commit -m "K8SPXC-622 fixed by ......" git push -u origin K8SPXC-622-fix-feature-X
-
Create a pull request to the main repository on GitHub.
-
When the reviewer makes some comments, address any feedback that comes and update the pull request.
-
When your contribution is accepted, your pull request will be approved and merged to the main branch.
The workflow for documentation is similar, but we store source code for the Percona Operator for MySQL documentation in a separate repository. See the Documentation Contribution Guide for more information.
Find Operator Dockerfile in build folder.
Our Operator uses various container images - databases, proxies, other. You can find the Dockerfiles in percona-docker repository.
- Percona XtraDB Cluster 8.0
- Percona XtraDB Cluster 5.7
- ProxySQL
- HAProxy
- LogCollector
Your pull request will go through an automated build and testing process, and you will have a comment with the report once all tests are over (usually, it takes about 3 hours).
Your contribution will be reviewed by other developers contributing to the project. The more complex your changes are, the more experts will be involved. You will receive feedback and recommendations directly on your pull request on GitHub, so keep an eye on your submission and be prepared to make further amendments. The developers might even provide some concrete suggestions on how to modify your code to better match the project’s expectations.
See e2e-tests/README.md to find out how to build the Operator and run tests.