Cheatsheet Openshift 101

Essential oc commands for daily OpenShift operations.

December 2, 2025

Login & Authentication

oc login https://api.cluster-url:6443     # Login to cluster
oc login -u username -p password          # Login with credentials
oc login --token=TOKEN                    # Login with token
oc whoami                                 # Current user
oc logout                                 # Logout

Projects (Namespaces)

oc projects                               # List projects
oc project [name]                         # Switch project
oc new-project [name]                     # Create project
oc delete project [name]                  # Delete project
oc describe project [name]                # Project details

Applications

oc new-app [image]                        # Create app from image
oc new-app [git-repo]                     # Create app from source
oc new-app --docker-image=[image]         # Create from Docker image
oc delete all -l app=[name]               # Delete app and resources

Pods

oc get pods                               # List pods
oc get pods -o wide                       # List pods with details
oc describe pod [name]                    # Pod details
oc logs [pod-name]                        # View logs
oc logs -f [pod-name]                     # Follow logs
oc rsh [pod-name]                         # Shell into pod
oc exec [pod-name] -- [command]           # Execute command

Deployments

oc get dc                                 # List deployment configs
oc get deployments                        # List deployments
oc rollout latest dc/[name]               # Trigger new deployment
oc rollout history dc/[name]              # Deployment history
oc rollout undo dc/[name]                 # Rollback deployment
oc scale dc/[name] --replicas=3           # Scale deployment

Services & Routes

oc get svc                                # List services
oc get routes                             # List routes
oc expose svc/[service-name]              # Create route
oc expose dc/[name] --port=8080           # Expose deployment
oc delete route [name]                    # Delete route

Builds

oc get builds                             # List builds
oc get bc                                 # List build configs
oc start-build [build-config]             # Start build
oc logs -f bc/[build-config]              # Follow build logs
oc cancel-build [build-name]              # Cancel build

Images & Registry

oc get is                                 # List image streams
oc get images                             # List images
oc import-image [name]                    # Import image
oc tag [source] [target]                  # Tag image

Configuration

oc get cm                                 # List config maps
oc get secrets                            # List secrets
oc create configmap [name] --from-file=[file]
oc create secret generic [name] --from-literal=key=value
oc set env dc/[name] KEY=value            # Set environment variable

Storage

oc get pv                                 # List persistent volumes
oc get pvc                                # List persistent volume claims
oc set volume dc/[name] --add --type=pvc --claim-size=1G --mount-path=/data

Security

oc get sa                                 # List service accounts
oc policy add-role-to-user [role] [user]  # Add role to user
oc policy add-role-to-group [role] [group] # Add role to group
oc adm policy add-scc-to-user [scc] [user] # Add security context

Monitoring

oc get events                             # Cluster events
oc top nodes                              # Node resource usage
oc top pods                               # Pod resource usage
oc describe node [name]                   # Node details
oc get endpoints                          # List endpoints

Templates

oc get templates                          # List templates
oc process [template] | oc create -f -    # Process and create from template
oc new-app --template=[template-name]     # Create app from template

Troubleshooting

oc debug dc/[name]                        # Debug deployment
oc debug node/[name]                      # Debug node
oc status                                 # Project status
oc describe [resource] [name]             # Resource details
oc get all                                # List all resources

Useful One-liners

Get all resources in project

oc get all -o name

Port forwarding

oc port-forward pod/[name] 8080:80

Copy files to/from pod

oc cp [local-file] [pod]:[remote-path]
oc cp [pod]:[remote-path] [local-file]

Get pod by label

oc get pods -l app=[label]

Watch resources

oc get pods -w

Export resource as YAML

oc get [resource] [name] -o yaml --export

Common YAML Examples

DeploymentConfig

apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: nginx-dc
spec:
  replicas: 2
  selector:
    app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Route

apiVersion: route.openshift.io/v1
kind: Route
metadata:
  name: nginx-route
spec:
  to:
    kind: Service
    name: nginx-service
  port:
    targetPort: 80

BuildConfig

apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
  name: sample-build
spec:
  source:
    type: Git
    git:
      uri: https://github.com/user/repo.git
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: ImageStreamTag
        name: nodejs:14