๐ Prerequisites:
- OpenShift cluster (Local or Cloud)
ocCLI installed- Basic access (developer/admin rights)
- DockerHub or Red Hat certified WordPress container access
- (Optional) OpenShift Web Console access
๐ฅ Step 1: Login to OpenShift Cluster
oc login --token=<your-token> --server=https://api.<cluster-domain>:6443
Code language: HTML, XML (xml)
Or via the Web Console.
๐ Step 2: Create a New Project (Namespace)
oc new-project wordpress-demo
Code language: JavaScript (javascript)
(You can also create it from Web Console: Projects > Create Project.)
๐ฆ Step 3: Deploy MySQL Database (for WordPress backend)
WordPress needs a database. Let’s deploy a simple MySQL Pod + Service.
a) Create a Secret for MySQL Passwords
oc create secret generic mysql-pass --from-literal=password=Wordpress@123
Code language: JavaScript (javascript)
b) Deploy MySQL using a Template or YAML
Hereโs a sample YAML to create MySQL:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
- name: MYSQL_DATABASE
value: wordpress
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
Code language: JavaScript (javascript)
Apply it:
oc apply -f mysql.yaml
Code language: CSS (css)
โ Now you have a MySQL backend running!
๐ Step 4: Deploy WordPress Application
a) Deploy WordPress using YAML
Hereโs a WordPress Deployment YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress:latest
env:
- name: WORDPRESS_DB_HOST
value: mysql
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 80
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
volumes:
- name: wordpress-persistent-storage
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
spec:
ports:
- port: 80
selector:
app: wordpress
Code language: JavaScript (javascript)
Apply it:
oc apply -f wordpress.yaml
Code language: CSS (css)
โ Now WordPress Pod + Service are deployed!
๐ Step 5: Expose WordPress to Public
Expose WordPress Service via Route (URL):
oc expose service wordpress
This will automatically create a Route.
๐ You can get the URL:
oc get route wordpress
Code language: JavaScript (javascript)
Example output:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
wordpress wordpress-demo.apps.cluster.com wordpress 80 None
Visit the URL in your browser โ you’ll see the WordPress Installation Page ๐
๐ Full Deployment Map:
| Component | Deployed As | Notes |
|---|---|---|
| MySQL Database | Deployment + Service + Secret | WordPress backend |
| WordPress Site | Deployment + Service + Route | Frontend exposed to public |
๐ฌ Final Words:
โ This is the simplest, fastest OpenShift WordPress demo. โ For Production:
- Use Persistent Volumes (PVCs) instead of emptyDir.
- Secure MySQL and WordPress (TLS, strong passwords).
- Set Resource limits (CPU, Memory).
- Scale Replicas.
- Use OpenShift templates or Helm Charts.
๐ฆ Bonus: One-Line Deployment (S2I)
You can also deploy WordPress from Source using OpenShift templates:
oc new-app wordpress
Code language: JavaScript (javascript)
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services โ all in one place.
Explore Hospitals