To get started with Openshift command line, you need to have the oc binary installed on your system. This binary is the foundation of the command line interface for Openshift.
The oc binary can be installed using the package manager or by downloading it from the official website. Once installed, you can verify the installation by running the command `oc version`.
With the oc binary installed, you can start exploring the Openshift command line interface. The interface provides a wide range of commands to manage your projects, including creating and deleting projects, managing resources, and scaling applications.
As you work with the Openshift command line, you'll need to authenticate with the Openshift server. This can be done using the `oc login` command, which prompts you for your username and password.
Project Management
To create a new project, use the oc new-project command. This will create a new project with the currently logged-in user as the project admin.
You can specify the user-facing name of the project with the --display-name option, and its description with the --description option. For example, you can use double-quotes around the option arguments to create a project with a specific name and description.
Using the oc new-project command creates a new project instantly, making it a quick and efficient way to start working on a new project.
New-Project
Creating a new project is a straightforward process. Use the oc new-project command to bring your project to life.
To create a new project, you'll need to specify a user-facing name and description. You can do this using the --display-name and --description options, respectively. For example, you can use double-quotes around the option arguments to ensure they're formatted correctly.
The currently logged-in user will automatically be set as the project admin. This means they'll have full control over the project's settings and resources. Note that you can't create a project without being logged in.
To create a new resource, you can use the oc create command. This command reads the resource details from a provided JSON or YAML file, so make sure you have the correct file format. After successful creation, the resource name will be printed to the console for your reference.
Rollback
Rollback is an essential tool in project management that allows you to revert to a previous state of your project. This can be especially useful when you need to fix a mistake or undo a change.
To roll back a pod and container configuration, you can use the command `oc rollback`. This will revert the configuration back to a previous deployment, leaving scaling and trigger settings as-is.
You can display what the rollback would do without actually performing it by adding the `--dry-run` option. This is a great way to test out the rollback without affecting your project.
The rollback process can also include the previous deployment's triggers by adding the `--change-triggers` option. This ensures that any triggers that were set up previously are also rolled back.
Here's a summary of the options available for the `oc rollback` command:
The `--outputformat` option allows you to specify the format of the updated deployment configuration. You can choose from json, yaml, template, or templatefile.
Selectors
Selectors are a powerful tool for filtering resources by their labels. They allow you to apply key-value pairs that match with the resource labels.
To use selectors, you can use the oc get command with the --selector flag. For example, this command will return only pods whose labels include "template": "production".
Selectors can also be used to exclude certain labels from events generated for Argo CD Applications. By using the resource.excludeEventLabelKeys key, you can specify a comma-separated list of metadata.labels keys to exclude.
Using selectors can save you time and effort by filtering out irrelevant resources, allowing you to focus on the ones that matter.
Edit
Edit is a crucial part of project management, allowing you to make changes to your objects.
You can start an editor to edit an object using the `oc edit` command. This command opens an editor to the YAML representation of the specified object.
The editor you use can be specified through environment variables like `OC_EDITOR`, `GIT_EDITOR`, or `EDITOR`. If none of these are set, `oc edit` will use the `vi` program by default.
You can customize the output format of the editor using the `--output` option, which can be specified as `-o` followed by the format, such as `json` or `yaml`. For example, to edit an object in JSON format, you would use the command `oc edit -o json`.
The API version of the object can also be specified using the `--output-version` option, which can be used in conjunction with the `--output` option.
Scale
Scaling is key to managing the growth of your project. You can set a new size for a Replication Controller either directly or via its Deployment Configuration using the "oc scale" command.
To scale your resources efficiently, you need to understand how to use this command effectively. This sets a new size for a Replication Controller either directly or via its Deployment Configuration.
Scaling up or down can be done quickly and easily with the right tools. This can help you adapt to changing project needs and ensure you're always using the right amount of resources.
Get
Get is a fundamental command in project management, and understanding its various uses can save you a lot of time and effort.
You can use the oc get command to filter resources by applying key-value pairs that match resource labels. This is especially useful when you need to view specific pods or resources.
To view pods for the current project, simply use the oc get pods command. The namespace of the pod is used by default when you run oc inside a pod without specifying a namespace.
You can also use selectors to filter the output of oc get by applying key-value pairs that match resource labels. For example, you can use the command oc get to return only pods whose labels include "template": "production".
Here's a quick rundown of the oc get command and its uses:
Remember, the oc get command is a powerful tool that can help you manage your project's resources efficiently.
About the
Project management is a vital process that involves planning, organizing, and controlling resources to achieve specific goals. It's a skill that's in high demand across various industries.
Effective project management involves breaking down complex tasks into smaller, manageable chunks, as seen in the "Task Breakdown" section. This approach helps teams stay focused and avoid feeling overwhelmed.
A clear project scope is essential for successful project management. It outlines the specific objectives, timelines, and deliverables, as explained in the "Scope Statement" section.
Project managers use various tools and techniques to track progress, such as Gantt charts and Kanban boards, as mentioned in the "Project Tracking" section. These visual aids help teams stay organized and on track.
Strong communication skills are critical for project managers, as they need to collaborate with team members, stakeholders, and clients. They must be able to articulate project plans, timelines, and expectations, as discussed in the "Communication Plan" section.
Build and Deployment
Build and deployment are crucial steps in the OpenShift process. You can create a new application with the specified source code, templates, and images using the `oc new-app` command. This command builds up the components of an application using images, templates, or code that has a public repository.
You can also create a new build with the specified source code using the `oc new-build` command. This command creates a build configuration for your application using images and code that has a public repository. Local source must be in a git repository that has a remote repository that the OpenShift instance can see.
Here's a summary of the options for `oc new-build` and `oc new-app` commands:
Remember to run a build with `oc start-build` after creating the application or build configuration if you provide source code.
Start-Build
You can start a build manually using the `oc start-build` command.
This command uses either the specified buildConfig or a build name with the `--from-build` option.
You can specify the source code commit identifier the build should use with the `--commit` option, which requires a build based on a Git repository.
To start a build and watch its logs until it completes or fails, use the `--follow` option.
If you want to wait for a build to complete and exit with a non-zero return code if the build fails, use the `--wait` option.
The following options can be used with `oc start-build`: `--env`, `--build-loglevel`, `--commit`, `--follow`, `--wait`, `--from-build`, `--from-dir`, `--from-file`, `--from-repo`, `--from-webhook`, `--git-post-receive`, and `--git-repository`.
Here are the options in a table format:
Cancel Build
If you need to cancel a build, you can use the `oc cancel-build` command. To cancel a pending or running build, use the general form `oc cancel-build`.
The `--dump-logs` option allows you to display the build logs for the cancelled build. This can be useful for debugging purposes.
You can also use the `--restart` option to create a new build after the current build is cancelled. This can be useful if you need to restart a failed build.
To cancel a specific build, simply specify its name, like `oc cancel-build 1da32cvq`. If you want to restart the build immediately, you can use the `--restart` option, like `oc cancel-build 1da32cvq --restart`.
Build Logs
As you work with builds, it's essential to be able to debug any issues that arise. To do this, you can use the `oc build-logs` command to retrieve logs from a Build container.
This allows you to identify and fix problems with your build. The `oc build-logs` command is particularly useful when a build is still running, as it streams the logs from the container to the console.
You can use `oc get builds` to obtain a list of builds, which is helpful when trying to determine which build you want to retrieve logs for.
Expose
Expose is a powerful tool in Kubernetes that allows you to make containers accessible to the outside world.
You can expose containers internally as services or externally via routes, giving you flexibility in how you want to deploy your applications. This is done using the oc expose command.
Exposing a deployment config, replication controller, service, or pod as a new service on a specified port is also possible with oc expose. No labels are required, and the new object will automatically reuse the labels from the object it exposes.
Set Volume
The oc set volume command is used to control the storage associated with various resources.
This command is essential for managing the storage needs of your application.
To use oc set volume, you need to specify an action, which can be add, remove, list, or options.
The options depend on the action you choose.
For example, to arrange for the deployment configuration registry to access the host /opt directory, you would use the command: oc set volume --add --name=registry -m /opt.
Import-Image
Importing an image into your Open Container (OC) environment can be done with a single command.
The command for importing an image is oc import-image. This command imports tag and image information from an external container image registry.
You can use this command to import an image from a specific registry, such as the mystream registry.
Application Management
Application Management is a crucial aspect of using the OpenShift command line. You can manage your applications by using the oc command.
To create a new application, you can use the oc new-app command. This command allows you to create a new application from a Docker image or a Git repository.
The oc get apps command is used to display a list of all applications in your project. This command is useful for keeping track of all the applications you've created.
You can also use the oc logs command to view the logs of your application. This command is helpful for debugging and troubleshooting issues with your application.
The oc scale command allows you to scale your application to a specific number of replicas. This command is useful for handling changes in traffic or demand.
The oc delete command is used to delete an application and all its resources. Be careful when using this command, as it permanently deletes the application and its resources.
Configuration and Settings
The OpenShift command line has a variety of configuration options to manage your kubeconfig files. You can manage these files using the `oc config` command, which has several subcommands to set, unset, and view individual values.
The `oc config` command has several subcommands, including `set-cluster`, `set-context`, `set-credentials`, and `unset`, among others. These subcommands allow you to set and unset specific values in your kubeconfig file.
Here are the available `oc config` subcommands:
You can also configure repositories with a proxy by specifying the proxy field in the repository secret, along with a corresponding noProxy config. This allows Argo CD to access the repository and perform related helm/kustomize operations.
Proxy
Proxy settings are crucial for accessing repositories and the Kubernetes API server. Argo CD uses a custom proxy config in the repository secret, along with a corresponding noProxy config, to access the repository and perform related helm/kustomize operations.
The proxy config can be specified in the proxy field of the repository secret, and it's used in conjunction with the noProxy config. Argo CD also looks for standard proxy environment variables on the repository server if the custom proxy config is absent.
You can run a proxy to the Kubernetes API server using the `oc proxy` command. This command listens on port 8001 by default and serves API endpoints under the directory `/api/` and static files under the directory `/static/`.
The `oc proxy` command has various options that can be used to customize its behavior. For example, you can use the `--port` option to specify a different port, or the `--api-prefixdir` option to serve the proxied API under a different directory.
Here are some common options for the `oc proxy` command:
The `--disable-filter` flag is particularly important to note, as it can leave you vulnerable to XSRF attacks if used without caution. Always use this flag with care.
Set Env
Setting your environment on a resource with a pod template is a straightforward process. You can use the command "oc set env" to achieve this.
This command updates the environment on a resource with a pod template. The general form of this command is specified in the documentation.
To get started, you need to know the general form of the command, which is "oc set env".
Repository Management
Repository Management is a crucial aspect of working with Argo CD, and it's essential to understand how to configure repositories correctly.
To configure a repo, create a secret which contains repository details, such as a url field and, depending on the connection method, a username and password, sshPrivateKey, or githubAppPrivateKey.
You can also use credential templates to store the same credentials information for multiple repositories. The conditions for using a credential template are that the repository must either not be configured at all, or if configured, must not contain any credential information, and the URL configured for the credential template must match as a prefix for the repository URL.
Here are some valid keys to refer to credential secrets:
- username
- password
- sshPrivateKey
- githubAppPrivateKey
Tag
Tagging is a crucial step in repository management, and it's actually quite straightforward. The `oc tag` command is used to tag existing images into one or more image streams.
The `--source` option is a hint for the source type, and its value can be one of five options: `imagestreamtag`, `istag`, `imagestreamimage`, `isimage`, or `docker`.
Repositories
If you're using GitLab, you'll need to specify the .git suffix in your repository URL to avoid getting a HTTP 301 redirect.
Some Git hosters, like GitLab, require a specific URL format to avoid redirects. Argo CD won't follow these redirects, so you'll need to adjust your URL to include the .git suffix.
You'll need to store repository details in secrets, which can be encrypted using tools like bitnami-labs/sealed-secrets. This will keep your sensitive information secure.
Each repository must have a url field, and depending on your connection method, you may also need to include a username and password (for HTTPS), sshPrivateKey (for SSH), or githubAppPrivateKey (for GitHub App).
Here are the minimum fields required for each connection method:
Note that if you're using credential templates, you'll need to meet certain conditions for Argo CD to use them. This includes not configuring any credential information in the repository itself, and having the URL configured for the credential template match as a prefix for the repository URL.
Configure Repositories with Proxy
Configuring repositories with proxy is a crucial step in ensuring smooth access to your repository and related operations. This can be done by specifying a proxy in the repository secret's proxy field, along with a corresponding noProxy config.
Argo CD uses this proxy/noProxy config to access the repository and perform operations like helm and kustomize. If the custom proxy config is absent, Argo CD looks for standard proxy environment variables on the repository server.
To configure a repository with proxy and noProxy, you can use the following example:
A repository with proxy and noProxy:
```
proxy: http://my-proxy.com
noProxy: .example.com
```
It's worth noting that not all tools support the same noProxy syntax as the httpproxy go package does. If you encounter issues with noProxy not being respected, try using the full domain instead of a wildcard pattern or IP range.
Frequently Asked Questions
What is the OpenShift command line?
The OpenShift command line, also known as the oc command, is a terminal-based interface for managing OpenShift projects and operations. It's ideal for developers who want to work directly with project source code or automate OpenShift tasks with scripts.
How to download OC command line?
To download the OC command line, navigate to the web console, click on Command Line Tools, and select the appropriate oc binary for your Linux platform. Follow the prompts to download, unpack, and move the oc binary to a directory on your PATH.
Sources
- https://github.com/openshift/origin/blob/master/docs/cli.md
- https://labs.consol.de/development/2019/01/09/advanced_openshift_commandline_interface.html
- https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/
- https://docs.openshift.com/container-platform/4.11/cli_reference/openshift_cli/getting-started-cli.html
- https://docs.redhat.com/en/documentation/red_hat_build_of_microshift/4.12/html/cli_tools/microshift-oc-cli-install
Featured Images: pexels.com