{"id":13819829,"url":"https://github.com/mariadb-operator/mariadb-operator","last_synced_at":"2026-01-08T21:15:10.404Z","repository":{"id":59043063,"uuid":"504253062","full_name":"mariadb-operator/mariadb-operator","owner":"mariadb-operator","description":"🦭 Run and operate MariaDB in a cloud native way","archived":false,"fork":false,"pushed_at":"2025-05-13T20:13:45.000Z","size":16837,"stargazers_count":647,"open_issues_count":129,"forks_count":128,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-13T21:29:09.945Z","etag":null,"topics":["backup","cert-manager","database","galera","high-availability","kubernetes","kubernetes-operator","kubernetes-operators","mariadb","mariadb-galera","mariadb-replication","mariadb-server","maxscale","mysql","openshift","operator","prometheus-operator","s3","sql","storage"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mariadb-operator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-16T17:50:20.000Z","updated_at":"2025-05-11T10:19:42.000Z","dependencies_parsed_at":"2023-09-22T00:01:17.696Z","dependency_job_id":"6deb1736-c279-41d2-9df3-058534282dcd","html_url":"https://github.com/mariadb-operator/mariadb-operator","commit_stats":{"total_commits":2443,"total_committers":52,"mean_commits":46.98076923076923,"dds":0.1383544821940237,"last_synced_commit":"b279297a299d853ec6f0e5b57f407623d29c181f"},"previous_names":["mmontes11/mariadb-operator"],"tags_count":125,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariadb-operator%2Fmariadb-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariadb-operator%2Fmariadb-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariadb-operator%2Fmariadb-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariadb-operator%2Fmariadb-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariadb-operator","download_url":"https://codeload.github.com/mariadb-operator/mariadb-operator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"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":["backup","cert-manager","database","galera","high-availability","kubernetes","kubernetes-operator","kubernetes-operators","mariadb","mariadb-galera","mariadb-replication","mariadb-server","maxscale","mysql","openshift","operator","prometheus-operator","s3","sql","storage"],"created_at":"2024-08-04T08:00:53.628Z","updated_at":"2025-12-24T14:40:26.736Z","avatar_url":"https://github.com/mariadb-operator.png","language":"Go","funding_links":[],"categories":["Go","sql"],"sub_categories":[],"readme":"\u003cp align=\"center\" width=\"100%\"\u003e\n\u003cimg src=\"https://mariadb-operator.github.io/mariadb-operator/assets/mariadb_centered_whitebg.svg\" alt=\"mariadb\" width=\"500\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/release.yml\"\u003e\u003cimg src=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/release.yml/badge.svg\" alt=\"Release\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/helm.yml\"\u003e\u003cimg src=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/helm.yml/badge.svg\" alt=\"Helm\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/helm-release.yml\"\u003e\u003cimg src=\"https://github.com/mariadb-operator/mariadb-operator/actions/workflows/helm-release.yml/badge.svg\" alt=\"Helm release\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://goreportcard.com/report/github.com/mariadb-operator/mariadb-operator\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/mariadb-operator/mariadb-operator\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pkg.go.dev/github.com/mariadb-operator/mariadb-operator/v25\"\u003e\u003cimg src=\"https://pkg.go.dev/badge/github.com/mariadb-operator/mariadb-operator.svg\" alt=\"Go Reference\"\u003e\u003c/a\u003e\n\u003ca href=\"https://r.mariadb.com/join-community-slack\"\u003e\u003cimg alt=\"Slack\" src=\"https://img.shields.io/badge/slack-join_chat-blue?logo=Slack\u0026label=slack\u0026style=flat\"\u003e\u003c/a\u003e\n\u003ca href=\"https://artifacthub.io/packages/helm/mariadb-operator/mariadb-operator\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/mariadb-operator\" alt=\"Artifact Hub\"\u003e\u003c/a\u003e\n\u003ca href=\"https://operatorhub.io/operator/mariadb-operator\"\u003e\u003cimg src=\"https://img.shields.io/badge/Operator%20Hub-mariadb--operator-red\" alt=\"Operator Hub\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 🦭 mariadb-operator\n\nRun and operate MariaDB in a cloud native way. Declaratively manage your MariaDB using Kubernetes [CRDs](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/) rather than imperative commands.\n- Easily provision [standalone MariaDB servers](./docs/standalone.md) in Kubernetes.\n- Multiple [highly available](./docs/high_availability.md) topologies supported:\n  - [Asynchronous replication](./docs/replication.md)\n  - [Synchronous multi-master via Galera](./docs/galera.md)\n  - [MaxScale](./docs/maxscale.md) as database proxy to load balance requests and perform  failover/switchover operations\n- Flexible [storage](./docs/storage.md) configuration. [Volume expansion](./docs/storage.md#volume-resize).\n- [Physical backups](./docs/physical_backup.md) based on [mariadb-backup](https://mariadb.com/docs/server/server-usage/backup-and-restore/mariadb-backup/full-backup-and-restore-with-mariadb-backup) and [Kubernetes VolumeSnapshots](https://kubernetes.io/docs/concepts/storage/volume-snapshots/).\n- [Logical backups](./docs/logical_backup.md) based on [mariadb-dump](https://mariadb.com/docs/server/clients-and-utilities/backup-restore-and-import-clients/mariadb-dump). \n- Multiple [backup storage types](./docs/physical_backup.md#storage-types): S3 compatible, PVCs, Kubernetes volumes and `VolumeSnapshots`.\n- Flexible backup configuration: [scheduling](./docs/physical_backup.md#scheduling), [compression](./docs/physical_backup.md#compression), [encryption](./docs/physical_backup.md#server-side-encryption-with-customer-provided-keys-sse-c), [retention policy](./docs/physical_backup.md#retention-policy), [target policy](./docs/physical_backup.md#target-policy), [timeout](./docs/physical_backup.md#timeout), [staging area](./docs/physical_backup.md#staging-area)...\n- [Target recovery time](./docs/physical_backup.md#target-recovery-time): restore the closest available backup to the specified time.\n- [Bootstrap new instances](./docs/physical_backup.md#restoration) from: Physical backups, logical backups, S3, PVCs, `VolumeSnapshots`...\n- [Cluster-aware rolling update](./docs/updates.md#replicasfirstprimarylast): roll out replica Pods one by one, wait for each of them to become ready, and then proceed with the primary Pod, using `ReplicasFirstPrimaryLast`.\n- Manual [update strategies](./docs/updates.md#update-strategies): `OnDelete` and `Never`.\n- Automated [data-plane updates](./docs/updates.md#auto-update-data-plane).\n- [my.cnf change detection](./docs/configuration.md#mycnf). Automatically trigger [updates](./docs/updates.md) when my.cnf changes.\n- [Suspend](./docs/suspend.md) operator reconciliation for maintenance operations.\n- Issue, configure and rotate [TLS certificates](./docs/tls.md) and CAs.\n- Native integration with [cert-manager](https://github.com/cert-manager/cert-manager). Automatically create `Certificate` resources.\n- [Prometheus metrics](./docs/metrics.md) via [mysqld-exporter](https://github.com/prometheus/mysqld_exporter) and maxscale-exporter.\n- Native integration with [prometheus-operator](https://github.com/prometheus-operator/prometheus-operator). Automatically create `ServiceMonitor` resources.\n- Declaratively manage [SQL resources](./docs/sql_resources.md): [users](./examples/manifests/user.yaml), [grants](./examples/manifests/grant.yaml) and logical [databases](./examples/manifests/database.yaml).\n- Declaratively manage resources in [external MariaDB instances](./docs/external_mariadb.md).\n- Configure [connections](./examples/manifests/connection.yaml) for your applications.\n- Orchestrate and schedule [sql scripts](./examples/manifests/sqljobs).\n- Validation webhooks to provide CRD immutability.\n- Additional printer columns to report the current CRD status.\n- CRDs designed according to the Kubernetes [API conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md).\n- Install it using [helm](./docs/helm.md), [OLM](https://operatorhub.io/operator/mariadb-operator) or [static manifests](./deploy/manifests).\n- Multiple [deployment modes](./docs/helm.md#deployment-modes): cluster-wide and single namespace.\n- Helm chart to deploy [MariaDB clusters](./docs/helm.md#mariadb-cluster-helm-chart) and its associated CRs.\n- Multi-arch distroless [image](https://github.com/orgs/mariadb-operator/packages/container/package/mariadb-operator).\n- [GitOps](#gitops) friendly.\n\n## Documentation\n\nFor the user manual, getting started, guides, and API reference, please see the [**📚docs directory**](./docs/README.md).\n\n## Examples catalog\n\nFor example Custom Resources (CRs) demonstrating how to use the operator, refer to the [**🛠️examples directory**](./examples/manifests/).\n\n## Helm installation\n\nYou can easily deploy the operator to your cluster by installing the `mariadb-operator-crds` and `mariadb-operator` Helm charts:\n\n```bash\nhelm repo add mariadb-operator https://helm.mariadb.com/mariadb-operator\nhelm install mariadb-operator-crds mariadb-operator/mariadb-operator-crds\nhelm install mariadb-operator mariadb-operator/mariadb-operator\n```\n\nRefer to the [helm documentation](./docs/helm.md) for further detail.\n\n## Upgrading from older releases\nWhen upgrading from an older version of the operator, it’s important to understand how both operator and operand resources are affected.  Ensure you read both the [updates section of the helm docs](https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/helm.md#updates), and the [release notes](https://github.com/mariadb-operator/mariadb-operator/releases) for any additional version-specific steps that may be required. Do not attempt to skip intermediate version upgrades. Upgrade progressively through each version to the next.\n\n## Openshift installation\n\nThe Openshift installation is managed separately in the [mariadb-operator-helm](https://github.com/mariadb-operator/mariadb-operator-helm) repository, which contains a [helm based operator](https://sdk.operatorframework.io/docs/building-operators/helm/) that allows you to install `mariadb-operator` via [OLM](https://olm.operatorframework.io/docs/).\n\n## Image compatibility\n`mariadb-operator` is only compatible with official MariaDB images. Refer to the [images documentation](./docs/docker.md) for further detail.\n\n## MariaDB compatibility\n- MariaDB Community \u003e= 10.6\n\n## MaxScale compatibility\n- MaxScale \u003e= 23.08 \n\n## Kubernetes compatibility\n- Kubernetes \u003e= 1.31\n- OpenShift \u003e= 4.18\n\n## Migrate your MariaDB instance to Kubernetes\n\nThis [migration guide](./docs/logical_backup.md#migrating-an-external-mariadb-to-a-mariadb-running-in-kubernetes) will streamline your onboarding process and assist you in migrating your data into a `MariaDB` instance running on Kubernetes.\n\n## Roadmap\n\nWe are actively working on the following features, which will be released in upcoming versions. Stay tuned!\n\n- [ ] [Point In Time Recovery (PITR)](https://github.com/mariadb-operator/mariadb-operator/issues/507)\n- [ ] [Multi-cluster topology](https://github.com/mariadb-operator/mariadb-operator/issues/1543)\n\n## Adopters\n\nPlease create a PR and add your company or project to our [ADOPTERS.md file](./ADOPTERS.md) if you are using our project!\n\n## Contributing\n\nWe welcome and encourage contributions to this project! Please check our [contributing](./CONTRIBUTING.md) and [development](./docs/development.md) guides. PRs welcome!\n\n## Star history\n\n[![Star history](https://api.star-history.com/svg?repos=mariadb-operator/mariadb-operator\u0026type=Date)](https://star-history.com/#mariadb-operator/mariadb-operator\u0026Date)\n\n## Community\n\n- [We Tested and Compared 6 Database Operators. The Results are In!](https://www.youtube.com/watch?v=l33pcnQ4cUQ\u0026t=17m25s) - KubeCon EU, March 2024\n- [Get Started with MariaDB in Kubernetes and mariadb-operator](https://mariadb.com/resources/blog/get-started-with-mariadb-in-kubernetes-and-mariadb-operator/) - MariaDB Corporation blog, February 2024\n- [Run and operate MariaDB in Kubernetes with mariadb-operator](https://mariadb.org/mariadb-in-kubernetes-with-mariadb-operator/) - MariaDB Foundation blog, July 2023\n- [L'enfer des DB SQL sur Kubernetes face à la promesse des opérateurs](https://www.youtube.com/watch?v=d_ka7PlWo1I\u0026t=2415s\u0026ab_channel=KCDFrance) - KCD France, March 2023\n\nJoin us on Slack: **[MariaDB Community Slack](https://r.mariadb.com/join-community-slack)**.\n\n## Enterprise\n\nFor enterprise users, see the __[MariaDB Enterprise Operator](https://mariadb.com/products/enterprise/kubernetes-operator/)__, a commercially supported Kubernetes operator from MariaDB with additional enterprise-grade features.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariadb-operator%2Fmariadb-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariadb-operator%2Fmariadb-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariadb-operator%2Fmariadb-operator/lists"}