Skip to content

Commit 64fce07

Browse files
Mile RosuAMecea
authored andcommitted
Update docs
1 parent 4d7c9bb commit 64fce07

File tree

10 files changed

+109
-185
lines changed

10 files changed

+109
-185
lines changed

README.md

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,46 @@
11
# MySQL Operator
22

3-
MySQL Operator enables bulletproof MySQL on Kubernetes. It manages all the necessary resources for
4-
deploying and managing a highly available MySQL cluster. It provides efortless backups, while
5-
keeping the cluster highly-available.
3+
MySQL Operator enables bulletproof MySQL on Kubernetes. It manages all the necessary resources for deploying and managing a highly available MySQL cluster. It provides efortless backups, while keeping the cluster highly available.
64

7-
MySQL Operator was developed by the awesome engineering team at
8-
[Presslabs](https://www.presslabs.com/), a Managed WordPress Hosting provider.
5+
MySQL Operator was developed by the awesome engineering team at [Presslabs](https://www.presslabs.com/), a Smart Managed WordPress Hosting platform.
96

107
For more open-source projects, check [Presslabs Code](https://www.presslabs.com/code/).
118

129
## Goals and status
1310

1411
The main goals of this operator are:
1512

16-
1. Easily deploy mysql clusters in kubernetes (cluster-per-service model)
13+
1. Easily deploy MySQL clusters in Kubernetes (cluster-per-service model)
1714
2. Friendly to devops (monitoring, availability, scalability and backup stories solved)
1815
3. Out-of-the-box backups (scheduled and on demand) and point-in-time recovery
19-
4. Support for cloning in cluster and across clusters
16+
4. Support for cloning in cluster and across clusters.
2017

21-
The operator is to be considered alpha and not suited for critical production workloads. We
22-
(Presslabs) sucessfully use it at the moment for some non-critical production workloads.
18+
The operator is to be considered alpha and not suitable for critical production workloads. We, Presslabs, sucessfully use it at the moment for some non-critical production workloads.
2319

2420
## Contributing
2521

26-
We welcome all contributions in the form of new issues for feature requests, bugs or directly pull
27-
requests. We are open to discuss ideas to improve the operator and would also love to find out where
28-
and how it is used. The discussion related to the project should happen on Kubernetes Community
29-
[Slack](https://kubernetes.slack.com/messages/CEKQXFR0E/). The current developers of the project can
30-
be reached via [email](mailto:[email protected]) too.
22+
We welcome all contributions in the form of new issues for feature requests, bugs or even pull requests. We are open to discuss ideas on how to improve the operator and would also love to find out where and how it's used. The discussion related to this project should happen on the Kubernetes Community [Slack](https://kubernetes.slack.com/messages/CEKQXFR0E/). The current maintainers of this project can be reached via [email](mailto:[email protected]), too.
3123

3224
## Documentation
3325

3426
More documentation can be found in [docs](docs/README.md)
3527

3628
## Controller deploy
3729

38-
To deploy this controller, use the provided helm chart, by running:
30+
To deploy this controller, use the provided helm chart by running:
3931

4032
```shell
4133
helm repo add presslabs https://presslabs.github.io/charts
4234
helm install presslabs/mysql-operator --name mysql-operator
4335
```
4436

45-
For more information about chart values see chart [README](hack/charts/mysql-operator/README.md).
46-
This chart will deploy the controller along with an
47-
[orchestrator](https://github.com/github/orchestrator) cluster.
37+
For more information about chart values see chart [README](hack/charts/mysql-operator/README.md). This chart will deploy the controller together with an [orchestrator](https://github.com/github/orchestrator) cluster.
4838

49-
__NOTE__: MySQL Operator 0.2.x requires at least Kubernetes 1.11.x (or 1.10.x with alpha features)
50-
while version 0.1.x is known to work with Kubernetes up 1.9.x. For upgrading check the [0.2.x
51-
upgrade notes](#v02x-upgrade) since some manual seps are required.
39+
__NOTE__: MySQL operator 0.2.x requires at least Kubernetes 1.11.x (or 1.10.x with alpha features) while version 0.1.x is known to work with Kubernetes up 1.9.x. To upgrade, check the [0.2.x upgrade notes](#v02x-upgrade) as some additional steps are required.
5240

5341
## Controller upgrade
5442

55-
Maybe upgrading the MySQL operator to a newer version requires additional steps that has to be done.
56-
Those steps can be found in the operator documentation at [upgrades](docs/operator-upgrades.md)
57-
section.
43+
Maybe upgrading the MySQL operator to a newer version requires additional steps. Those steps can be found in the operator's documentation at [upgrades](docs/operator-upgrades.md) section.
5844

5945
## Deploying a cluster
6046

@@ -66,12 +52,8 @@ kubectl apply -f https://raw.githubusercontent.com/presslabs/mysql-operator/mast
6652

6753
## Tech considerations
6854

69-
This project uses Percona Server for MySQL 5.7 because of backup improvements (eg. backup locks),
70-
monitoring improvements and some serviceability improvements (eg. utility user). Although we could
71-
have used MariaDB, our primary focus being WordPress, we wanted a drop-in rather than a fork. In the
72-
future we might support MariaDB if that can be implemented in a compatible way.
55+
This project uses Percona Server for MySQL 5.7 because of backup improvements (eg. backup locks), monitoring improvements and some serviceability improvements (eg. utility user). Although we could have used MariaDB, our primary focus being WordPress, we wanted a drop-in rather than a fork. In the future we might support MariaDB if that can be implemented in a compatible way.
7356

7457
## License
7558

76-
This project is licensed under Apache 2.0 license. Read the [LICENSE](LICENSE) file in the top
77-
distribution directory, for the full license text.
59+
This project is licensed under Apache 2.0 license. Read the [LICENSE](LICENSE) file in the top distribution directory for the full license text.

docs/README.md

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
# Documentation
22

3-
MySQL Operator documentation.
3+
MySQL operator documentation
44

55
## Table of content
66

7-
* [Getting started](getting-started.md), provides an overview over deploying and using MySQL
8-
Operator
9-
* [Deploy a MySQL cluster](deploy-mysql-cluster.md), describes in detail how a cluster can be
10-
installed and configured.
11-
* [Configure backups](backups.md), this section shows how to configure and take backups of a
12-
cluster.
13-
* [Recurrent backups](cluster-recurrent-backups.md), it describe how to setup recurrent backups for
14-
the cluster.
15-
* [Restore a cluster](cluster-recover.md), it describes how to restore a cluster from a backup.
16-
* [How to integrate](integrate-operator.md) the operator with your deployment setup. This presents
17-
a simple way of using MySQL Operator and helm to deploy your application.
18-
* [Orchestrator](orchestrator.md), describes how to access orchestrator for more details.
7+
* [Getting started](getting-started.md) provides an overview over deploying and using the MySQL operator
8+
* [Deploy a MySQL cluster](deploy-mysql-cluster.md) describes in detail how a cluster can be installed and configured
9+
* [Configure backups](backups.md) shows how to configure and take backups of a cluster
10+
* [Recurrent backups](cluster-recurrent-backups.md) describes how to setup recurrent backups for the cluster
11+
* [Restore a cluster](cluster-recover.md) explains how to restore a cluster from a backup
12+
* [How to integrate](integrate-operator.md) the operator with your deployment setup. This presents a simple way of using the MySQL operator and helm to deploy your application
13+
* [Orchestrator](orchestrator.md) shows you how to access the orchestrator for more details.

docs/backups.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: MySQL Operator Backups
3-
linktitle: MySQL Operator Backups
4-
description: MySQL Operator provides effortless backups, while keeping the cluster highly-available.
2+
title: MySQL operator Backups
3+
linktitle: MySQL operator Backups
4+
description: MySQL operator provides effortless backups while keeping the cluster highly-available.
55
categories: [mysql operator]
66
keywords: [mysql operator]
77
menu:
@@ -13,13 +13,13 @@ aliases: []
1313
toc: true
1414
---
1515

16-
Backups are stored on object storage services like S3 or google cloud storage.
16+
Backups are stored on object storage services like S3 or Google Cloud Storage.
1717

18-
In order to be able to store backup, the secret defined under `backupBucketSecretName` must the credentials to store those backups.
18+
In order to be able to store a backup, the secret defined under `backupBucketSecretName` must have the credentials to store those backups.
1919
The backups are uploaded using [Rclone](https://rclone.org/).
20-
The contents of the secret are used to generate an rclone.conf in [hack/docker/mysql-helper/docker-entrypoint.sh](https://github.com/presslabs/mysql-operator/blob/master/hack/docker/mysql-helper/docker-entrypoint.sh).
20+
The contents of the secret are used to generate a rclone.conf in [hack/docker/mysql-helper/docker-entrypoint.sh](https://github.com/presslabs/mysql-operator/blob/master/hack/docker/mysql-helper/docker-entrypoint.sh).
2121

22-
### Setup backup to S3
22+
### Setup a backup on S3
2323

2424
You need to specify the `backupBucketURL` for the cluster to an URL like `s3://BUCKET_NAME`, and a secret.
2525

@@ -53,7 +53,7 @@ Then run this command:
5353
$ kubectl apply -f example-backup-secret.yaml
5454
```
5555

56-
### Setup backup to gcloud
56+
### Setup a backup to Google Cloud
5757
You need to specify the `backupBucketURL` for the cluster to an URL like `gs://BUCKET_NAME`, and a secret.
5858

5959
Create a file named `example-backup-secret.yaml` and copy into it the following YAML code:

docs/cluster-recover.md

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: MySQL Operator recover
3-
linktitle: Recurrent Backups and Initialization
4-
description: MySQL Operator provides a way to recreate clusters from snapshots
2+
title: MySQL Cluster Recovery
3+
linktitle: MySQL cluster recovery
4+
description: MySQL operator provides a way to recreate clusters from snapshots.
55
categories: [mysql operator]
66
keywords: [mysql operator]
77
menu:
@@ -13,15 +13,11 @@ aliases: []
1313
toc: true
1414
---
1515

16-
The MySQL Operator provides a way to recreate a cluster based on a backup (snapshot). Just create a
17-
new cluster with a new name which has `iniBucketURL` field pointed to the right backup.
16+
The MySQL operator provides a way to recreate a cluster based on a backup (snapshot). Just create a new cluster with a new name which has `iniBucketURL` field pointed to the right backup.
1817

1918
## Initialize a cluster from a backup
2019

21-
To initialize a new cluster from a backup just set the `initBucketURL` to the backup that you want
22-
to use. The credentails for connecting to storage provider should be set in the secret specified
23-
into `initBucketSecretName` field , the same as for `backupSecretName` presented in [Backup]({{< ref
24-
"./backups.md" >}}) section. Those fields can point to the same secret.
20+
To initialize a new cluster from a backup just set the `initBucketURL` to the backup that you want to use. The credentails for connecting to the storage provider should be set in the secret specified in the `initBucketSecretName` field , the same as for `backupSecretName` presented in the [Backup]({{< ref "./backups.md" >}}) section. These fields can point to the same secret.
2521

2622

2723
``` yaml
@@ -36,5 +32,4 @@ spec:
3632
initBucketSecretName: backup-secret
3733
```
3834

39-
This configuration gives you a new cluster that is initialized from the
40-
specified backup `gs://bucket_name/path/to/backup.xbackup.gz`.
35+
This configuration gives you a new cluster that is initialized from the specified backup `gs://bucket_name/path/to/backup.xbackup.gz`.

docs/cluster-recurrent-backups.md

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: MySQL Operator recurrent backups
2+
title: MySQL Operator Recurrent Backups
33
linktitle: Recurrent Backups for MySQL cluster
4-
description: MySQL Operator provides effortless recurrent backups while keeping the cluster highly-available.
4+
description: MySQL operator provides effortless recurrent backups while keeping the cluster highly available.
55
categories: [mysql operator]
66
keywords: [mysql operator]
77
menu:
@@ -14,24 +14,16 @@ toc: true
1414
---
1515

1616

17-
In the [Backups]({{< ref "./backups.md" >}}) section we take backups on demand. However,
18-
a cluster can be configured to take recurrent backups. Also, a cluster can be
19-
initialized from an existing backup.
17+
In the [Backups]({{< ref "./backups.md" >}}) section we take backups on demand. However, a cluster can be configured to take recurrent backups. Also, a cluster can be initialized from an existing backup.
2018

21-
To be able to store backups, the secret defined under
22-
`backupBucketSecretName` must contain the credentials needed to access storage
23-
provider(e.g GCS, AWS, etc.)
19+
To be able to store backups, the secret defined under `backupBucketSecretName` must contain the credentials needed to access the storage provider(e.g GCS, AWS, etc.)
2420

2521

2622
### Setup recurrent backups for MySQL cluster
2723

28-
You need to specify the `backupBucketURL` in the cluster spec to an URL like
29-
`s3://BUCKET_NAME`, and the secret with storage credentials (`backupSecretName`).
24+
You need to set the `backupBucketURL` in the cluster spec as an URL like `s3://BUCKET_NAME`, and the secret with storage credentials (`backupSecretName`).
3025

31-
See the example below to configure a cluster that has recurrent backups that
32-
runs once per day at midnight. To schedule a backup set `backupSchedule` field that is under
33-
crontab format. For more details about CRON format can be found
34-
[here](https://godoc.org/github.com/robfig/cron).
26+
See the example below to configure a cluster that has recurrent backups that runs once per day at midnight. To schedule a backup set `backupSchedule` field that is under crontab format. For more details about CRON format can be found [here](https://godoc.org/github.com/robfig/cron).
3527

3628
``` yaml
3729
apiVersion: mysql.presslabs.org/v1alpha1

0 commit comments

Comments
 (0)