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