126 lines
6.3 KiB
Markdown
126 lines
6.3 KiB
Markdown
# MySQL
|
|
|
|
  
|
|
|
|
## Changelog
|
|
|
|
see [RELEASENOTES.md](RELEASENOTES.md)
|
|
|
|
A Helm chart for MySQL on Kubernetes
|
|
|
|
## TL;DR
|
|
|
|
```bash
|
|
helm repo add groundhog2k https://groundhog2k.github.io/helm-charts/
|
|
helm install my-release groundhog2k/mysql
|
|
```
|
|
|
|
## Introduction
|
|
|
|
This chart uses the original [MySQL image from Docker Hub](https://hub.docker.com/_/mysql) to deploy a stateful MySQL instance in a Kubernetes cluster.
|
|
|
|
It fully supports deployment of the multi-architecture docker image.
|
|
|
|
## Prerequisites
|
|
|
|
- Kubernetes 1.12+
|
|
- Helm 3.x
|
|
- PV provisioner support in the underlying infrastructure
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with the release name `my-release`:
|
|
|
|
```bash
|
|
helm install my-release groundhog2k/mysql
|
|
```
|
|
|
|
## Uninstalling the Chart
|
|
|
|
To uninstall/delete the `my-release` deployment:
|
|
|
|
```bash
|
|
helm uninstall my-release
|
|
```
|
|
|
|
## Common parameters
|
|
|
|
| Key | Type | Default | Description |
|
|
|-----|------|---------|-------------|
|
|
| fullnameOverride | string | `""` | Fully override the deployment name |
|
|
| nameOverride | string | `""` | Partially override the deployment name |
|
|
|
|
## Deployment parameters
|
|
|
|
| Key | Type | Default | Description |
|
|
|-----|------|---------|-------------|
|
|
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
|
|
| image.registry | string | `"docker.io"` | Image registry |
|
|
| image.repository | string | `"mysql"` | Image name |
|
|
| image.tag | string | `""` | Image tag |
|
|
| imagePullSecrets | list | `[]` | Image pull secrets |
|
|
| extraInitContainers | list | `[]` | Extra init containers |
|
|
| extaContainers | list | `[]` | Extra containers for usage as sidecars |
|
|
| startupProbe | object | `see values.yaml` | Startup probe configuration |
|
|
| livenessProbe | object | `see values.yaml` | Liveness probe configuration |
|
|
| readinessProbe | object | `see values.yaml` | Readiness probe configuration |
|
|
| customStartupProbe | object | `{}` | Custom startup probe (overwrites default startup probe configuration) |
|
|
| customLivenessProbe | object | `{}` | Custom liveness probe (overwrites default liveness probe configuration) |
|
|
| customReadinessProbe | object | `{}` | Custom readiness probe (overwrites default readiness probe configuration) |
|
|
| resources | object | `{}` | Resource limits and requests |
|
|
| nodeSelector | object | `{}` | Deployment node selector |
|
|
| podAnnotations | object | `{}` | Additional pod annotations |
|
|
| podSecurityContext | object | `see values.yaml` | Pod security context |
|
|
| securityContext | object | `see values.yaml` | Container security context |
|
|
| env | list | `[]` | Additional container environmment variables |
|
|
| serviceAccount.annotations | object | `{}` | Additional service account annotations |
|
|
| serviceAccount.create | bool | `false` | Enable service account creation |
|
|
| serviceAccount.name | string | `""` | Name of the service account |
|
|
| affinity | object | `{}` | Affinity for pod assignment |
|
|
| tolerations | list | `[]` | Tolerations for pod assignment |
|
|
| podManagementPolicy | string | `"OrderedReady"` | Pod management policy |
|
|
| updateStrategyType | string | `"RollingUpdate"` | Pod update strategy |
|
|
| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
|
|
|
|
## Service paramters
|
|
|
|
| Key | Type | Default | Description |
|
|
|-----|------|---------|-------------|
|
|
| service.type | string | `"ClusterIP"` | Service type |
|
|
| service.port | int | `3306` | MySQL service port |
|
|
| service.nodePort | int | `nil` | The node port (only relevant for type LoadBalancer or NodePort) |
|
|
| service.clusterIP | string | `nil` | The cluster ip address (only relevant for type LoadBalancer or NodePort) |
|
|
| service.loadBalancerIP | string | `nil` | The load balancer ip address (only relevant for type LoadBalancer) |
|
|
| service.annotations | object | `{}` | Additional service annotations |
|
|
|
|
## Storage parameters
|
|
|
|
| Key | Type | Default | Description |
|
|
|-----|------|---------|-------------|
|
|
| storage.accessModes[0] | string | `"ReadWriteOnce"` | Storage access mode |
|
|
| storage.persistentVolumeClaimName | string | `nil` | PVC name when existing storage volume should be used |
|
|
| storage.volumeName | string | `"db-volume"` | Internal volume name and prefix of a created PVC |
|
|
| storage.requestedSize | string | `nil` | Size for new PVC, when no existing PVC is used |
|
|
| storage.className | string | `nil` | Storage class name |
|
|
|
|
## MySQL parameters
|
|
|
|
| Key | Type | Default | Description |
|
|
|-----|------|---------|-------------|
|
|
| userDatabase | object | `{}` | Optional MySQL user database |
|
|
| userDatabase.name | string | `""` | Name of the user database |
|
|
| userDatabase.user | string | `""` | User name with full access to user database|
|
|
| userDatabase.password | string | `""` | Password of created user |
|
|
| settings.rootPassword | string | `nil` | MySQL root password |
|
|
| settings.allowEmptyRootPassword | bool | `false` | Set true to allow an empty root password |
|
|
| settings.skipTZInfo | bool | `false` | Set true to skip loading timezone data during init |
|
|
| settings.arguments | list | `[]` | Additional arguments for mysqld (entrypoint process) |
|
|
| customConfig | string | `nil` | Additional MySQL custom configuration mounted as `/etc/mysql/custom.cnf` |
|
|
| extraEnvSecrets | list | `[]` | A list of existing secrets that will be mounted into the container as environment variables |
|
|
| extraSecretConfigs | string | `nil` | An existing secret with files that will be mounted into the container as custom MySQL configuration files (`*.cnf`) in `/etc/mysql/conf.d` |
|
|
| customScripts | object | `nil` | Optional custom scripts that can be defined inline and will be mounted as files in `/docker-entrypoint-initdb.d` |
|
|
| extraScripts | string | `nil` | An existing configMap with files that will be mounted into the container as script files (`*.sql`, `*.sh`) in `/docker-entrypoint-initdb.d` |
|
|
| extraSecrets | list | `[]` | A list of additional existing secrets that will be mounted into the container |
|
|
| extraSecrets[].name | string | `nil` | Name of the existing K8s secret |
|
|
| extraSecrets[].mountPath | string | `nil` | Mount path where the secret should be mounted into the container (f.e. /mysecretfolder) |
|