Skip to content

phpMyAdmin

Helm chart for deploying phpMyAdmin on Kubernetes using the official phpmyadmin/phpmyadmin Docker image.

Key Features

  • Official phpMyAdmin image based on phpmyadmin/phpmyadmin
  • Single or multi-server connect to one MySQL host or multiple servers
  • Auto-login optional automatic authentication via credentials or existing secret
  • Custom configuration mount config.user.inc.php via ConfigMap
  • Upload limit configurable max upload size for SQL imports
  • Stateless no persistent storage needed, scales horizontally
  • Ingress support configurable ingress with TLS

Installation

HTTPS Repository

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install phpmyadmin helmforge/phpmyadmin --set phpmyadmin.host=mysql.default.svc

OCI Registry

helm install phpmyadmin oci://ghcr.io/helmforgedev/helm/phpmyadmin --set phpmyadmin.host=mysql.default.svc

Basic Example

phpmyadmin:
  host: mysql.default.svc.cluster.local
  port: 3306
  uploadLimit: '128M'

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: pma.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: phpmyadmin-tls
      hosts:
        - pma.example.com

Key Values

KeyDefaultDescription
phpmyadmin.host""MySQL/MariaDB host to connect to
phpmyadmin.hosts""Comma-separated hosts for multi-server mode
phpmyadmin.port3306MySQL port
phpmyadmin.uploadLimit"64M"Max upload size for SQL imports
phpmyadmin.absoluteUri""Absolute URI when behind a reverse proxy
auth.username""MySQL username for auto-login
auth.existingSecret""Existing secret with auto-login credentials
config.customConfig""Raw content for config.user.inc.php
replicaCount1Number of replicas
service.typeClusterIPService type
service.port80Service port
ingress.enabledfalseEnable ingress
ingress.ingressClassName""Ingress class (traefik, nginx, etc.)

More Information