CLI tools
Learning how to use the command-line tools for MicroShift
Abstract
Chapter 1. CLI tools introduction Copy linkLink copied to clipboard!
You can use different command-line interface (CLI) tools to build, deploy, and manage a MicroShift node and workloads. With CLI tools, you can complete various administration and development operations from the terminal to manage deployments and interact with each component of the system.
CLI tools available for use with MicroShift are the following:
-
Kubernetes CLI (
kubectl) -
The OpenShift CLI (
oc) tool with an enabled subset of commands -
Built-in
microshiftcommand types
Commands for multi-node deployments, projects, and developer tools are not supported by MicroShift.
Chapter 2. Getting started with the OpenShift CLI Copy linkLink copied to clipboard!
To use the OpenShift CLI (oc) tool, you must download and install it separately from your MicroShift installation. You can install oc by downloading the binary or by using Homebrew.
2.1. Installing the OpenShift CLI on Linux Copy linkLink copied to clipboard!
You can install the OpenShift CLI (oc) to interact with Red Hat build of MicroShift from a command-line interface. You can install oc on Linux, Windows, or macOS.
If you installed an earlier version of oc, you cannot use it to complete all of the commands in Red Hat build of MicroShift 4.16. Download and install the new version of oc.
Red Hat build of MicroShift version numbering matches OpenShift Container Platform version numbering. Use the oc binary that matches your MicroShift version and has the appropriate RHEL compatibility.
Procedure
- Navigate to the OpenShift Container Platform downloads page on the Red Hat Customer Portal.
- Select the architecture from the Product Variant drop-down list.
- Select the appropriate version from the Version drop-down list.
- Click Download Now next to the OpenShift v4.16 Linux Clients entry and save the file.
Unpack the archive:
tar xvf <file>
$ tar xvf <file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Place the
ocbinary in a directory that is on yourPATH.To check your
PATH, execute the following command:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
After you install the OpenShift CLI, it is available using the
occommand:oc <command>
$ oc <command>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. Installing the OpenShift CLI on Windows Copy linkLink copied to clipboard!
You can install the OpenShift CLI (oc) binary on Windows.
If you installed an earlier version of oc, you cannot use it to complete all of the commands in Red Hat build of MicroShift.
Download and install the new version of oc.
Red Hat build of MicroShift version numbering matches OpenShift Container Platform version numbering. Use the oc binary that matches your MicroShift version and has the appropriate RHEL compatibility.
Procedure
- Navigate to the Download OpenShift Container Platform page on the Red Hat Customer Portal.
- Select the appropriate version from the Version list.
- Click Download Now next to the OpenShift v4.16 Windows Client entry and save the file.
- Extract the archive with a ZIP program.
Move the
ocbinary to a directory that is on yourPATHvariable.To check your
PATHvariable, open the command prompt and execute the following command:path
C:\> pathCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
After you install the OpenShift CLI, it is available using the
occommand:oc <command>
C:\> oc <command>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. Installing the OpenShift CLI on macOS Copy linkLink copied to clipboard!
You can install the OpenShift CLI (oc) binary on macOS.
If you installed an earlier version of oc, you cannot use it to complete all of the commands in Red Hat build of MicroShift.
Download and install the new version of oc.
Red Hat build of MicroShift version numbering matches OpenShift Container Platform version numbering. Use the oc binary that matches your MicroShift version and has the appropriate RHEL compatibility.
Procedure
- Navigate to the Download OpenShift Container Platform on the Red Hat Customer Portal.
- Select the appropriate version from the Version drop-down list.
- Click Download Now next to the OpenShift v4.16 macOS Clients entry and save the file.
- Unpack and unzip the archive.
Move the
ocbinary to a directory on yourPATHvariable.To check your
PATHvariable, open a terminal and execute the following command:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Verify your installation by using an
occommand:oc <command>
$ oc <command>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. Installing the OpenShift CLI by using Homebrew Copy linkLink copied to clipboard!
For macOS, you can install the OpenShift CLI (oc) by using the Homebrew package manager.
Prerequisites
-
You must have Homebrew (
brew) installed.
Procedure
Install the openshift-cli package by running the following command:
brew install openshift-cli
$ brew install openshift-cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
-
Verify your installation by using an
occommand:
oc <command>
$ oc <command>
2.5. Installing the OpenShift CLI by using an RPM Copy linkLink copied to clipboard!
For Red Hat Enterprise Linux (RHEL), you can install the OpenShift CLI (oc) as an RPM if you have an active Red Hat build of MicroShift subscription on your Red Hat account.
You must install oc for RHEL 9 by downloading the binary. Installing oc by using an RPM package is not supported on Red Hat Enterprise Linux (RHEL) 9.
Prerequisites
- Must have root or sudo privileges.
Procedure
Register with Red Hat Subscription Manager:
subscription-manager register
# subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pull the latest subscription data:
subscription-manager refresh
# subscription-manager refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow List the available subscriptions:
subscription-manager list --available --matches '*OpenShift*'
# subscription-manager list --available --matches '*OpenShift*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow In the output for the previous command, find the pool ID for an Red Hat build of MicroShift subscription and attach the subscription to the registered system:
subscription-manager attach --pool=<pool_id>
# subscription-manager attach --pool=<pool_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enable the repositories required by Red Hat build of MicroShift 4.16.
subscription-manager repos --enable="rhocp-4.16-for-rhel-8-x86_64-rpms"
# subscription-manager repos --enable="rhocp-4.16-for-rhel-8-x86_64-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Install the
openshift-clientspackage:yum install openshift-clients
# yum install openshift-clientsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
-
Verify your installation by using an
occommand:
oc <command>
$ oc <command>
Chapter 3. Configuring the OpenShift CLI Copy linkLink copied to clipboard!
Configure OpenShift CLI (oc) based on your preferences for working with it.
3.1. Enabling tab completion Copy linkLink copied to clipboard!
You can enable tab completion for the Bash or Zsh shells.
3.1.1. Enabling tab completion for Bash Copy linkLink copied to clipboard!
After you install the OpenShift CLI (oc), you can enable tab completion to automatically complete oc commands or suggest options when you press Tab. The following procedure enables tab completion for the Bash shell.
Prerequisites
-
You must have the OpenShift CLI (
oc) installed. -
You must have the package
bash-completioninstalled.
Procedure
Save the Bash completion code to a file:
oc completion bash > oc_bash_completion
$ oc completion bash > oc_bash_completionCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the file to
/etc/bash_completion.d/:sudo cp oc_bash_completion /etc/bash_completion.d/
$ sudo cp oc_bash_completion /etc/bash_completion.d/Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can also save the file to a local directory and source it from your
.bashrcfile instead.
Tab completion is enabled when you open a new terminal.
3.1.2. Enabling tab completion for Zsh Copy linkLink copied to clipboard!
After you install the OpenShift CLI (oc), you can enable tab completion to automatically complete oc commands or suggest options when you press Tab. The following procedure enables tab completion for the Zsh shell.
Prerequisites
-
You must have the OpenShift CLI (
oc) installed.
Procedure
To add tab completion for
octo your.zshrcfile, run the following command:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Tab completion is enabled when you open a new terminal.
Chapter 4. Using the oc tool Copy linkLink copied to clipboard!
The optional OpenShift CLI (oc) tool provides a subset of oc commands for MicroShift deployments. Using oc is convenient if you are familiar with OpenShift Container Platform and Kubernetes.
4.1. About the OpenShift CLI Copy linkLink copied to clipboard!
With the OpenShift command-line interface (CLI), the oc command, you can deploy and manage MicroShift projects from a terminal. The CLI oc tool is ideal in the following situations:
- Working directly with project source code
- Scripting Red Hat build of MicroShift operations
- Managing projects while restricted by bandwidth resources
A kubeconfig file must exist for the node to be accessible. The values are applied from built-in default values or a config.yaml, if you created one.
4.2. Using oc with a MicroShift node Copy linkLink copied to clipboard!
Review the following sections to learn how to complete common tasks in MicroShift using the oc CLI.
4.2.1. Viewing pods Copy linkLink copied to clipboard!
Use the oc get pods command to view the pods for the current project.
When you run oc inside a pod and do not specify a namespace, the namespace of the pod is used by default.
oc get pods -o wide
$ oc get pods -o wide
Example output
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE cakephp-ex-1-build 0/1 Completed 0 5m45s 10.131.0.10 ip-10-0-141-74.ec2.internal <none> cakephp-ex-1-deploy 0/1 Completed 0 3m44s 10.129.2.9 ip-10-0-147-65.ec2.internal <none> cakephp-ex-1-ktz97 1/1 Running 0 3m33s 10.128.2.11 ip-10-0-168-105.ec2.internal <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
cakephp-ex-1-build 0/1 Completed 0 5m45s 10.131.0.10 ip-10-0-141-74.ec2.internal <none>
cakephp-ex-1-deploy 0/1 Completed 0 3m44s 10.129.2.9 ip-10-0-147-65.ec2.internal <none>
cakephp-ex-1-ktz97 1/1 Running 0 3m33s 10.128.2.11 ip-10-0-168-105.ec2.internal <none>
4.2.2. Viewing pod logs Copy linkLink copied to clipboard!
Use the oc logs command to view logs for a particular pod.
oc logs cakephp-ex-1-deploy
$ oc logs cakephp-ex-1-deploy
Example output
--> Scaling cakephp-ex-1 to 1 --> Success
--> Scaling cakephp-ex-1 to 1
--> Success
4.2.3. Listing supported API resources Copy linkLink copied to clipboard!
Use the oc api-resources command to view the list of supported API resources on the server.
oc api-resources
$ oc api-resources
Example output
NAME SHORTNAMES APIGROUP NAMESPACED KIND bindings true Binding componentstatuses cs false ComponentStatus configmaps cm true ConfigMap ...
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
...
4.3. Getting help Copy linkLink copied to clipboard!
You can get help with CLI commands and MicroShift resources in the following ways.
Use
oc help --flagto get information about a specific CLI command:Example: Get help for the
oc createcommandoc create --help
$ oc create --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
oc explaincommand to view the description and fields for a particular resource:Example: View documentation for the
Podresourceoc explain pods
$ oc explain podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. oc command errors in MicroShift Copy linkLink copied to clipboard!
Not all OpenShift CLI (oc) commands are relevant for MicroShift deployments. When you use oc to make a request call against an unsupported API, the oc binary usually generates an error message about a resource that cannot be found.
For example, when you run the following
new-projectcommand:oc new-project test
$ oc new-project testCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following error message can be generated:
Error from server (NotFound): the server could not find the requested resource (get projectrequests.project.openshift.io)
Error from server (NotFound): the server could not find the requested resource (get projectrequests.project.openshift.io)Copy to Clipboard Copied! Toggle word wrap Toggle overflow When you run the
get projectscommand, another error can be generated as follows:oc get projects
$ oc get projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following error message can be generated:
error: the server doesn't have a resource type "projects"
error: the server doesn't have a resource type "projects"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapter 5. Using oc and kubectl commands Copy linkLink copied to clipboard!
The Kubernetes command-line interface (CLI), kubectl, can be used to run commands against a Kubernetes cluster. Because MicroShift is a certified Kubernetes distribution, you can use the supported kubectl CLI tool or you can gain extended functionality by using the OpenShift CLI (oc).
5.1. The kubectl CLI tool Copy linkLink copied to clipboard!
You can use the kubectl CLI tool to interact with Kubernetes primitives on your MicroShift node. You can also use existing kubectl workflows and scripts for users coming from another Kubernetes environment, or for those who prefer to use the kubectl CLI.
-
The
kubectlCLI tool is included in the archive when you downloadoc. - For more information, see the Kubernetes CLI tool documentation.
5.2. The oc CLI tool Copy linkLink copied to clipboard!
The oc CLI tool offers the same capabilities as the kubectl CLI tool, but it extends to natively support additional OpenShift Container Platform features, including:
Route resource
The
Routeresource object is specific to OpenShift Container Platform distributions, and builds upon standard Kubernetes primitives.Additional commands
The additional command
oc new-app, for example, makes it easier to get new applications started using existing source code or pre-built images.
If you installed an earlier version of oc, you might not be able use it to complete all of the commands in MicroShift 4.16. If you want the latest features, you must download and install the latest version of oc that corresponds with your MicroShift version.
Using new capabilities often requires the latest oc binary. A 4.17 server might have additional capabilities that a 4.12 oc binary cannot use and a 4.17 oc binary might have additional capabilities that are unsupported by a 4.13 server.
|
X.Y ( |
X.Y+N [a] ( | |
| X.Y (Server) | Fully compatible. |
The |
| X.Y+N [a] (Server) |
The | Fully compatible. |
[a]
Where N is a number greater than or equal to 1.
| ||
Chapter 6. OpenShift CLI command reference Copy linkLink copied to clipboard!
Descriptions and example commands for OpenShift CLI (oc) commands are included in this reference document. You must have cluster-admin or equivalent permissions to use these commands. To list administrator commands and information about them, use the following commands:
Enter the
oc adm -hcommand to list all administrator commands:Command syntax
oc adm -h
$ oc adm -hCopy to Clipboard Copied! Toggle word wrap Toggle overflow Enter the
oc <command> --helpcommand to get additional details for a specific command:Command syntax
oc <command> --help
$ oc <command> --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Using oc <command> --help lists details for any oc command. Not all oc commands apply to using Red Hat build of MicroShift.
6.1. OpenShift CLI (oc) developer commands Copy linkLink copied to clipboard!
6.1.1. oc annotate Copy linkLink copied to clipboard!
Update the annotations on a resource
Example usage
6.1.2. oc api-resources Copy linkLink copied to clipboard!
Print the supported API resources on the server
Example usage
6.1.3. oc api-versions Copy linkLink copied to clipboard!
Print the supported API versions on the server, in the form of "group/version"
Example usage
# Print the supported API versions oc api-versions
# Print the supported API versions
oc api-versions
6.1.4. oc apply Copy linkLink copied to clipboard!
Apply a configuration to a resource by file name or stdin
Example usage
6.1.5. oc apply edit-last-applied Copy linkLink copied to clipboard!
Edit latest last-applied-configuration annotations of a resource/object
Example usage
# Edit the last-applied-configuration annotations by type/name in YAML oc apply edit-last-applied deployment/nginx # Edit the last-applied-configuration annotations by file in JSON oc apply edit-last-applied -f deploy.yaml -o json
# Edit the last-applied-configuration annotations by type/name in YAML
oc apply edit-last-applied deployment/nginx
# Edit the last-applied-configuration annotations by file in JSON
oc apply edit-last-applied -f deploy.yaml -o json
6.1.6. oc apply set-last-applied Copy linkLink copied to clipboard!
Set the last-applied-configuration annotation on a live object to match the contents of a file
Example usage
6.1.7. oc apply view-last-applied Copy linkLink copied to clipboard!
View the latest last-applied-configuration annotations of a resource/object
Example usage
# View the last-applied-configuration annotations by type/name in YAML oc apply view-last-applied deployment/nginx # View the last-applied-configuration annotations by file in JSON oc apply view-last-applied -f deploy.yaml -o json
# View the last-applied-configuration annotations by type/name in YAML
oc apply view-last-applied deployment/nginx
# View the last-applied-configuration annotations by file in JSON
oc apply view-last-applied -f deploy.yaml -o json
6.1.8. oc attach Copy linkLink copied to clipboard!
Attach to a running container
Example usage
6.1.9. oc auth can-i Copy linkLink copied to clipboard!
Check whether an action is allowed
Example usage
6.1.10. oc auth reconcile Copy linkLink copied to clipboard!
Reconciles rules for RBAC role, role binding, cluster role, and cluster role binding objects
Example usage
# Reconcile RBAC resources from a file oc auth reconcile -f my-rbac-rules.yaml
# Reconcile RBAC resources from a file
oc auth reconcile -f my-rbac-rules.yaml
6.1.11. oc auth whoami Copy linkLink copied to clipboard!
Experimental: Check self subject attributes
Example usage
# Get your subject attributes. oc auth whoami # Get your subject attributes in JSON format. oc auth whoami -o json
# Get your subject attributes.
oc auth whoami
# Get your subject attributes in JSON format.
oc auth whoami -o json
6.1.12. oc cluster-info Copy linkLink copied to clipboard!
Display cluster information
Example usage
# Print the address of the control plane and cluster services oc cluster-info
# Print the address of the control plane and cluster services
oc cluster-info
6.1.13. oc cluster-info dump Copy linkLink copied to clipboard!
Dump relevant information for debugging and diagnosis
Example usage
6.1.14. oc completion Copy linkLink copied to clipboard!
Output shell completion code for the specified shell (bash, zsh, fish, or powershell)
Example usage
6.1.15. oc config current-context Copy linkLink copied to clipboard!
Display the current-context
Example usage
# Display the current-context oc config current-context
# Display the current-context
oc config current-context
6.1.16. oc config delete-cluster Copy linkLink copied to clipboard!
Delete the specified cluster from the kubeconfig
Example usage
# Delete the minikube cluster oc config delete-cluster minikube
# Delete the minikube cluster
oc config delete-cluster minikube
6.1.17. oc config delete-context Copy linkLink copied to clipboard!
Delete the specified context from the kubeconfig
Example usage
# Delete the context for the minikube cluster oc config delete-context minikube
# Delete the context for the minikube cluster
oc config delete-context minikube
6.1.18. oc config delete-user Copy linkLink copied to clipboard!
Delete the specified user from the kubeconfig
Example usage
# Delete the minikube user oc config delete-user minikube
# Delete the minikube user
oc config delete-user minikube
6.1.19. oc config get-clusters Copy linkLink copied to clipboard!
Display clusters defined in the kubeconfig
Example usage
# List the clusters that oc knows about oc config get-clusters
# List the clusters that oc knows about
oc config get-clusters
6.1.20. oc config get-contexts Copy linkLink copied to clipboard!
Describe one or many contexts
Example usage
# List all the contexts in your kubeconfig file oc config get-contexts # Describe one context in your kubeconfig file oc config get-contexts my-context
# List all the contexts in your kubeconfig file
oc config get-contexts
# Describe one context in your kubeconfig file
oc config get-contexts my-context
6.1.21. oc config get-users Copy linkLink copied to clipboard!
Display users defined in the kubeconfig
Example usage
# List the users that oc knows about oc config get-users
# List the users that oc knows about
oc config get-users
6.1.22. oc config new-admin-kubeconfig Copy linkLink copied to clipboard!
Generate, make the server trust, and display a new admin.kubeconfig.
Example usage
# Generate a new admin kubeconfig oc config new-admin-kubeconfig
# Generate a new admin kubeconfig
oc config new-admin-kubeconfig
6.1.23. oc config new-kubelet-bootstrap-kubeconfig Copy linkLink copied to clipboard!
Generate, make the server trust, and display a new kubelet /etc/kubernetes/kubeconfig.
Example usage
# Generate a new kubelet bootstrap kubeconfig oc config new-kubelet-bootstrap-kubeconfig
# Generate a new kubelet bootstrap kubeconfig
oc config new-kubelet-bootstrap-kubeconfig
6.1.24. oc config refresh-ca-bundle Copy linkLink copied to clipboard!
Update the OpenShift CA bundle by contacting the apiserver.
Example usage
6.1.25. oc config rename-context Copy linkLink copied to clipboard!
Rename a context from the kubeconfig file
Example usage
# Rename the context 'old-name' to 'new-name' in your kubeconfig file oc config rename-context old-name new-name
# Rename the context 'old-name' to 'new-name' in your kubeconfig file
oc config rename-context old-name new-name
6.1.26. oc config set Copy linkLink copied to clipboard!
Set an individual value in a kubeconfig file
Example usage
6.1.27. oc config set-cluster Copy linkLink copied to clipboard!
Set a cluster entry in kubeconfig
Example usage
6.1.28. oc config set-context Copy linkLink copied to clipboard!
Set a context entry in kubeconfig
Example usage
# Set the user field on the gce context entry without touching other values oc config set-context gce --user=cluster-admin
# Set the user field on the gce context entry without touching other values
oc config set-context gce --user=cluster-admin
6.1.29. oc config set-credentials Copy linkLink copied to clipboard!
Set a user entry in kubeconfig
Example usage
6.1.30. oc config unset Copy linkLink copied to clipboard!
Unset an individual value in a kubeconfig file
Example usage
# Unset the current-context oc config unset current-context # Unset namespace in foo context oc config unset contexts.foo.namespace
# Unset the current-context
oc config unset current-context
# Unset namespace in foo context
oc config unset contexts.foo.namespace
6.1.31. oc config use-context Copy linkLink copied to clipboard!
Set the current-context in a kubeconfig file
Example usage
# Use the context for the minikube cluster oc config use-context minikube
# Use the context for the minikube cluster
oc config use-context minikube
6.1.32. oc config view Copy linkLink copied to clipboard!
Display merged kubeconfig settings or a specified kubeconfig file
Example usage
6.1.33. oc cp Copy linkLink copied to clipboard!
Copy files and directories to and from containers
Example usage
6.1.34. oc create Copy linkLink copied to clipboard!
Create a resource from a file or from stdin
Example usage
6.1.35. oc create clusterrole Copy linkLink copied to clipboard!
Create a cluster role
Example usage
6.1.36. oc create clusterrolebinding Copy linkLink copied to clipboard!
Create a cluster role binding for a particular cluster role
Example usage
# Create a cluster role binding for user1, user2, and group1 using the cluster-admin cluster role oc create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1
# Create a cluster role binding for user1, user2, and group1 using the cluster-admin cluster role
oc create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1
6.1.37. oc create configmap Copy linkLink copied to clipboard!
Create a config map from a local file, directory or literal value
Example usage
6.1.38. oc create cronjob Copy linkLink copied to clipboard!
Create a cron job with the specified name
Example usage
# Create a cron job oc create cronjob my-job --image=busybox --schedule="*/1 * * * *" # Create a cron job with a command oc create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
# Create a cron job
oc create cronjob my-job --image=busybox --schedule="*/1 * * * *"
# Create a cron job with a command
oc create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
6.1.39. oc create deployment Copy linkLink copied to clipboard!
Create a deployment with the specified name
Example usage
6.1.40. oc create ingress Copy linkLink copied to clipboard!
Create an ingress with the specified name
Example usage
6.1.41. oc create job Copy linkLink copied to clipboard!
Create a job with the specified name
Example usage
6.1.42. oc create namespace Copy linkLink copied to clipboard!
Create a namespace with the specified name
Example usage
# Create a new namespace named my-namespace oc create namespace my-namespace
# Create a new namespace named my-namespace
oc create namespace my-namespace
6.1.43. oc create poddisruptionbudget Copy linkLink copied to clipboard!
Create a pod disruption budget with the specified name
Example usage
6.1.44. oc create priorityclass Copy linkLink copied to clipboard!
Create a priority class with the specified name
Example usage
6.1.45. oc create quota Copy linkLink copied to clipboard!
Create a quota with the specified name
Example usage
# Create a new resource quota named my-quota oc create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10 # Create a new resource quota named best-effort oc create quota best-effort --hard=pods=100 --scopes=BestEffort
# Create a new resource quota named my-quota
oc create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10
# Create a new resource quota named best-effort
oc create quota best-effort --hard=pods=100 --scopes=BestEffort
6.1.46. oc create role Copy linkLink copied to clipboard!
Create a role with single rule
Example usage
6.1.47. oc create rolebinding Copy linkLink copied to clipboard!
Create a role binding for a particular role or cluster role
Example usage
# Create a role binding for user1, user2, and group1 using the admin cluster role oc create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1 # Create a role binding for serviceaccount monitoring:sa-dev using the admin role oc create rolebinding admin-binding --role=admin --serviceaccount=monitoring:sa-dev
# Create a role binding for user1, user2, and group1 using the admin cluster role
oc create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
# Create a role binding for serviceaccount monitoring:sa-dev using the admin role
oc create rolebinding admin-binding --role=admin --serviceaccount=monitoring:sa-dev
6.1.48. oc create route edge Copy linkLink copied to clipboard!
Create a route that uses edge TLS termination
Example usage
6.1.49. oc create route passthrough Copy linkLink copied to clipboard!
Create a route that uses passthrough TLS termination
Example usage
6.1.50. oc create route reencrypt Copy linkLink copied to clipboard!
Create a route that uses reencrypt TLS termination
Example usage
6.1.51. oc create secret docker-registry Copy linkLink copied to clipboard!
Create a secret for use with a Docker registry
Example usage
# If you don't already have a .dockercfg file, you can create a dockercfg secret directly by using: oc create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL # Create a new secret named my-secret from ~/.docker/config.json oc create secret docker-registry my-secret --from-file=.dockerconfigjson=path/to/.docker/config.json
# If you don't already have a .dockercfg file, you can create a dockercfg secret directly by using:
oc create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
# Create a new secret named my-secret from ~/.docker/config.json
oc create secret docker-registry my-secret --from-file=.dockerconfigjson=path/to/.docker/config.json
6.1.52. oc create secret generic Copy linkLink copied to clipboard!
Create a secret from a local file, directory, or literal value
Example usage
6.1.53. oc create secret tls Copy linkLink copied to clipboard!
Create a TLS secret
Example usage
# Create a new TLS secret named tls-secret with the given key pair oc create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
# Create a new TLS secret named tls-secret with the given key pair
oc create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
6.1.54. oc create service clusterip Copy linkLink copied to clipboard!
Create a ClusterIP service
Example usage
# Create a new ClusterIP service named my-cs oc create service clusterip my-cs --tcp=5678:8080 # Create a new ClusterIP service named my-cs (in headless mode) oc create service clusterip my-cs --clusterip="None"
# Create a new ClusterIP service named my-cs
oc create service clusterip my-cs --tcp=5678:8080
# Create a new ClusterIP service named my-cs (in headless mode)
oc create service clusterip my-cs --clusterip="None"
6.1.55. oc create service externalname Copy linkLink copied to clipboard!
Create an ExternalName service
Example usage
# Create a new ExternalName service named my-ns oc create service externalname my-ns --external-name bar.com
# Create a new ExternalName service named my-ns
oc create service externalname my-ns --external-name bar.com
6.1.56. oc create service loadbalancer Copy linkLink copied to clipboard!
Create a LoadBalancer service
Example usage
# Create a new LoadBalancer service named my-lbs oc create service loadbalancer my-lbs --tcp=5678:8080
# Create a new LoadBalancer service named my-lbs
oc create service loadbalancer my-lbs --tcp=5678:8080
6.1.57. oc create service nodeport Copy linkLink copied to clipboard!
Create a NodePort service
Example usage
# Create a new NodePort service named my-ns oc create service nodeport my-ns --tcp=5678:8080
# Create a new NodePort service named my-ns
oc create service nodeport my-ns --tcp=5678:8080
6.1.58. oc create serviceaccount Copy linkLink copied to clipboard!
Create a service account with the specified name
Example usage
# Create a new service account named my-service-account oc create serviceaccount my-service-account
# Create a new service account named my-service-account
oc create serviceaccount my-service-account
6.1.59. oc create token Copy linkLink copied to clipboard!
Request a service account token
Example usage
6.1.60. oc debug Copy linkLink copied to clipboard!
Launch a new instance of a pod for debugging
Example usage
6.1.61. oc delete Copy linkLink copied to clipboard!
Delete resources by file names, stdin, resources and names, or by resources and label selector
Example usage
6.1.62. oc describe Copy linkLink copied to clipboard!
Show details of a specific resource or group of resources
Example usage
6.1.63. oc diff Copy linkLink copied to clipboard!
Diff the live version against a would-be applied version
Example usage
# Diff resources included in pod.json oc diff -f pod.json # Diff file read from stdin cat service.yaml | oc diff -f -
# Diff resources included in pod.json
oc diff -f pod.json
# Diff file read from stdin
cat service.yaml | oc diff -f -
6.1.64. oc edit Copy linkLink copied to clipboard!
Edit a resource on the server
Example usage
6.1.65. oc events Copy linkLink copied to clipboard!
List events
Example usage
6.1.66. oc exec Copy linkLink copied to clipboard!
Execute a command in a container
Example usage
6.1.67. oc explain Copy linkLink copied to clipboard!
Get documentation for a resource
Example usage
# Get the documentation of the resource and its fields oc explain pods # Get the documentation of a specific field of a resource oc explain pods.spec.containers
# Get the documentation of the resource and its fields
oc explain pods
# Get the documentation of a specific field of a resource
oc explain pods.spec.containers
6.1.68. oc expose Copy linkLink copied to clipboard!
Expose a replicated application as a service or route
Example usage
6.1.69. oc extract Copy linkLink copied to clipboard!
Extract secrets or config maps to disk
Example usage
6.1.70. oc get Copy linkLink copied to clipboard!
Display one or many resources
Example usage
6.1.71. oc image append Copy linkLink copied to clipboard!
Add layers to images and push them to a registry
Example usage
6.1.72. oc image extract Copy linkLink copied to clipboard!
Copy files from an image to the file system
Example usage
6.1.73. oc image info Copy linkLink copied to clipboard!
Display information about an image
Example usage
6.1.74. oc image mirror Copy linkLink copied to clipboard!
Mirror images from one repository to another
Example usage
6.1.75. oc kustomize Copy linkLink copied to clipboard!
Build a kustomization target from a directory or URL
Example usage
6.1.76. oc label Copy linkLink copied to clipboard!
Update the labels on a resource
Example usage
6.1.77. oc logs Copy linkLink copied to clipboard!
Print the logs for a container in a pod
Example usage
6.1.78. oc observe Copy linkLink copied to clipboard!
Observe changes to resources and react to them (experimental)
Example usage
6.1.79. oc patch Copy linkLink copied to clipboard!
Update fields of a resource
Example usage
6.1.80. oc plugin list Copy linkLink copied to clipboard!
List all visible plugin executables on a user’s PATH
Example usage
# List all available plugins oc plugin list
# List all available plugins
oc plugin list
6.1.81. oc policy add-role-to-user Copy linkLink copied to clipboard!
Add a role to users or service accounts for the current project
Example usage
# Add the 'view' role to user1 for the current project oc policy add-role-to-user view user1 # Add the 'edit' role to serviceaccount1 for the current project oc policy add-role-to-user edit -z serviceaccount1
# Add the 'view' role to user1 for the current project
oc policy add-role-to-user view user1
# Add the 'edit' role to serviceaccount1 for the current project
oc policy add-role-to-user edit -z serviceaccount1
6.1.82. oc policy scc-review Copy linkLink copied to clipboard!
Check which service account can create a pod
Example usage
6.1.83. oc policy scc-subject-review Copy linkLink copied to clipboard!
Check whether a user or a service account can create a pod
Example usage
6.1.84. oc port-forward Copy linkLink copied to clipboard!
Forward one or more local ports to a pod
Example usage
6.1.85. oc proxy Copy linkLink copied to clipboard!
Run a proxy to the Kubernetes API server
Example usage
6.1.86. oc rollback Copy linkLink copied to clipboard!
Revert part of an application back to a previous deployment
Example usage
6.1.87. oc rollout cancel Copy linkLink copied to clipboard!
Cancel the in-progress deployment
Example usage
# Cancel the in-progress deployment based on 'nginx' oc rollout cancel dc/nginx
# Cancel the in-progress deployment based on 'nginx'
oc rollout cancel dc/nginx
6.1.88. oc rollout history Copy linkLink copied to clipboard!
View rollout history
Example usage
# View the rollout history of a deployment oc rollout history dc/nginx # View the details of deployment revision 3 oc rollout history dc/nginx --revision=3
# View the rollout history of a deployment
oc rollout history dc/nginx
# View the details of deployment revision 3
oc rollout history dc/nginx --revision=3
6.1.89. oc rollout latest Copy linkLink copied to clipboard!
Start a new rollout for a deployment config with the latest state from its triggers
Example usage
# Start a new rollout based on the latest images defined in the image change triggers oc rollout latest dc/nginx # Print the rolled out deployment config oc rollout latest dc/nginx -o json
# Start a new rollout based on the latest images defined in the image change triggers
oc rollout latest dc/nginx
# Print the rolled out deployment config
oc rollout latest dc/nginx -o json
6.1.90. oc rollout pause Copy linkLink copied to clipboard!
Mark the provided resource as paused
Example usage
# Mark the nginx deployment as paused. Any current state of # the deployment will continue its function, new updates to the deployment will not # have an effect as long as the deployment is paused oc rollout pause dc/nginx
# Mark the nginx deployment as paused. Any current state of
# the deployment will continue its function, new updates to the deployment will not
# have an effect as long as the deployment is paused
oc rollout pause dc/nginx
6.1.91. oc rollout restart Copy linkLink copied to clipboard!
Restart a resource
Example usage
6.1.92. oc rollout resume Copy linkLink copied to clipboard!
Resume a paused resource
Example usage
# Resume an already paused deployment oc rollout resume dc/nginx
# Resume an already paused deployment
oc rollout resume dc/nginx
6.1.93. oc rollout retry Copy linkLink copied to clipboard!
Retry the latest failed rollout
Example usage
# Retry the latest failed deployment based on 'frontend' # The deployer pod and any hook pods are deleted for the latest failed deployment oc rollout retry dc/frontend
# Retry the latest failed deployment based on 'frontend'
# The deployer pod and any hook pods are deleted for the latest failed deployment
oc rollout retry dc/frontend
6.1.94. oc rollout status Copy linkLink copied to clipboard!
Show the status of the rollout
Example usage
# Watch the status of the latest rollout oc rollout status dc/nginx
# Watch the status of the latest rollout
oc rollout status dc/nginx
6.1.95. oc rollout undo Copy linkLink copied to clipboard!
Undo a previous rollout
Example usage
# Roll back to the previous deployment oc rollout undo dc/nginx # Roll back to deployment revision 3. The replication controller for that version must exist oc rollout undo dc/nginx --to-revision=3
# Roll back to the previous deployment
oc rollout undo dc/nginx
# Roll back to deployment revision 3. The replication controller for that version must exist
oc rollout undo dc/nginx --to-revision=3
6.1.96. oc rsh Copy linkLink copied to clipboard!
Start a shell session in a container
Example usage
6.1.97. oc rsync Copy linkLink copied to clipboard!
Copy files between a local file system and a pod
Example usage
# Synchronize a local directory with a pod directory oc rsync ./local/dir/ POD:/remote/dir # Synchronize a pod directory with a local directory oc rsync POD:/remote/dir/ ./local/dir
# Synchronize a local directory with a pod directory
oc rsync ./local/dir/ POD:/remote/dir
# Synchronize a pod directory with a local directory
oc rsync POD:/remote/dir/ ./local/dir
6.1.98. oc run Copy linkLink copied to clipboard!
Run a particular image on the cluster
Example usage
6.1.99. oc scale Copy linkLink copied to clipboard!
Set a new size for a deployment, replica set, or replication controller
Example usage
6.1.100. oc secrets link Copy linkLink copied to clipboard!
Link secrets to a service account
Example usage
# Add an image pull secret to a service account to automatically use it for pulling pod images oc secrets link serviceaccount-name pull-secret --for=pull # Add an image pull secret to a service account to automatically use it for both pulling and pushing build images oc secrets link builder builder-image-secret --for=pull,mount
# Add an image pull secret to a service account to automatically use it for pulling pod images
oc secrets link serviceaccount-name pull-secret --for=pull
# Add an image pull secret to a service account to automatically use it for both pulling and pushing build images
oc secrets link builder builder-image-secret --for=pull,mount
6.1.101. oc secrets unlink Copy linkLink copied to clipboard!
Detach secrets from a service account
Example usage
# Unlink a secret currently associated with a service account oc secrets unlink serviceaccount-name secret-name another-secret-name ...
# Unlink a secret currently associated with a service account
oc secrets unlink serviceaccount-name secret-name another-secret-name ...
6.1.102. oc set data Copy linkLink copied to clipboard!
Update the data within a config map or secret
Example usage
6.1.103. oc set env Copy linkLink copied to clipboard!
Update environment variables on a pod template
Example usage
6.1.104. oc set image Copy linkLink copied to clipboard!
Update the image of a pod template
Example usage
6.1.105. oc set image-lookup Copy linkLink copied to clipboard!
Change how images are resolved when deploying applications
Example usage
6.1.106. oc set probe Copy linkLink copied to clipboard!
Update a probe on a pod template
Example usage
6.1.107. oc set resources Copy linkLink copied to clipboard!
Update resource requests/limits on objects with pod templates
Example usage
6.1.108. oc set route-backends Copy linkLink copied to clipboard!
Update the backends for a route
Example usage
6.1.109. oc set selector Copy linkLink copied to clipboard!
Set the selector on a resource
Example usage
# Set the labels and selector before creating a deployment/service pair. oc create service clusterip my-svc --clusterip="None" -o yaml --dry-run | oc set selector --local -f - 'environment=qa' -o yaml | oc create -f - oc create deployment my-dep -o yaml --dry-run | oc label --local -f - environment=qa -o yaml | oc create -f -
# Set the labels and selector before creating a deployment/service pair.
oc create service clusterip my-svc --clusterip="None" -o yaml --dry-run | oc set selector --local -f - 'environment=qa' -o yaml | oc create -f -
oc create deployment my-dep -o yaml --dry-run | oc label --local -f - environment=qa -o yaml | oc create -f -
6.1.110. oc set serviceaccount Copy linkLink copied to clipboard!
Update the service account of a resource
Example usage
# Set deployment nginx-deployment's service account to serviceaccount1 oc set serviceaccount deployment nginx-deployment serviceaccount1 # Print the result (in YAML format) of updated nginx deployment with service account from a local file, without hitting the API server oc set sa -f nginx-deployment.yaml serviceaccount1 --local --dry-run -o yaml
# Set deployment nginx-deployment's service account to serviceaccount1
oc set serviceaccount deployment nginx-deployment serviceaccount1
# Print the result (in YAML format) of updated nginx deployment with service account from a local file, without hitting the API server
oc set sa -f nginx-deployment.yaml serviceaccount1 --local --dry-run -o yaml
6.1.111. oc set subject Copy linkLink copied to clipboard!
Update the user, group, or service account in a role binding or cluster role binding
Example usage
6.1.112. oc set volumes Copy linkLink copied to clipboard!
Update volumes on a pod template
Example usage
6.1.113. oc tag Copy linkLink copied to clipboard!
Tag existing images into image streams
Example usage
6.1.114. oc version Copy linkLink copied to clipboard!
Print the client and server version information
Example usage
6.1.115. oc wait Copy linkLink copied to clipboard!
Experimental: Wait for a specific condition on one or many resources
Example usage
6.2. OpenShift CLI (oc) administrator commands Copy linkLink copied to clipboard!
6.2.1. oc adm inspect Copy linkLink copied to clipboard!
Collect debugging data for a given resource
Example usage
6.2.2. oc adm release extract Copy linkLink copied to clipboard!
Extract the contents of an update payload to disk
Example usage
6.2.3. oc adm release info Copy linkLink copied to clipboard!
Display information about a release
Example usage
6.2.4. oc adm taint Copy linkLink copied to clipboard!
Update the taints on nodes
Example usage