
Installing Optimizer Hub on Minikube
Minikube can be used for testing, evaluating, and non-cloud-managed blob storage use of Optimizer Hub.
Make sure your minikube meets the 18 vCore minimum for running Optimizer Hub. Although minikube can run on multiple platforms, Optimizer Hub is only available for the x64 platform, so not on macOS with M-processor.
Blob storage is required for Optimizer Hub (since 1.10) and can be added to your Minikube setup with MinIO.
Installing Minikube
Install minikube for your platform following this installation guide.
Installing Optimizer Hub
Optimizer Hub uses Helm as the deployment manifest package manager. There is no need to manually edit any Kubernetes deployment manifests.
-
Make sure your Helm version is
v3.8.0
or newer, check it withhelm version
. -
Add the Azul Helm repository to your Helm environment:
helm repo add opthub-helm https://azulsystems.github.io/opthub-helm-charts/ helm repo update -
Create a namespace (i.e.
my-opthub
) for Optimizer Hub.minikube kubectl -- create namespace my-opthub -
Clone or download the files from the GitHub opthub-helm-charts repository.
git clone https://github.com/AzulSystems/opthub-helm-charts.git -
Create a directory for your configuration files
mkdir ~/my-opthub/ -
Create MinIO storage:
-
Copy minio-dev.yaml and replace
minio-dev
withmy-opthub
or the namespace you created in the previous step.cp ~/opthub-helm-charts/minio-dev.yaml ~/my-opthub/minio-dev.yaml sed -i 's/minio-dev/my-opthub/g' ~/my-opthub/minio-dev.yaml # `-i` modifies the original file # `s/old/new/g`: s = substitute, g = all occurrences -
Copy minio-setup-job.yaml and again replace
minio-dev
.cp ~/opthub-helm-charts/minio-setup-job.yaml ~/my-opthub/minio-setup-job.yaml sed -i 's/minio-dev/my-opthub/g' ~/my-opthub/minio-setup-job.yaml -
Install the S3 compatible storage with:
minikube kubectl -- apply -f ~/my-opthub/minio-dev.yaml -f ~/my-opthub/minio-setup-job.yaml
-
-
Create a configuration file
values-minikube.yaml
, based on the example file, to disable all resource definitions.cp ~/opthub-helm-charts/values-minikube.yaml ~/my-opthub/values-minikube.yaml -
Install using Helm, passing in the
values-minikube.yaml
. In case you don’t want to install the full Optimizer Hub, but only a part of the services, first check "Configuring the Active Optimizer Hub Services".helm install opthub opthub-helm/azul-opthub -n my-opthub -f ~/my-opthub/values-minikube.yamlThe command should produce output similar to this:
NAME: opthub LAST DEPLOYED: Mon Jan 30 14:35:29 2023 NAMESPACE: my-opthub STATUS: deployed REVISION: 1 TEST SUITE: None -
Verify that all started pods are ready:
minikube kubectl -- get all -n my-opthub NAME READY STATUS RESTARTS AGE pod/cache-0 1/1 Running 0 65s pod/compile-broker-59b99b66d6-bg86g 1/1 Running 0 65s pod/gateway-8445f9d959-p5l6k 1/1 Running 0 65s pod/gw-proxy-6c7b66bb6f-829t8 1/1 Running 0 65s pod/minio 1/1 Running 0 2m50s pod/minio-setup-job-zcbpz 0/1 Completed 0 2m50s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/cache ClusterIP None <none> 5701/TCP 65s service/compile-broker ClusterIP 10.105.247.81 <none> 50051/TCP 65s service/gateway LoadBalancer 10.105.68.63 <pending> 50051:31368/TCP 65s service/gateway-headless ClusterIP None <none> 50051/TCP 65s service/minio ClusterIP 10.108.8.165 <none> 9000/TCP,9090/TCP 2m50s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/compile-broker 1/1 1 1 65s deployment.apps/gateway 1/1 1 1 65s deployment.apps/gw-proxy 1/1 1 1 65s NAME DESIRED CURRENT READY AGE replicaset.apps/compile-broker-59b99b66d6 1 1 1 65s replicaset.apps/gateway-8445f9d959 1 1 1 65s replicaset.apps/gw-proxy-6c7b66bb6f 1 1 1 65s NAME READY AGE statefulset.apps/cache 1/1 65s NAME STATUS COMPLETIONS DURATION AGE job.batch/minio-setup-job Complete 1/1 11s 2m50s -
You can also verify the status on a dashboard in the browser with the following command. Select your namespace (
my-opthub
) from the dropdown in the header of the page.minikube dashboard