Here are practical oc commands you’ll use often, grouped by task. Replace placeholders in angle brackets with your values.
Authentication and context
- Login and pick a project:
- oc login https://api.cluster:6443 –token=<token>
- oc projects
- oc project <project-name>
- See current context and user:
- oc whoami
- oc config view –minify
- Command completion (handy quality-of-life):
- oc completion bash | source /dev/stdin
- oc completion zsh | source /dev/stdin
Discoverability and help
- Explain any resource schema and fields:
- oc explain <kind> [–recursive]
- Examples: oc explain pod, oc explain ingresscontroller.spec
- API discovery:
- oc api-resources
- oc api-versions
Get, describe, and watch
- List common resources:
- oc get pods,svc,deploy,route
- oc get all
- oc get events –sort-by=.lastTimestamp
- Include namespace and IPs/ports:
- oc get pod -o wide
- Live updates:
- oc get pod -w
- Detailed inspection:
- oc describe pod/<name>
- oc describe deploy/<name>
Logs, exec, and port-forward
- Logs:
- oc logs pod/<name>
- oc logs deploy/<name> –all-containers –since=1h
- oc logs -f pod/<name> -c <container>
- Exec a shell:
- oc exec -it pod/<name> -c <container> — bash
- Port-forward locally:
- oc port-forward svc/<name> 8080:80
Apply, create, edit, delete
- Declarative changes:
- oc apply -f <file-or-dir>
- oc apply -k <kustomize-dir>
- Imperative creation:
- oc create -f <file>
- Live edit:
- oc edit <kind>/<name>
- Delete:
- oc delete <kind>/<name>
- Patch (merge/strategic):
- oc patch <kind>/<name> –type=merge -p ‘{“spec”:{“replicas”:3}}’
Workloads and rollouts
- Scale:
- oc scale deploy/<name> –replicas=3
- Rollout lifecycle:
- oc rollout status deploy/<name>
- oc rollout history deploy/<name>
- oc rollout undo deploy/<name> –to-revision=2
- Top (resource usage, if metrics available):
- oc top pod
- oc top node
Images and builds (if using OpenShift builds/imagestreams)
- Start/cancel builds:
- oc start-build bc/<name> [–from-dir=./ –follow]
- oc cancel-build <build-name>
- ImageStreams:
- oc get is
- oc import-image is/<name> –confirm
Networking and routes
- Services and endpoints:
- oc get svc
- oc get endpoints
- Routes:
- oc get route
- oc describe route/<name>
Ingress and ingress operator (common admin checks)
- Ingress controllers:
- oc get ingresscontroller -n openshift-ingress-operator
- oc describe ingresscontroller/<name> -n openshift-ingress-operator
- oc get pods -n openshift-ingress
- oc get svc -n openshift-ingress
- Check available replicas quickly:
- oc get -n openshift-ingress-operator ingresscontrollers/<name> -o jsonpath='{$.status.availableReplicas}’
Node, project, and RBAC administration
- Nodes and scheduling:
- oc get nodes
- oc adm cordon <node>; oc adm drain <node> –ignore-daemonsets –delete-emptydir-data
- oc adm uncordon <node>
- Projects (namespaces):
- oc new-project <name> –description=”<text>”
- oc delete project <name>
- RBAC:
- oc adm policy add-role-to-user admin <user> -n <project>
- oc auth can-i get pods -n <project>
Troubleshooting helpers
- Events and conditions:
- oc get events -A –sort-by=.lastTimestamp
- YAML output for diffing/backup:
- oc get <kind>/<name> -o yaml
- Quick label/annotate:
- oc label pod/<name> env=dev –overwrite
- oc annotate route/<name> key=value –overwrite
Quality-of-life
- Selectors and field selectors:
- oc get pods -l app=myapp
- oc get pods –field-selector status.phase=Running
- JsonPath queries:
- oc get pod/<name> -o jsonpath='{.status.podIP}’