k0sproject / k0smotron

k0smotron
https://docs.k0smotron.io/
Other
424 stars 39 forks source link

Clarification On Using Container OS Like Fedora Coreos #457

Closed infinitydon closed 4 months ago

infinitydon commented 4 months ago

Hi,

Is it currently possible for k0smotron to use container OSes like FCOS?

I got the following sample config for k0sctl:

apiVersion: k0sctl.k0sproject.io/v1beta1
kind: Cluster
metadata:
  name: k0s-cluster
spec:
  hosts:
  - ssh:
      address: 192.168.100.219
      user: root
      port: 22
      keyPath: /home/ubuntu/tmp/fcos-proxmox-k8s/id_rsa
    role: controller
    installFlags:
      - "--profile coreos"
  - ssh:
      address: 192.168.100.220
      user: root
      port: 22
      keyPath: /home/ubuntu/tmp/fcos-proxmox-k8s/id_rsa
    role: worker
    installFlags:
      - "--profile coreos"
  k0s:
    version: v1.29.1+k0s.1
    dynamicConfig: false
    config:
      spec:
        controllerManager:
          extraArgs:
            flex-volume-plugin-dir: /var/libexec/k0s/kubelet-plugins/volume/exec
        workerProfiles:
          - name: coreos
            values:
              volumePluginDir: /var/libexec/k0s/kubelet-plugins/volume/exec

I checked the doc reference but could not find something I could use, how do I go about configuring the workerProfiles?

Thanks

jnummelin commented 4 months ago

There's k0sworkerconfig.spec.args which you can use to pass any extra args to the k0s worker.

infinitydon commented 4 months ago

Thanks @jnummelin - Works, only issue I encountered is the workerProfile name, I used the sample one that was given in the docs:

spec:
  workerProfiles:
    - name: custom-pluginDir
      values:
         volumePluginDir: /var/libexec/k0s/kubelet-plugins/volume/exec

custom-pluginDir is not valid since the eventual workerprofile will be created as a configmap:

time="2024-02-21 14:59:53" level=error msg="Failed to reconcile API server addresses" component=workerconfig.Reconciler error="failed to apply resources for worker configuration: cannot create resource worker-config-custom-pluginDir-1.29: ConfigMap \"worker-config-custom-pluginDir-1.29\" is invalid: metadata.name: Invalid value: \"worker-config-custom-pluginDir-1.29\": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')"

You may want to update the docs about this.