Install Otomi with Helm
Add the Otomi repository
helm repo add otomi https://otomi.io/otomi-core
helm repo update
See helm repo for command documentation.
Minimal configuration
As of version 1.0.0 Otomi supports Kubernetes versions 1.25
,1.26
and 1.27
.
cluster:
name: # the name of your cluster
provider: # choose between aws, azure, google, digitalocean, ovh, vultr, scaleway or custom
When the chart is installed, follow the activation steps.
Custom values
To view the required values.yaml
file with detailed comments, view and download the chart's latest values.yaml. Run the following command to view all the values (which might be overwhelming):
helm show values otomi/otomi
To test wether the input values are correct run the following command:
helm template -f values.yaml otomi/otomi
Install the Chart
Install the chart with the following command:
helm install -f values.yaml otomi otomi/otomi
Monitoring the chart install
The chart deploys a Job (otomi
) in the default
namespace. Monitor the chart install using kubectl
:
# get the status of the job
kubectl get job otomi -w
# watch the helm chart install status:
watch helm list -Aa
Or view detailed info about kubernetes resources with k9s
When the chart is installed, follow the activation steps
Installing from source
As an alternative, you can also clone the otomi-core source code from the Github and install otomi using the chart source code.
Download source
git clone https://github.com/redkubes/otomi-core.git
cd otomi-core
Before installing the chart from source, first change the CHART_VERSION_PLACEHOLDER
in the chart/otomi/Chart.yaml
to v1.0.0
Install
Now customize the values.yaml
file. Make sure to set the version to the branch you like to use:
otomi:
version: main
Use the following command to install the chart with the name my-otomi-release
(a custom name that you choose).
helm install -f values.yaml my-otomi-release chart/otomi
Uninstalling Otomi
helm uninstall my-otomi-release
Doing a Helm uninstall will remove all Helm releases deployed by Otomi. After uninstalling, some namespaces created by Otomi can stay in a Terminating status. To remove all namespaces in a Terminating status, run the following command:
for ns in $(kubectl get ns --field-selector status.phase=Terminating -o jsonpath='{.items[*].metadata.name}'); do kubectl get ns $ns -ojson | jq '.spec.finalizers = []' | kubectl replace --raw "/api/v1/namespaces/$ns/finalize" -f -; done