Manual installation

Installation in a Kubernetes cluster.

The prefferred way is to deploy via Helm package.

Connect to a cluster

Have access to a Kubernetes cluster

You need to have a Kubernetes cluster.

  • for Azure cloud, run “az aks …”

  • for a self-hosted cluster, obtain a valid and working kubeconfig file

Configure kubectl to talk with the correct cluster

You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster.

You can do this by

  • Merging new kubeconfig with your existing ~/.kube/config

    # Make a copy of your existing config
    $ cp ~/.kube/config ~/.kube/config.bak
    
    # Merge the two config files together into a new config file
    $ export KUBECONFIG=~/.kube/config:/path/to/new/config; kubectl config view  --flatten > /tmp/config
    
    # Replace your old config with the new merged config
    $ mv /tmp/config ~/.kube/config
    
    # (optional) Delete the backup once you confirm everything worked ok
    $ rm ~/.kube/config.bak
    
  • Appending a new kubeconfig to the KUBECONFIG environment variable

    export KUBECONFIG=$KUBECONFIG:path/to/new/config
    

    Danger

    The KUBECONFIG variable does not automatically contain your ~/.kube/config. When the variable exists, the kubectl command consults only it and ignores your ~/.kube/config. To add your kubeconfig to the list:

    export KUBECONFIG=$KUBECONFIG:~/.kube/config:path/to/new/config
    
  • Replacing the KUBECONFIG environment variable

    export KUBECONFIG=path/to/new/config
    
  • Passing the --kubectl path/to/new/config parameter to every kubectl command.

Ensure you have a new cluster accessible

$ kubectl config view

will list the new cluster and context, e.g.

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://114.253.158.226:6441
  name: demo-fs
contexts:
- context:
    cluster: 212.158.132.216
    namespace: default
    user: frontstage-default-user
  name: demo-fs

Switch kubectl to the correct context

kubectl config use-context demo-fs

Attach container registry

The cluster needs access to the container registry storing FrontStage OCI images.

atlantistelecom.azurecr.io/

Prepare database

DB is not recommended to run on Kubernetes.

Continue by steps either for SQL Server or PostgreSQL.

All FrontStage components share a single database that you need to create. A database connection string will be passed to pods as an environment variable.

Prepare a PostgreSQL database

Create Kubernetes objects

Get Kubernetes manifest files and customize them to suit your environment:

  • namespace

  • set a connection string to the database

By applying Kubernetes manifest files:

kubectl apply -f ...

Install Ingress Controller

In the “nginx-ingress” namespace.

https://kubernetes.github.io/ingress-nginx/

Caution

There are two Ingress Controllers based on the NGINX server. The recommended and tested one is NGINX Ingress Controller, the open-source straight from the Kubernetes community. You might also come across “F5 Ingress Ingress Controller” from F5, Inc., the company behind the NGINX server.