The Mint System collection of Helm charts.
- π Install: Install Helm repository and get started with Odoo.
- π οΈ Develop: Deploy Odoo and Postgres to a local Kubernetes cluster.
- ποΈ Build: Fork and build your own Helm charts.
- π Deploy: Configure and deploy Helm charts to remote clusters.
You can use this project as any other Helm chart repository.
Add this Helm repository.
helm repo add kubernetes-build https://kubernetes.build
Install a chart.
helm install "$NAME" "kubernetes-build/$NAME"
List of charts:
Setup a local Kubernetes cluster and deploy the Helm charts.
Setup the required tools:
- helm, kubectl and kubctx
- Setup kind or minikube
- Optional: bash/zsh alias
task='./task'
with completion.
Clone the repository:
git clone [email protected]:Mint-System/Kubernetes-Build.git
cd Kubernetes-Build
Start cluster with kind
.
task start-kind
Or start cluster with minikube
.
task start-minikube
Add Helm chart repos.
task add-repos
Ssetup the local hostnames.
task setup-hosts
Install the CloudNativePG chart:
task install-chart cnpg values/knd.local.yaml
Install the Odoo chart:
task install-chart odoo values/odoo.knd.local.yaml
The Odoo database will be initialized automatically.
Once the pod is ready, run this command to port forward the service:
task forward odoo
Install ingress-nginx in the current cluster.
task install-chart ingress-nginx values/knd.local.yaml
Forward the ingress-nginx port.
task forward ingress-nginx
Install haproxy-ingress in the current cluster.
task install-chart haproxy-ingress values/knd.local.yaml
Forward the haproxy-ingress port.
task forward haproxy-ingress
You can use this project to deploy the charts to these Kubernetes clusters:
Setup and deploy the Helm charts with APPUiO.
Open the OpenShift console in your zone.
Click on the username on the top right and select Copy login command.
In the new tab click Display token and copy the Login with this token command.
Run the command in your shell.
If not alrady done, create a project with the oc cli.
oc new-project odoo
Add Helm repos to the local index.
task add-repos
Switch context to axo
.
task switch-context axo
Install the Helm release.
task install-chart odoo values/odoo.axo.mintcloud.ch.yaml
Deploy the Helm charts to Infomaniak Managed Kubernetes service.
Create new Kubernetes cluster in the Infomaniak manager. Then add an instance group.
Download the Kubeconfig file and move it.
mv ~/Downloads/pck-XXXXXXX-kubeconfig ~/.kube/config.chk
export KUBECONFIG=~/.kube/config.chk
kubectl get namespaces
Switch context to chk
.
task switch-context chk
Create a namespace for the application.
k create <namespace>
Add all repos and install the ingress nginx.
task add-repos
task install-chart ingress-nginx values/chk.mintcloud.ch.yaml
Create an Infomaniak API token with domain scope: https://manager.infomaniak.com/v3/infomaniak-api
Setup the secret according to clusterIssuer > Secrets
Install cert manager with Infomaniak webhook.
task install-chart cert-manager values/chk.mintcloud.ch.yaml
Install cluster issuer.
task install-chart clusterIssuer values/chk.mintcloud.ch.yaml
Select the namespace.
kubens
Install the Odoo chart.
task install-chart odoo values/odoo.chk.mintcloud.ch
Setup K3s cluster with Ansible: https://ansible.build/roles/k3s/
Setup Kubeconfig with alias rpi
.
Switch context to rpi
.
task switch-context rpi
Create a namespace for the application.
k create <namespace>
Add all repos and install the ingress nginx.
task add-repos
task install-chart ingress-nginx values/k3s.raspberrypi.build.yaml
Install cert manager.
task install-chart cert-manager values/k3s.raspberrypi.build.yaml
Install cluster issuer.
task install-chart clusterIssuer values/k3s.raspberrypi.build.yaml
Select the namespace.
kubens
Install the Hugo chart.
task install-chart hugo
The postgres data is persisted on the host. Removing the pvc will not deleted the postgres data. To update the password, enter the container and run:
psql -c "ALTER USER $PGUSER WITH PASSWORD '$PGPASSWORD';"