Ubuntu 26.04

MicroK8s : Enable Helm32026/05/20

 

Enable Helm3 add-on to deploy applications from Helm Charts.

[1] Helm3 is enabled by default, but if it is not enabled, enable the Helm3 add-on on your primary node.
root@dlp:~#
microk8s enable helm3

Infer repository core for addon helm3
Addon core/helm3 is already enabled

root@dlp:~#
microk8s helm3 version

version.BuildInfo{Version:"v3.18.6", GitCommit:"b76a950f6835474e0906b96c9ec68a2eff3a6430", GitTreeState:"clean", GoVersion:"go1.24.12"}
[2] Basic Usage of Helm3.
# search charts by words in Helm Hub

ubuntu@ctrl:~$
microk8s helm3 search hub wordpress

URL                                                     CHART VERSION   APP VERSION             DESCRIPTION                     
https://artifacthub.io/packages/helm/slybase-wo...      3.6.39          6.9.4                   Using the official WordPress image. This chart ...
https://artifacthub.io/packages/helm/kube-wordp...      0.1.0           1.1                     this is my wordpress package    
https://artifacthub.io/packages/helm/wordpress-...      1.0.2           1.0.0                   A Helm chart for deploying Wordpress+Mariadb st...
.....
.....

# add a repository (example below is haproxytech)

ubuntu@ctrl:~$
microk8s helm3 repo add haproxytech https://haproxytech.github.io/helm-charts

"haproxytech" has been added to your repositories
# show repository list

ubuntu@ctrl:~$
microk8s helm3 repo list

NAME            URL
haproxytech     https://haproxytech.github.io/helm-charts

# search charts by words in repository

ubuntu@ctrl:~$
microk8s helm3 search repo haproxy

NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
haproxytech/haproxy                     1.28.1          3.3.6           A Helm chart for HAProxy on Kubernetes
haproxytech/haproxy-unified-gateway     1.0.2           1.0.2           A Helm chart for HAProxy Unified Gateway - Kube...
haproxytech/kubernetes-ingress          1.49.0          3.2.6           A Helm chart for HAProxy Kubernetes Ingress Con...

# display description of a chart
# helm show [all|chart|readme|values] [chart name]

ubuntu@ctrl:~$
microk8s helm3 show chart haproxytech/haproxy

annotations:
  artifacthub.io/changes: |
    - Update base image to HAProxy 3.3.6
    - Fix newline issue with YAML normalisation (#344)
apiVersion: v2
appVersion: 3.3.6
description: A Helm chart for HAProxy on Kubernetes
home: https://github.com/haproxytech/helm-charts/tree/main/haproxy
icon: https://raw.githubusercontent.com/haproxytech/helm-charts/main/haproxy/chart-icon.png
keywords:
- haproxy
kubeVersion: '>=1.17.0-0'
maintainers:
- email: dkorunic@haproxy.com
  name: Dinko Korunic
name: haproxy
sources:
- http://www.haproxy.org/
type: application
version: 1.28.1

# deploy application by specified chart
# helm install [any name] [chart name]

ubuntu@ctrl:~$
microk8s helm3 install haproxy haproxytech/haproxy

NAME: haproxy
LAST DEPLOYED: Wed May 13 00:20:24 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
HAProxy has been has been successfully installed. This Chart is used to run HAProxy as a regular application,
as opposed to HAProxy Ingress Controller Chart.

Controller image deployed is: "docker.io/haproxytech/haproxy-alpine:3.3.6".
Your HAProxy app is of a "Deployment" kind.

Service ports mapped are:
  - name: http
    containerPort: 80
    protocol: TCP
  - name: https
    containerPort: 443
    protocol: TCP
  - name: stat
    containerPort: 1024
    protocol: TCP

To be able to bind to privileged ports as non-root, the following is required:

securityContext:
  enabled: true
  runAsUser: 1000
  runAsGroup: 1000
initContainers:
  - name: sysctl
    image: "busybox:musl"
    command:
      - /bin/sh
      - -c
      - sysctl -w net.ipv4.ip_unprivileged_port_start=0
    securityContext:
      privileged: true

Node IP can be found with:
  $ kubectl --namespace default get nodes -o jsonpath="{.items[0].status.addresses[1].address}"

For more examples and up to date documentation, please visit:
  * Helm chart documentation: https://github.com/haproxytech/helm-charts/tree/main/haproxy
  * HAProxy Alpine Docker container documentation: https://github.com/haproxytech/haproxy-docker-alpine
  * HAProxy documentation: https://www.haproxy.org/download/2.7/doc/configuration.txt

# display deployed application list

ubuntu@ctrl:~$
microk8s helm3 list

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
haproxy default         1               2026-05-13 00:20:24.861588053 +0000 UTC deployed        haproxy-1.28.1  3.3.6

# display the status of deployed application

ubuntu@ctrl:~$
microk8s helm3 status haproxy

NAME: haproxy
LAST DEPLOYED: Wed May 13 00:20:24 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
HAProxy has been has been successfully installed. This Chart is used to run HAProxy as a regular application,
as opposed to HAProxy Ingress Controller Chart.

Controller image deployed is: "docker.io/haproxytech/haproxy-alpine:3.3.6".
Your HAProxy app is of a "Deployment" kind.
.....
.....

ubuntu@ctrl:~$
kubectl get pods

NAME                       READY   STATUS    RESTARTS   AGE
haproxy-7997775574-tr9hc   1/1     Running   0          94s

# uninstall a deployed application

ubuntu@ctrl:~$
microk8s helm3 uninstall haproxy

release "haproxy" uninstalled
Matched Content