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:
terraform
, kubectl
, helm
, git
.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.
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.
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.
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:
~/.kube/config
) with administrative permissions for the cluster.KUBECONFIG
and KUBE_CONFIG_PATH
set to the location of Kubernetes configuration file.terraform.tfvars
or terraform.tfvars.json
).
See examples of cluster profiles (TODO).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).