siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
5.77k stars 467 forks source link

[Feature] Helm integration #8041

Open etenzy opened 7 months ago

etenzy commented 7 months ago

Integrate Helm to bootstrap

Benefits of Adding a Helm:

Downsides of Adding a Helm:

Example of usage in patch.yaml:

Instead of:

cluster:
  network:
    cni:
      name: custom
      urls:
        - http://10.10.0.81/cilium.yaml
  extraManifests:
    - https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

You could do:

cluster:
  network:
    cni:
      name: custom
      helmChart:
        name: cilium
        namespace: kube-system
        repository: https://helm.cilium.io
        chart: cilium
        version: 1.14.0  
        values:
          ipam:
            mode: kubernetes
          kubeProxyReplacement: true
          securityContext:
            capabilities:
              ciliumAgent:
                - CHOWN
                - KILL
                - NET_ADMIN
                - NET_RAW
                - IPC_LOCK
                - SYS_ADMIN
                - SYS_RESOURCE
                - DAC_OVERRIDE
                - FOWNER
                - SETGID
                - SETUID
              cleanCiliumState:
                - NET_ADMIN
                - SYS_ADMIN
                - SYS_RESOURCE
          cgroup:
            autoMount:
              enabled: false
            hostRoot: /sys/fs/cgroup 
          k8sServiceHost: localhost
          k8sServicePort: 7445
  extraHelmCharts:
    - name: metrics-server
      namespace: kube-system
      repository: https://kubernetes-sigs.github.io/metrics-server
      chart: metrics-server
      version: 3.11.0
smira commented 7 months ago

we considered that, but most probably not in Talos itself.

I know it would simplify some flows, but Helm is too big to be part of the core OS.

Using Helm externally is perfect fine of course.

etenzy commented 7 months ago

how about integrating the binary as it is and execute it with parameters from configuration?

smira commented 7 months ago

This is even less Talos way. If you want to, you can put it that as a static pod to your cluster, but it won't be what Talos offers by default.