Command line tool usage
Rahti can be used via the command line either with OpenShift's oc tool or with the kubectl tool from Kubernetes. Certain features specific to OpenShift are only available when using the oc tool.
The "Command Line Tools" page in the Rahti web UI
The oc tool is a single binary that only needs to be included in your path. Instructions for downloading the oc tool including the download link for several platforms and operating systems can be found in the Command Line Tools page in the web interface:

after clicking you will be welcomed with:

Download the necessary package and copy it in your path.
In order to test that it was properly installed, open a new terminal, go to any folder, and run:
It should show the list of all available commands.
How to login with oc?
The oc login command to login can be found in the dropdown menu next to your name. There is a button next to it for copying the command to the clipboard. Copy the command and paste it in a terminal to start using OpenShift via the command line. The command looks like:
This command can be obtained by clicking your username and "Copy Login Command" in the web console:

sudo
If you open multiple terminals, the login session for oc will be active in all of them.
Helm login
If you are using Helm and you are not logged in, you might get an error like:
How to login in the registry?
In order to use Rahti internal container registry, it is necessary to login separately. Once you login, it is possible to use the client docker to pull and push from Rahti's registry.
Using personal account
After login with oc, it is possible to use the command to generate a token (oc whoami -t):
docker login -p $(oc whoami -t ) -u unused image-registry.apps.2.rahti.csc.fi
sudo use
Some docker client setups require to run the docker client as root using sudo. In this case the oc login command needs to also be run using sudo. This is because the login information is stored in the user's home directory, only the user that runs oc login is logged in to Rahti.
As a general recommendation, it is better to use other "rootless" runtimes like podman, when possible. It is also possible to configure Docker as non-root user. In order to do so, in most Linux distributions, you just need to type this command:
And then log out and log back to have the group membership re-evaluated.
Using a service account token
Rahti also offers the opportunity of using an internal service account to interact with the registry. This is recommended for automated procedures like a CI pipeline. Even though by default 3 internal service accounts are created in every Rahti namespace: builder, default and deployer, it is recommended to create a dedicated internal service account and assign to it the system:image-pusher role.
oc create serviceaccount pusher
oc policy add-role-to-user system:image-pusher -z pusher
docker login -p $(oc create token pusher) -u unused image-registry.apps.2.rahti.csc.fi
This service account token, the one you get with oc sa get-token pusher does not expire.
CLI cheat sheet
Basic usage:
Examples:
Show projects:
Switch to project my-project:
Show all pods in the current namespace:
Show all pods in the namespace <my-other-name-space>:
Show all pods that have the key-value pair app: myapp in metadata.labels:
Print the specifications of the pod mypod
Other useful commands
oc createcreates an object. Example:oc create -f file.yamloc replacereplaces an object. Example:oc replace -f file.yamloc deletedeletes an object in OpenShift. Example:oc delete rc myreplicationcontrolleroc applymodifies an object according to the input. Exampleoc apply -f file.yamloc explainprints out the API documentation. Example:oc explain deploy.specoc editloads an object from the API to the local editor chosen by the$EDITORenvironment variable. Example:oc edit Deployment mydeploy
Abbreviations
Object types have abbreviations that are recognized in the CLI:
| Abbreviation | Meaning |
|---|---|
is |
ImageStream |
dc |
DeploymentConfig* |
svc |
Service |
bc |
BuildConfig |
rc |
ReplicationController |
pvc |
PersistentVolumeClaim |
* Deployment Config is deprecated
Further documentation
See the official documentation for more information about using the command line interface: