Skip to main content

pgAdmin

Web-based PostgreSQL database administration tool.

CategoryManagement
Deploy./uis deploy pgadmin
Undeploy./uis undeploy pgadmin
Depends onpostgresql
Required byNone
Helm chartrunix/pgadmin4 (unpinned)
Default namespacedefault

What It Does

pgAdmin provides a web-based interface for managing PostgreSQL databases. It comes pre-configured with a connection to the UIS PostgreSQL instance, so you can browse databases, run queries, and manage schemas immediately after deployment.

Key capabilities:

  • Pre-configured connection — auto-connects to UIS PostgreSQL
  • SQL editor — run queries with syntax highlighting
  • Visual schema browser — explore tables, views, functions
  • 10Gi persistent storage — preserves settings across restarts

Deploy

# Deploy dependency first
./uis deploy postgresql

# Deploy pgAdmin
./uis deploy pgadmin

Verify

# Quick check
./uis verify pgadmin

# Manual check
kubectl get pods -n default -l app.kubernetes.io/name=pgadmin4

# Test the UI
curl -s -o /dev/null -w "%{http_code}" http://pgadmin.localhost
# Expected: 200 or 302

Access the interface at http://pgadmin.localhost.

Configuration

SettingValueNotes
Port80Web UI
Storage10Gi PVCPersistent settings and queries
SecurityUID 5050Runs as pgadmin user

Secrets

VariableFilePurpose
DEFAULT_ADMIN_EMAIL.uis.secrets/secrets-config/default-secrets.envpgAdmin login email
DEFAULT_PGADMIN_PASSWORD.uis.secrets/secrets-config/default-secrets.envpgAdmin login password

Key Files

FilePurpose
ansible/playbooks/641-adm-pgadmin.ymlDeployment playbook
ansible/playbooks/641-adm-remove-pgadmin.ymlRemoval playbook

Undeploy

./uis undeploy pgadmin

Troubleshooting

Pod won't start (OOM): pgAdmin needs at least 512Mi memory. Check:

kubectl describe pod -l app.kubernetes.io/name=pgadmin4
kubectl logs -l app.kubernetes.io/name=pgadmin4

Login fails: Check the admin email and password in secrets. The email must be a valid format (e.g., admin@example.com):

./uis secrets status

Cannot connect to PostgreSQL: Verify PostgreSQL is running and the server definition is correct:

kubectl get pods -l app.kubernetes.io/name=postgresql

Learn More