Link Search Menu Expand Document

Openshift Cheat Sheet

Client Setup

# Follow instructions from GUI setup and download client
oc login

Settings are stored in ~/.kube/config

CLI Commands

Note: all Kubernetes commands work with the oc client. So also check <?add topic=’kubernetes’?>

oc login [<cluster>]
oc projects              # List projects
oc project <project>     # Switch project
oc new-project <project>
oc whoami -t             # Get current session API token

Creating application from remote repo

oc new-app https://github.com/name/project
oc new-app https://github.com/name/project --context-dir=<build dir>

For actual builds from a directory. Careful! If this is a git repo this won’t work as the remote git repo will be used!

oc new-app --name=<application> .
oc start-build <application> --from-dir .    # Force build from dir (even if it is a git repo)
oc start-build <application> -F              # Wait for completion and print full build log
oc start-build <application> -w              # Wait for completion

List available S2I templates

oc new-app --list

Use specific template

oc new-app https://github.com/name/project --template=<template>

Cluster Administration

Removing/Readding nodes

oc adm drain <node>         # Evacuates all pods with replication controllers
oc adm uncordon <node>      # Readd node for pod scheduling

Certificates

# Adding certificate
oc create secret tls <cert name> --cert=<file> --key=<file> -n openshift-config

# List certs
oc get secret | grep "kubernetes.io/tls"

Initial Setup

Commands derived from jaxenter.com for Openshift:

Set initial admin pwd

Either use

oc login -u system:admin

or create credential on master

sudo htpasswd -b /etc/openshift/openshift-passwd admin <your_pass>
oc get nodes --no-headers | awk '{print $1}' | xargs -I {} sh -c 'echo {}; oc describe node {} | grep Allocated -A 5 | grep -ve Event -ve Allocated -ve percent -ve -- ; echo'

Creating service accounts

Creating a “root” service account:

oc create serviceaccount <name>
oc adm policy add-cluster-role-to-user cluster-admin -z <name>
oc sa get-token <name>

Working with Templates

Create a template from an existing project

oc export all [-l app=<name>] --as-template my_project >template.yaml

Note that the resulting JSON will have no parameters yet. You’ll have to identify places to replace with parameters (syntax is “${PARAMETER}”) and to declare those parameters.

Orchestration

Configuring Registries

  • https://docs.openshift.com/container-platform/4.4/openshift_images/image-configuration.html (whitelisting/blacklisting external registry domains)
  • http://uncontained.io/articles/external-container-registry-integration/ (configuring insecure registries)

Misc

<?youtube,Gm21ltMlk_k,Windows Pods in Openshift 4.4?>