kubectl
must be configured to your Kubernetes cluster.These instructions assume the use Minikube and Helm 3
Click here for Openshift instructions
The chart is hosted in http://hkube.org/helm/ To add the HKube Helm repo to your helm run:
helm repo add hkube http://hkube.org/helm/ helm repo update
Make sure your Docker CLI is using the default context:
docker context use default
This will be your output:
default Current context is now "default"
Currently HKube requires at least 4 cpu cores and 6GB of memory, ingress controller, registry, and dynamic storage.
HKube was tested on Kubernetes v1.23.5, so to run it properly, start Minikube with:
minikube start --driver=docker \ --addons ingress \ --addons registry \ --addons registry-aliases \ --addons storage-provisioner \ --kubernetes-version=v1.23.5
Make sure all pods are ready before you continue:
kubectl get pods -A
Install the HKube chart using Helm:
helm upgrade -i hkube hkube/hkube \ --set build_secret.docker_registry=registry.minikube \ --set build_secret.docker_registry_insecure=true \ --set global.hkube_url=https://192.168.49.2/hkube \ --set global.ingress.use_regex=true \ --timeout 15m
Note: the IP `192.168.49.2` is taken out of the command `minikube ip`. Verify it's your minikube IP.
This command installs hkube
in a minimal configuration for development. See below for production install.
Be patient. This can take some time depending on your internet connection.
Before starting your journey, verify that the required components have fully rolled out:
kubectl rollout status deployment/simulator --watch kubectl rollout status deployment/api-server --watch
Once the components have been successfully rolled out, get the Minikube IP:
minikube ip
Finally, open your browser and access the dashboard at:
https://<minikube_ip_here>/hkube/dashboard/
To remove the HKube release from your cluster:
helm delete hkube
The default HKube installation is meant for local development. It includes:
etcd
for storing internal stateredis
for queues and messagingminio
as an object storageHKube
Common configuration options are described below. For a complete list see the helm chart Readme
Parameter | Description | Default |
---|---|---|
global.clusterName | The dns domain name of the cluster. needed for Jaeger | cluster.local |
global.registry | Docker registry for private registries | '' |
global.registry_namespace | hkube | |
global.registry_username | '' | |
global.registry_password | '' | |
global.registry_insecure | false | |
global.registry_skip_tls_verify | false | |
global.storage.fs.pvc.storage_class | Dynamic storage storageClassName. Empty for default. '-' to disable | '' |
global.storage.s3.access_key | access key for s3 | hkubeminiokey |
global.storage.s3.secret_key | secret key for s3 | hkubeminiosecret |
global.storage.s3.url | endpoint url for s3 | 'http://hkube-minio:9000' |
env.default_storage | selects the storage mode [s3 or fs ] | s3 |
jaeger.enable | enable install of jaeger and dependencies | false |
minio.enable | true | |
build_secret.docker_registry | Docker registry information for automated builds | '' |
build_secret.docker_namespace | '' | |
build_secret.docker_username | '' | |
build_secret.docker_password | '' | |
task_executor.env.pipeline_drivers_amount | Set to 30 for a reasonable size | 1 |
Specify each parameter using the --set key=value[,key=value]
argument to helm install
. For example:
helm install hkube hkube/hkube --set global.clusterName=cluster.local
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example:
helm install hkube hkube/hkube --values values.yaml