phpMyAdmin
phpMyAdmin is a free and open source administration tool for MySQL and MariaDB. As a portable web application written primarily in PHP, it has become one of the most popular MySQL administration tools, especially for web hosting services.
TL;DR
$ helm install stable/phpmyadmin
Introduction
This chart bootstraps a phpMyAdmin deployment on a Kubernetes cluster using the Helm package manager.
Bitnami charts can be used with Kubeapps for deployment and management of Helm Charts in clusters. This chart has been tested to work with NGINX Ingress, cert-manager, fluentd and Prometheus on top of the BKPR.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Installing the Chart
To install the chart with the release name my-release:
$ helm install --name my-release stable/phpmyadmin
The command deploys phpMyAdmin on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip
: List all releases using
helm list
Uninstalling the Chart
To uninstall/delete the my-release deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Configuration
The following table lists the configurable parameters of the phpMyAdmin chart and their default values.
| Parameter | Description | Default |
|---|---|---|
global.imageRegistry |
Global Docker image registry | nil |
global.imagePullSecrets |
Global Docker registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
image.registry |
phpMyAdmin image registry | docker.io |
image.repository |
phpMyAdmin image name | bitnami/phpmyadmin |
image.tag |
phpMyAdmin image tag | {TAG_NAME} |
image.pullPolicy |
Image pull policy | IfNotPresent |
image.pullSecrets |
Specify docker-registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
nameOverride |
String to partially override phpmyadmin.fullname template with a string (will prepend the release name) | nil |
fullnameOverride |
String to fully override phpmyadmin.fullname template with a string | nil |
service.type |
Type of service for phpMyAdmin frontend | ClusterIP |
service.port |
Port to expose service | 80 |
db.port |
Database port to use to connect | 3306 |
db.chartName |
Database suffix if included in the same release | nil |
db.host |
Database host to connect to | nil |
db.bundleTestDB |
Deploy a MariaDB instance for testing purposes | false |
ingress.enabled |
Ingress resource to be added | false |
ingress.annotations |
Ingress annotations | {ingress.kubernetes.io/rewrite-target: /, nginx.ingress.kubernetes.io/rewrite-target: /} |
ingress.path |
Path to access frontend | / |
ingress.host |
Ingress host | nil |
ingress.tls |
TLS for ingress | [] |
resources |
CPU/Memory resource requests/limits | {} |
nodeSelector |
Node labels for pod assignment | {} |
tolerations |
List of node taints to tolerate | [] |
affinity |
Map of node/pod affinities | {} |
podAnnotations |
Pod annotations | {} |
metrics.enabled |
Start a side-car prometheus exporter | false |
metrics.image.registry |
Apache exporter image registry | docker.io |
metrics.image.repository |
Apache exporter image name | bitnami/apache-exporter |
metrics.image.tag |
Apache exporter image tag | {TAG_NAME} |
metrics.image.pullPolicy |
Image pull policy | IfNotPresent |
metrics.image.pullSecrets |
Specify docker-registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
metrics.podAnnotations |
Additional annotations for Metrics exporter pod | {prometheus.io/scrape: "true", prometheus.io/port: "9117"} |
metrics.resources |
Exporter resource requests/limit | {} |
For more information please refer to the bitnami/phpmyadmin image documentation.
Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,
$ helm install --name my-release \
--set db.host=mymariadb,db.port=3306 stable/phpmyadmin
The above command sets the phpMyAdmin to connect to a database in mymariadb host and 3306 port respectively.
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
$ helm install --name my-release -f values.yaml stable/phpmyadmin
Tip
: You can use the default values.yaml
Rolling VS Immutable tags
It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image.
Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist.
Upgrading
To 1.0.0
Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments.
Use the workaround below to upgrade from versions previous to 1.0.0. The following example assumes that the release name is phpmyadmin:
$ kubectl patch deployment phpmyadmin-phpmyadmin --type=json -p='[{"op": "remove", "path": "/spec/selector/matchLabels/chart"}]'