Airgap Pre-built Kubernetes (K8s) Install

Make sure your K8s cluster is ready for Arthur platform installation by following the K8s preparation guide.

Prepare your private container image registry for Arthur artifacts by creating the following list of repositories:

arthurai/alert-service
arthurai/alpine
arthurai/api-service
arthurai/argocli
arthurai/argoexec
arthurai/aws-cli
arthurai/busybox
arthurai/clickhouse-backup
arthurai/clickhouse-operator
arthurai/clickhouse-server
arthurai/client
arthurai/cp-kafka-connect
arthurai/cp-schema-registry
arthurai/cp-server
arthurai/cp-zookeeper
arthurai/curl
arthurai/custom-hpa
arthurai/dataset-service
arthurai/dex
arthurai/enrichment-helpers
arthurai/inference-consumer
arthurai/ingestion-service
arthurai/jmx-prometheus-exporter
arthurai/k8s-prometheus-adapter-amd64
arthurai/kafka-connect
arthurai/kafka-connect-monitor
arthurai/kafka-exporter
arthurai/kafka-prometheus-jmx-exporter
arthurai/kotsadm
arthurai/kotsadm-migrations
arthurai/kotsadm-operator
arthurai/kubectl
arthurai/mc
arthurai/metric-service
arthurai/metrics-exporter
arthurai/minideb
arthurai/minio
arthurai/model-server
arthurai/model-server-controller
arthurai/postgres
arthurai/postgresql
arthurai/python-jobs
arthurai/pytorch-jobs
arthurai/query-service
arthurai/redis
arthurai/scala-spark-jobs
arthurai/schema-service
arthurai/workflow-controller
arthurai/zookeeper
arthurai/zookeeper-exporter

As an example, here’s how you can create a new arthurai/alert-service repository on AWS ECR.

export AWS_REGION=<your_region>
aws ecr create-repository --repository-name=arthurai/alert-service --image-scanning-configuration='{"scanOnPush":true}'

Go to the download portal using the URL and the password provided by Arthur.

Select the “Bring my own cluster” option. .png image

Click the “Download license” button to download your license in YAML file.

Download the “Latest Kots Admin Console Airgap bundle” and the “Latest Arthur Airgap bundle”.

Make sure you’re in the correct kubectl environment context before running the installer.

Install the KOTS kubectl extension on your local machine:

curl https://kots.io/install | bash

If the machine you’re running kubectl from is also in an airgap environment, download the “Latest Kots CLI” from the download portal and install it like below:

tar zxf kots_linux_amd64.tar.gz
# move it to a location that's on your path
sudo mv kots /usr/local/bin/kubectl_kots

Push the admin console images to your private registry:

kubectl kots admin-console push-images ./kotsadm.tar.gz [Your private registry host]/arthurai \
  --registry-username [Read-Write Username] \
  --registry-password [Read-Write Password] 

As an option, you can also pre-upload the application images to your private registry before running the installer:

kubectl kots admin-console push-images ./arthur-x.x.x.airgap [Your private registry host]/arthurai \
  --registry-username [Read-Write Username] \
  --registry-password [Read-Write Password] 

Prepare a config.yaml file using the configuration template. Double check your ingress_hostname, k8_storageclass, and prometheus_host configurations.

Deploy the application by running the below kubectl command:

kubectl kots install arthur \
  --port-forward=false \
  --namespace arthur \
  --shared-password SuperSecret \
  --license-file ./license.yaml \
  --config-values ./config.yaml \
  --airgap-bundle ./arthur-x.x.x.airgap \
  --kotsadm-registry [Your private container image repository] \
  --kotsadm-namespace arthurai \
  --registry-username [Read-Write Username] \
  --registry-password [Read-Write Password]

Create a port forwarding tunnel to Admin Console and login on your browser at localhost:8800 using the shared password you provided to the install command:

kubectl kots admin-console --namespace arthur

Monitor the admin console dashboard for the application status to become Ready.

.png image

To see the progress of the deployment, monitor the deployment status with kubectl CLI:

kubectl get deployments -n arthur

Configure graphs on Admin Console by clicking on the Configure graphs button and providing your Prometheus endpoint (e.g. http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090).