Installation

Concepts overview

In Kubernetes, applications are deployed onto Pods, which represents a running version of a containerized application. Pods are grouped by Deployments, which represent a set of Pods running the same application. For instance, should you need to run Horizon in high availability mode, your deployment will contain 3 pods or more. Applications running in Pods are made accessible by a Service, which grants a set of Pods an IP address (which can either be internal to the cluster or accessible on the public Internet through a Load Balancer).

The recommended way of installing on Horizon is through the Horizon’s Helm Chart. Helm is a package manager for Kubernetes that will generate Kubernetes resources necessary to deploy Horizon onto your cluster. The official Helm Chart will generate a deployment of one or more Pods running Horizon on your cluster.

Setting up Helm repository

Now that the application secrets are configured, add the EverTrust Helm repository to your machine:

$ helm repo add evertrust https://repo.evertrust.io/repository/charts

Verify that you have access to the Chart :

$ helm search repo evertrust/horizon
NAME                       	CHART VERSION	APP VERSION	DESCRIPTION
evertrust/horizon          	0.5.3        	2.2.2      	EverTrust Horizon Helm chart

Configuring the namespace

For isolation purposes, we strongly recommend that you create a dedicated namespace for Horizon:

$ kubectl create namespace horizon

The namespace should be empty. In order to run Horizon, you’ll need to create two secrets in that namespace:

  • A license secret containing your Horizon license file

  • An image pull secret, allowing Kubernetes to authenticate to the EverTrust’s container repository

Creating the license secret

You should have a license file for your Horizon installation, most probably named horizon.lic. To convert this file to a Kubernetes secret, run:

$ kubectl create secret generic horizon-license \
 --from-file=license="<path to your license file>" \
 --namespace horizon

Creating the image pull secret

Next, you should configure Kubernetes to authenticate to the EverTrust repository using your credentials. They are necessary to pull the Horizon docker image, you should have received them upon purchase. Get your username and password and create the secret:

$ kubectl create secret docker-registry evertrust-registry \
 --docker-server=registry.evertrust.io \
 --docker-username="<your username>" \
 --docker-password="<your password>" \
 --namespace horizon

Configuring the chart

You’ll next need to override the defaults values.yaml file of the Helm Chart to reference the secrets that we’ve created. We’ll provide a minimal configuration for demonstration purposes, but please do follow our production setup guide before deploying for production.

Create a override-values.yaml file somewhere and paste this into the file:

image:
  pullSecrets:
    - evertrust-registry

license:
  secretName: horizon-license
  secretKey: license

To finish Horizon’s installation, simply run the following command:

$ helm install horizon evertrust/horizon -f override-values.yaml -n horizon

Please allow a few minutes for the Horizon instance to boot up. You are now ready to go on with the First login. This instance will allow you to test out if Horizon is working correctly on your cluster. However, this installation is not production-ready. Follow our Production checklist to make sure your instance is fit to run in your production environemnt.