{"id":19040954,"url":"https://github.com/cloudfoundry/pxc-release","last_synced_at":"2025-04-23T21:24:22.606Z","repository":{"id":37298698,"uuid":"120507092","full_name":"cloudfoundry/pxc-release","owner":"cloudfoundry","description":"BOSH release of Percona Xtradb Cluster ","archived":false,"fork":false,"pushed_at":"2025-04-17T16:14:25.000Z","size":36972,"stargazers_count":31,"open_issues_count":2,"forks_count":22,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-04-17T16:16:17.375Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudfoundry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-02-06T18:48:47.000Z","updated_at":"2025-04-14T15:17:49.000Z","dependencies_parsed_at":"2025-04-17T05:02:53.959Z","dependency_job_id":"a73710f6-2903-48f0-88c0-000dd53bdbc4","html_url":"https://github.com/cloudfoundry/pxc-release","commit_stats":{"total_commits":1626,"total_committers":82,"mean_commits":"19.829268292682926","dds":0.8825338253382534,"last_synced_commit":"d6376da3027a2b05d8ebf03b932e4966ef8c14c4"},"previous_names":["cloudfoundry-incubator/pxc-release"],"tags_count":107,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fpxc-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fpxc-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fpxc-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fpxc-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudfoundry","download_url":"https://codeload.github.com/cloudfoundry/pxc-release/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250515767,"owners_count":21443481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T22:26:16.190Z","updated_at":"2025-04-23T21:24:22.590Z","avatar_url":"https://github.com/cloudfoundry.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pxc-release\n\nPercona Xtradb Cluster release\n\npxc-release is a BOSH release of MySQL Galera that can be used as a backing store for Cloudfoundry. The Galera Cluster\nProvider is [Percona Xtradb Cluster](https://www.percona.com/software/mysql-database/percona-xtradb-cluster).\n\nThis bosh release deploys Percona XtraDB Cluster 8.0 by default, but may be configured to deploy legacy Percona XtraDB\nCluster 5.7.\n\n\u003ca name='deploying'\u003e\u003c/a\u003e\n# Deploying\n\n## Deployment Topology\n\n### Galera Clustered Mysql Topology (`pxc-mysql` job)\nThe `pxc-mysql` BOSH job runs mysql using Galera replication, across 1 or several nodes.\n\nThe typical clustered topology is 2 proxy nodes and 3 mysql nodes running the `pxc-mysql` BOSH job. The proxies can be separate vms or co-located with the pxc-mysql nodes.\n\nYou can also run this topology with a single mysql node running the `pxc-mysql` BOSH job and a single proxy job. In this case you would have a galera cluster of size 1, which does not provide high-availability.\n#### Database nodes\n\nThe number of mysql nodes should always be odd, with a minimum count of three, to avoid [split-brain](http://en.wikipedia.org/wiki/Split-brain\\_\\(computing\\)).\nWhen a failed node comes back online, it will automatically rejoin the cluster and sync data from one of the healthy nodes.\n\n#### Proxy nodes\n\nTwo proxy instances are recommended. The second proxy is intended to be used in a failover capacity. You can also choose to place a load balancer in front of both proxies, or use [BOSH DNS](https://bosh.io/docs/dns.html) to send traffic to both proxies.\n\nIn the event the first proxy fails, the second proxy will still be able to route requests to the mysql nodes.\n\nThe proxies both will route traffic to the lowest-indexed healthy galera node, according to the galera index (not bosh index).\n\nTraffic to the MySQL cluster is routed through one or more proxy nodes. The current proxy implementation is [Switchboard](https://github.com/cloudfoundry-incubator/switchboard). This proxy acts as an intermediary between the client and the MySQL server, providing failover between MySQL nodes. The number of nodes is configured by the proxy job instance count in the deployment manifest.\n\n**NOTE:** If the number of proxy nodes is set to zero, apps will be bound to the IP address of the first MySQL node in the cluster. If that IP address should change for any reason (e.g. loss of a VM) or a proxy was subsequently added, one would need to re-bind all apps to the IP address of the new node.\n\nFor more details see the [proxy documentation](/docs/proxy.md).\n\n\u003ca name='deploying-new-deployments'\u003e\u003c/a\u003e\n## Deploying\n\u003ca name='deploying-with-cf-deployment'\u003e\u003c/a\u003e\n### Deploying CF with pxc-release (using the clustered topology)\nUse the [cf-deployment manifests](https://github.com/cloudfoundry/cf-deployment) with the `scale-database-cluster.yml` ops file.\n\n\u003ca name='deploying-clustered\u003e\u003c/a\u003e\n### Deploying pxc-release clustered\n\nTo deploy a clustered deployment, use the [pxc-deployment.yml manifest](pxc-deployment.yml) and apply the [use-clustered](operations/use-clustered.yml) opsfile:\n\n```\nbosh -d \u003cdeployment\u003e deploy --ops-file operations/use-clustered.yml pxc-deployment.yml\n```\n\n\u003ca name='deploying-standalone'\u003e\u003c/a\u003e\n### Deploying pxc-release standalone\n\nTo deploy a standalone deployment, use the [pxc-deployment.yml manifest](pxc-deployment.yml):\n\n```bash\nbosh -d \u003cdeployment\u003e deploy pxc-deployment.yml\n```\n\n### Deploying pxc-release with Percona XtraDB Cluster 5.7 support\n\nPercona XtraDB Cluster 5.7 will be [end-of-life as of October\n2023](https://www.percona.com/services/policies/percona-software-support-lifecycle#lifecycle). You are encouraged to\nupgrade to Percona XtraDB Cluster 8.0 as soon as possible.\n\nFor backwards compatibility, this release can still deploy Percona XtraDB Cluster 5.7 instances by setting the\n`mysql_version` property of the `pxc-mysql` job to \"5.7\".\n\n```bash\nbosh -d \u003cdeployment\u003e deploy pxc-deployment.yml -o operations/mysql-version.yml -v mysql-version=5.7\n```\n\nUpgrades from a deployment using \"mysql_version=5.7\" to a deployment using \"mysql_version=8.0\" is supported.  You are\nencourage to validate application compatibility and backing up your existing Percona XtraDB Cluster 5.7 data before\nundertaking a major database upgrade.\n\n**Important** Percona XtraDB Cluster 8.0 does not support in-place downgrades to Percona XtraDB Cluster 5.7.  If you\nattempt such a downtime, the deployment will fail on the first note with an error in the MySQL error log.\n\n\n\n\u003ca name='contribution-guide'\u003e\u003c/a\u003e\n# Contribution Guide\n\nThe Cloud Foundry team uses GitHub and accepts contributions via\n[pull request](https://help.github.com/articles/using-pull-requests).\n\n## Contributor License Agreement\n\nFollow these steps to make a contribution to any of our open source repositories:\n\n1. Ensure that you have completed our CLA Agreement for\n  [individuals](https://www.cloudfoundry.org/pdfs/CFF_Individual_CLA.pdf) or\n  [corporations](https://www.cloudfoundry.org/pdfs/CFF_Corporate_CLA.pdf).\n\n1. Set your name and email (these should match the information on your submitted CLA)\n\n        git config --global user.name \"Firstname Lastname\"\n        git config --global user.email \"your_email@example.com\"\n\n## General Workflow\n\n1. Fork the repository\n1. Check out the `pxc-8.0` branch of pxc-release\n1. Create a feature branch (`git checkout -b \u003cmy_new_branch\u003e`)\n1. Make changes on your branch\n1. Deploy your changes using pxc as the database for cf-deployment to your dev environment and run [CF Acceptance Tests (CATS)](https://github.com/cloudfoundry/cf-acceptance-tests/)\n1. Push to your fork (`git push origin \u003cmy_new_branch\u003e`) and submit a pull request\n\nWe favor pull requests with very small, single commits with a single purpose.\n\nYour pull request is much more likely to be accepted if it is small and focused with a clear message that conveys the intent of your change.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry%2Fpxc-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudfoundry%2Fpxc-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry%2Fpxc-release/lists"}