Feature | DeploymentConfig (DC) | Deployment (K8s Deployment) |
---|---|---|
Belongs to | OpenShift-only (legacy) | Kubernetes-native (standard) |
API Group | apps.openshift.io/v1 | apps/v1 |
First Introduced | OpenShift 3.x | Kubernetes 1.x |
Purpose | Deploy/manage pods with extra OpenShift features like automatic image rebuilds. | Deploy/manage pods in a standard Kubernetes way. |
Triggers (auto-update) | Supports ImageChangeTrigger, ConfigChangeTrigger easily. | No built-in ImageTrigger (needs webhooks, GitOps, Tekton). |
Build Integration | Tight integration with OpenShift BuildConfig (S2I) + ImageStreams. | No native build integration โ CI/CD pipelines needed separately. |
Rollback & Rollout | Managed by OpenShift internally (easy CLI commands). | Kubernetes-native rollback/rollout (kubectl rollout ). |
Strategy Options | Rolling, Recreate, Custom, and Hooks (pre/post hooks). | RollingUpdate, Recreate (no custom hooks by default). |
UI Support | Fully available in OpenShift 3.x/4.x console until 4.13. | Now the recommended method in OpenShift 4.14+. |
Lifecycle | ๐ฅ Deprecated for feature development (4.14 onward). | ๐ Active, recommended standard. |
Portability | โ Works only on OpenShift. | โ Works on any Kubernetes (EKS, AKS, GKE, OpenShift, etc.). |
๐ Example Differences
โ 1. DeploymentConfig Example (Old way)
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
name: myapp
spec:
replicas: 2
selector:
app: myapp
triggers:
- type: ConfigChange
- type: ImageChange
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:latest
- ImageChangeTrigger automatically pulls new images!
- Used with BuildConfigs and ImageStreams.
โ 2. Deployment Example (Modern way)
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 2
selector:
matchLabels:
app: myapp
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:latest
- Pure Kubernetes Deployment.
- No automatic ImageStream trigger โ you must manually update, use GitOps, webhook, or Tekton.
๐ฅ Key Functional Differences
Aspect | DeploymentConfig | Deployment |
---|---|---|
Auto image update from ImageStream | โ
Built-in (ImageChangeTrigger ) | โ Must build manually (e.g., webhook triggers) |
Build integration (BuildConfig) | โ Tight coupling | โ No coupling; CI/CD external |
OpenShift-only | โ | โ |
Kubernetes standard | โ | โ |
Future use (post-OpenShift 4.14) | โ Legacy | โ Standard |
๐ฏ In Short
If you are usingโฆ | Thenโฆ |
---|---|
OpenShift 3.x or old 4.x apps | You might still find/use DeploymentConfigs. |
OpenShift 4.14+ and new apps | โ Use Kubernetes-native Deployments only. |
๐ Quick Real World Examples:
Use case | Best choice now |
---|---|
Building a new microservice app | Deployment |
Moving an app across clusters (OpenShift โ EKS โ AKS) | Deployment |
Legacy OpenShift S2I project with ImageStream auto-rebuilds | DeploymentConfig (until migrated) |
๐ข Final Message:
- DeploymentConfig = OpenShift-specific, powerful in OpenShift pipelines, but deprecated for new feature development in 4.14+.
- Deployment = Kubernetes standard object, recommended for all new apps moving forward.
๐ Bonus Tip:
โ
You can still use ImageStreams + Deployment together โ
but instead of using โImageChangeTriggers,โ
you need to use external CI/CD pipelines (like Jenkins, Tekton, GitHub Actions) to update the Deployment automatically.
๐ฏ Quick One-Liner:
DeploymentConfig = OpenShift magic for older CI/CD,
Deployment = Kubernetes standard for modern apps.
Iโm a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I am working at Cotocus. I blog tech insights at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at I reviewed , and SEO strategies at Wizbrand.
Do you want to learn Quantum Computing?
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at PINTEREST
Rajesh Kumar at QUORA
Rajesh Kumar at WIZBRAND