Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jitesoft/mariadb-operator
https://github.com/jitesoft/mariadb-operator
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jitesoft/mariadb-operator
- Owner: jitesoft
- License: mit
- Created: 2021-12-21T08:09:03.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-12T07:51:44.000Z (almost 3 years ago)
- Last Synced: 2024-05-03T04:47:44.659Z (7 months ago)
- Language: C#
- Size: 58.6 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MariaDB Operator
Kubernetes operator for mariadb.
The operator is currently in alpha and should be treated as such.
The code itself is quite messy and only manually tested (tests are coming!).## Whats
### What it does
The operator checks for Custom Resources named `MariaDB`, when one is found,
it will create a deployment (single instance at the moment) with the specs passed
in the CRD and if specified a persistent volume claim for the database data.On resource updates, it will replace the currently deployed mariadb instance
with a new one.On resource removal, the deployment is removed.
_Observe: PVCs created are not currently removed._
### What it should do more
* Create clusters with new `MariaDBCluster` CRD.
* Create service for multi instance databases.
* Create Service for single instance databases.
* Multi operator instances with leader election.
* Optional PVC cleanup.### What it might do more
* Create databases in existing resources with new `MariaDBDatabase` CRD.
* Create users in existing resources with new `MariaDBUser` CRD.
* Create backups with a sidecar and spec via new `MariaDBBackup` CRD.## How
### Installation
Installing the operator is done by applying the files in `kube/`, the folder
contains the `MariaDB` CRD, cluster wide RBAC (which you may change to namespaced if wanted)
and the operator deployment.
Currently, due to limitations of the SDK, the operator is a single instance operator,
deploying multiple cluster-wide operators or operators in the same namespace
(or cluster wide + namespaced) will make the operators fight about the ownership, which is bad.```shell
kubectl apply -f https://raw.githubusercontent.com/jitesoft/mariadb-operator/master/kube/rbac-cluster.yml
kubectl apply -f https://raw.githubusercontent.com/jitesoft/mariadb-operator/master/kube/crd.yml
kubectl apply -f https://raw.githubusercontent.com/jitesoft/mariadb-operator/master/kube/deployment.yml
```### Helm?
No helm deployment exist yet, in case the operator is received well, there might be!
### Usage
Create a new MariaDB resource:
```yaml
apiVersion: jitesoft.tech/v1alpha1
kind: MariaDB
metadata:
name: test-mariadb
namespace: default
spec:
dbName: just-a-db
dbUser: testuser
dbPasswordSecretName: test-maria-secret
dataVolumeClaim:
size: 10Gi
storageType: hcloud-volumes
```Done!
## License and such
The code for the operator is released under the [MIT](LICENSE) license.