Skip to main content

Advanced installation methods

Unlike the Quick Start approach, a pre-configured Kubernetes cluster is expected to exist.

This includes:

  • Any of k3s, minikube, microk8s etc. running on a Linux OS platform, or a cloud provider.

  • Installed and configured cert-manager.

    With cert-manager, it’s also recommended to install trust-manager for CA (bundle) trust distribution across a Kubernetes cluster.

  • Installed and configured MetalLB.

  • Installed NGINX Ingress Controller.

  • Installed vals.

Prepare namespaces:

  1. Create namespace(s):

    kubectl create namespace usc-one

  2. Create .docker/config.json containing credentials for accessing docker images:

    DOCKER_CONFIG=.docker/ docker login docker.devops.usu.group

  3. Create image pull secrets:

    kubectl -n usc-one create secret docker-registry usu-regcred --from-file=.dockerconfigjson=.docker/config.json

Method 1

This method is sort of a static installation with the least configuration flexibility.

This USU Software Compose is in one namespace. Thus, it is possible to apply merged k8s templates:

Example: 

vals eval -decode-kubernetes-secrets -f manifests-merged.yaml | kubectl -n usc-one apply -f - 

Method 2

This method offers the best flexibility. Charts are installed from the charts/directory (air gap).

To discover configuration possibilities, check the corresponding Readme files within the (sub)charts.

Example:

Method_2_Install_using_helm_v2.png

Method 3

This method utilizes USU Nexus Repository (online), still provides the flexibility, ease of control and other features such as diff’ing, simple updating etc.

Example:

export HELM_USER=<usu-nexus-username>

export HELM_PASSWORD=<usu-nexus-password>

helmfile apply --skip-diff-on-install --concurrency 1