I joined the OpenShift team in late 2015. It was a very large context switch for me, I’ve been a Java and Python guy for about 13 years, so jumping to a project written in an entirely new to me language (golang) and having to get up to speed as a remote employee is a bit of a challenging task. There are a lot of things I was only able to learn through experimentation and many, many discussions with helpful colleagues willing to share their domain knowledge. The following is a collection of my notes and discoveries starting out, I’m hopeful it might be of use to somebody looking to start contributing to OpenShift at a code level.

High Level Overview

OpenShift is built on top of Kubernetes, it doesn’t communicate with it, it literally is Kubernetes. Origin compiles along with Kube into a single binary that is capable of launching all required services, and can vary what it launches quite a bit depending on the context in which it was launched.

Setting Up a Go Workspace

REST API

API Types

Dont’s

This is probably just a stupid thing I did but be careful with you’re using DNS. If for example you are trying to use a faux sub-domain for your local network, when your actual parent domain is using wildcards in the real world, you’re going to have a really bad time. Do not do this. Whatever fake DNS you’re using should not resolve in the real world, use openshift.example.com or something like this.