---
title: "How to Assess an Application for OpenShift Readiness"
canonical: "https://kb.uconn.edu/space/IKB/28728721444/How%20to%20Assess%20an%20Application%20for%20OpenShift%20Readiness"
format: markdown
---
Before deploying to OpenShift, an application must be evaluated to ensure it can run successfully within a container. Use this checklist to determine readiness.

---

## 1. Containerization Basics

The application must be able to run as a containerized image.

| Requirement | Details |
| --- | --- |
| **Dockerfile or S2I compatible** | Your app must build using a Dockerfile or be compatible with OpenShift's Source-to-Image builders |
| **Base image available** | Use a certified image from the Red Hat Container Catalog when possible |
| **Dependencies declared** | All dependencies must be defined in a manifest (requirements.txt, package.json, pom.xml, etc.) |

---

## 2. Adherence to Kubernetes Principles

OpenShift is built on Kubernetes, so your app must follow these checks:

| Principle | Details |
| --- | --- |
| **Statelessness** | OpenShift supports persistent storage, but aim for statelessness where possible to make scaling and updates easier |
| **External Configuration** | Move configuration out of code. Use Environment Variables populated by OpenShift **ConfigMaps** and **Secrets** |
| **Health Endpoints** | Implement readiness and liveness probe endpoints (e.g., `/health`) so Kubernetes can monitor your app |
| **Graceful Shutdown** | Handle SIGTERM signals to allow clean shutdown during rolling updates |

---

## 3. OpenShift-Specific Security Checks

Your application must comply with the following OpenShift security requirements:

### Root Restriction (SCCs)

By default, OpenShift prevents containers from running as the **root user**.

> ⚠️ **Action:** Test that the application can run with an unprivileged, arbitrary user ID. Use `USER 1001` in your Dockerfile.

### Networking

Ensure that your application is compatible with OpenShift's networking model:

| Component | Purpose |
| --- | --- |
| **Services** | Internal communication between pods |
| **Routes** | External access from outside the cluster |
| **Network Policies** | Control traffic flow between namespaces |

---

## 4. Validation and Testing Tools

Before a full deployment, use these resources to verify your setup:

| Tool | Purpose |
| --- | --- |
| **OpenShift Container Platform Registry** | Find certified images guaranteed to work on OpenShift |
| **Web Console** | Use built-in monitoring tools to check performance metrics and deployment health |
| **oc CLI** | Use `oc logs` and `oc describe` to troubleshoot errors |
| **Local Testing** | Run `podman build .` and `podman run` locally before deploying |

---

## Quick Readiness Checklist

- [ ] Application builds successfully as a container image
- [ ] App runs as a non-root user
- [ ] Configuration is externalized via environment variables
- [ ] Dependencies are declared in a manifest file
- [ ] Health check endpoints are implemented
- [ ] App listens on a configurable port
- [ ] Persistent data uses mounted volumes (not local filesystem)

---

*UConn ITS Infrastructure Services — OpenShift Knowledge Base*