icl

Deploying ICL cluster

ICL cluster is a Kubernetes cluster with additional applications deployed and configured to work together.

The simplest way to get a working ICL cluster is to use one of the available scripts:

For other scenarios, such as deploying to the existing Kubernetes cluster, or deploying on virtual machines or bare-metal servers,
you need a Control Node: a machine that can access Kubernetes API directly or via jump host. That Control Node needs certain tools installed, see below. Alternatively, you can use Containerized Control Node (CCN), which is a Docker container that contains all required tools installed. Control Node is needed only to deploy and maintain ICL cluster. Once ICL is deployed, Control Node can be turned off, assuming that all configuration files are permanently stored, for example, in git or local file system.

Next steps:

Control Node

Containerized Control Node

Bare-metal nodes

The following Operating Systems are supported for bare-metal nodes:

We have Ansible playbooks and roles (TODO) that we use in our CI to provision bare-metal nodes. You can use them as a starting point for your infrastructure.

Virtual nodes

The following Operating Systems are supported:

We have Vagrant files (TODO) and Terraform modules (TODO) that we use in our CI to bring up Virtual Machines on libvirt. You can use them as a starting point for your infrastructure.

Deploy Kubernetes

We use Kubespray in our CI to deploy Kubernetes to provisioned bare-metal and virtual machines. You can use our cluster profiles and scripts as a starting point for your infrastructure.

Deploy ICL to Kubernetes

ICL applications are installed and configured with Terraform. The Terraform module for ICL is located in directory terraform/icl. To deploy ICL to Kubernetes you need:

Expose ICL endpoints

ICL applications can be accessed via HTTP endpoints. If you have a local ICL cluster deployed with kind, then all endpoints are available in domain “localtest.me”, which resolves to 127.0.0.1. In other cases, you need to manually configure DNS zone for your cluster. Alternatively, ICL can configure your DNS zone with external-dns (TODO).