Posted in

Useful OpenShift (oc) cli commands!

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:
  • 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}’

Leave a Reply

Your email address will not be published. Required fields are marked *