Deployment Configurations (v1)

The OKD Orchestrator is trying to strike a balance between requiring you to edit the complex Ansible inventory file expected by the OKD installation and a simpler approach, exposing sufficient variables that allow the ability to create rich, useful OKD clusters.

The orchestrator compiles the inventory file for you based on a set of what it considers to be a useful and sufficiently rich set of parameters. 1

Deployment configurations, written in YAML, are a simplified but comprehensive text files that form a very-high-level description of an OpenShift/OKD cluster. Creating an OpenShift cluster requires the compilation of base operating-system images on which the OKD software runs, the creation of physical machines on which to run the software and the installation and configuration of the software itself and each of these steps can be a challenging task and each often utilities a different definition language. So, to install OpenShift you often find yourself having to understand Ansible, JSON, Jinja, HCL, and YAML file formats and languages.

The OKD Orchestrator is design to simplify the creation of a cluster by consolidating the definition of your cluster into one simple-to-read file format and then automating the vast majority of tasks, relying on 3rd party tools like Packer, Terraform and Ansible to build the necessary cluster and install and configure the software. The orchestrator’s deployment configuration file is designed for the non-expert, less technical user who simply wants to get a richly-defined OpenShift OKD cluster up and running.

The Configuration Format and Location

Configuration files are written in YAML and are located in the deployments directory of the OKD Orchestrator project 2 where a directory exists for each deployment.

Deployments are referred to using the base name of the configuration directory which should therefore be compact but descriptive. The example configuration (compact-aws-frankfurt-3-11) can be found in deployments/compact-aws-frankfurt-3-11/configuration.yaml 3.

The Configuration File Content

The configuration file consists of the a preamble that defines the file version, name and description of the configuration followed by sections (maps) that define the actual deployment:

  1. A cluster section that defines the machines and topology of the cluster on which OKD will be installed.

  2. An okd section that defines the OpenShift/OKD version to be installed and lists the Ansible playbooks that are to be executed to create the OKD cluster

Configurations are typically grouped into Compact or Complex topologies where _Compact_ deployments generally have single Master instances and _Complex_ deployments relay on resilient multi-master instances combined with a production-grade load-balancer.

A Compact Topology Example

The deployments/compact-aws-frankfurt-3-11 configuration is a reference implementation of a compact style of deployment (a non-HA deployment).

It can be easily configured with separate Bastion, Master and Infrastructure instances or as a cost-effective all-in-one deployment where the Bastion, Master and Infrastructure resources all reside on a single machine. It also serves as a good template for your own compact deployment.

Refer to the compact-aws-frankfurt-3-11 configuration file for a detailed description of the properties it exposes to allow the formation of a compact topology deployment.

A Complex Topology Example

TBD

Footnotes

1

Its capabilities will eventually evolve to create a large range of cluster topologies.

2

You can place deployment configurations in any directory, placing the path to the deployment into the TF_VAR_deployments_directory environment variable.

3

At the moment configuration files muse have the extension .yaml