Skip to content
A full system for deploying and managing Openshift Origin under an existing Kubernetes cluster.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis.yml Update travis Mar 8, 2016
LICENSE Modularize Mar 8, 2016
setup.cfg Initial Mar 5, 2016

Openshift under Kubernetes

Deploys OpenShift Origin to an existing Kubernetes cluster. This is arguably the most ideal way to deploy OpenShift, for a few reasons:

  • OpenShift Origin is a layer on top of Kubernetes
  • Kubernetes is extremely flexible in the ways it can be deployed, with kube-up
  • Allowing Kubernetes and OpenShift to be independently updated is ideal for feature iteration and stability
  • This is much easier than dealing with Ansible under OpenShift v3.


This system requires the following things:

  • A running working Kubernetes cluster.
  • A kubeconfig for this cluster with long-term API authentication details at maximum administrative level.
  • A Persistent Volume with at least 2Gi of space.

Deploy Process

This is the process this system uses to deploy OpenShift:

  • Fetch the ServiceAccount public key by creating a temporary namespace and pod.
  • Create the openshift-origin namespace.
  • Create a secret containing the kubeconfig with administrative access
  • Create the "openshift" service and grab the internal and external addresses.
  • Run openshift with the "--write-config" option to generate the initial default config in a temporary namespace.
  • Use an existing PersistentVolume created by the user.
  • Create a PersistentVolumeClaim to claim this storage.
  • Create the single-node "etcd" cluster to store the openshift data.
  • Create the OpenShift replication controller.

The cli allows you to interactively edit the config, among other features.


To install it:

$ pip install openshift-under-kubernetes

To use it:

$ openshift-under-kubernetes --help

This will output:

Usage: openshift-under-kubernetes [OPTIONS] COMMAND [ARGS]...

  --config PATH             kube config path
  --context TEXT            kube context
  --openshift-version TEXT  force openshift version (default 1.1.4)
  --secure / --no-secure    enables https checking
  -y                        auto-answer for all confirmations
  --help                    Show this message and exit.

  addclusterrole  Adds a CLUSTER role to a user by directly...
  deploy          Deploy OpenShift to the cluster.
  deployregistry  Deploy an OpenShift Registry to the cluster.
  editconfig      Interactively edits master-config.yaml
  execute         Executes any of the OpenShift commands inside...
  getconfig       Writes the entire openshift config to a...
  info            Show cluster information
  undeploy        Removes OpenShift from the cluster.

You can get started by running openshift-under-kubernetes info to check that the tool can properly communicate with your cluster. Then, use "deploy" to publish a new openshift cluster.

You can’t perform that action at this time.