Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

talhelper genconfig generates error undefined field 'buspath' #795

Closed
digilink opened this issue Jan 10, 2025 · 6 comments · Fixed by #810
Closed

talhelper genconfig generates error undefined field 'buspath' #795

digilink opened this issue Jan 10, 2025 · 6 comments · Fixed by #810

Comments

@digilink
Copy link

I am in the process of building a new cluster, and have created a new talconfig file. When I issue talhelper genconfig, it errors out:

There are issues with your Talhelper config file:
field: "nodes[2].installDiskSelector"
  * ERROR: <input>:-1:0: undefined field 'buspath'
field: "nodes[3].installDiskSelector"
  * ERROR: <input>:-1:0: undefined field 'buspath'
field: "nodes[4].installDiskSelector"
  * ERROR: <input>:-1:0: undefined field 'buspath'
field: "nodes[5].installDiskSelector"
  * ERROR: <input>:-1:0: undefined field 'buspath'
field: "nodes[0].installDiskSelector"
  * ERROR: <input>:-1:0: undefined field 'buspath'
field: "nodes[1].installDiskSelector"
  * ERROR: <input>:-1:0: undefined field 'buspath'

Here is my full talconfig file:

---
clusterName: fairtime-wookie

talosVersion: v1.9.1
kubernetesVersion: 1.32.0
endpoint: https://10.0.101.253:6443

additionalApiServerCertSans:
  - 10.0.101.253

additionalMachineCertSans:
  - 10.0.101.253

nodes:
  # control plane nodes
  - hostname: vader
    disableSearchDomain: true
    ipAddress: 10.0.101.1
    controlPlane: true
    installDiskSelector:
      busPath: /pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1
    networkInterfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.101.1/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.101.254

  - hostname: deathstar
    disableSearchDomain: true
    ipAddress: 10.0.101.3
    controlPlane: true
    installDiskSelector:
      busPath: /pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1
    networkInterfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.101.3/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.101.254

  - hostname: tarkin
    disableSearchDomain: true
    ipAddress: 10.0.101.5
    controlPlane: true
    installDiskSelector:
      busPath: /pci0000:00/0000:00:1b.0/0000:01:00.0/nvme/nvme0/nvme0n1
    networkInterfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.101.5/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.101.254

  # worker nodes
  - hostname: chewbacca
    disableSearchDomain: true
    ipAddress: 10.0.101.2
    controlPlane: false
    installDiskSelector:
      busPath: /pci0000:00/0000:00:1c.0/0000:02:00.0/nvme/nvme0/nvme0n1
    networkInterfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.101.2/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.101.254

  - hostname: solo
    disableSearchDomain: true
    ipAddress: 10.0.101.4
    controlPlane: false
    installDiskSelector:
      busPath: /pci0000:00/0000:00:1c.0/0000:02:00.0/nvme/nvme0/nvme0n1
    networkInterfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.101.4/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.101.254

  - hostname: skywalker
    disableSearchDomain: true
    ipAddress: 10.0.101.6
    controlPlane: false
    installDiskSelector:
      busPath: /pci0000:00/0000:00:1c.0/0000:02:00.0/nvme/nvme0/nvme0n1
    networkInterfaces:
      - interface: eth0
        dhcp: false
        addresses:
          - 10.0.101.6/24
        routes:
          - network: 0.0.0.0/0
            gateway: 10.0.101.254

worker:
  schematic:
    customization:
      extraKernelArgs:
        - net.ifnames=0
      systemExtensions:
        officialExtensions:
          - siderolabs/intel-ucode
          - siderolabs/i915
  patches:
    # Configure containerd
    - &containerd |-
      machine:
        files:
          - op: create
            path: /etc/cri/conf.d/20-customization.part
            content: |
              [plugins]
                [plugins."io.containerd.grpc.v1.cri"]
                  enable_unprivileged_ports = true
                  enable_unprivileged_icmp = true
              [plugins."io.containerd.grpc.v1.cri".containerd]
                discard_unpacked_layers = false
              [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
                discard_unpacked_layers = false
    # Kubelet configuration
    - &kubeletConf |-
      machine:
        kubelet:
          defaultRuntimeSeccompProfileEnabled: true
          extraArgs:
            rotate-server-certificates: "true"
          extraConfig:
            maxPods: 150
          nodeIP:
            validSubnets:
                - 10.0.101.0/24
    - &sysctls |-
      machine:
        sysctls:
          fs.inotify.max_queued_events: "65536"
          fs.inotify.max_user_instances: "8192"
          fs.inotify.max_user_watches: "524288"
          net.core.rmem_max: "2500000"
          net.core.wmem_max: "2500000"
    # - &nfsMountOptions |-
    #   machine:
    #     files:
    #       - op: overwrite
    #         path: /etc/nfsmount.conf
    #         permissions: 0o644
    #         content: |
    #           [ NFSMount_Global_Options ]
    #           nfsvers=4.1
    #           hard=True
    #           noatime=True
    #           nodiratime=True
    #           rsize=131072
    #           wsize=131072
    #           nconnect=8
    - &hostDNS |-
      machine:
        features:
          hostDNS:
            enabled: true
            resolveMemberNames: true
            forwardKubeDNSToHost: false
    - &searchDomain |-
      machine:
        network:
          disableSearchDomain: true
    - &nameservers |-
      machine:
        network:
          nameservers:
            - 10.0.101.254
    - &kubelet_extra_mounts |-
        machine:
          kubelet:
            extraMounts:
              - destination: /var/storage/local
                type: bind
                source: /var/storage/local
                options:
                  - bind
                  - rshared
                  - rw
controlPlane:
  schematic:
    customization:
      extraKernelArgs:
        - net.ifnames=0
      systemExtensions:
        officialExtensions:
          - siderolabs/intel-ucode
          - siderolabs/i915
  patches:
    # hugepages
    # - *hugepages
    # Kubelet local mount
    # - *kubelet_extra_mounts
    # Disable search domain everywhere
    - *searchDomain

    # Force nameserver
    - *nameservers

    # Configure NTP
    - |-
      machine:
        time:
          disabled: false
          servers:
            - time.cloudflare.com

    # hostDNS configuration
    - *hostDNS

    # coreDNS configuration
    - |-
      cluster:
        coreDNS:
          disabled: true

    # Cluster configuration
    - |-
      cluster:
        proxy:
          disabled: true
        network:
          cni:
            name: none
        controllerManager:
          extraArgs:
            bind-address: 0.0.0.0
        etcd:
          extraArgs:
            listen-metrics-urls: http://0.0.0.0:2381
        scheduler:
          extraArgs:
            bind-address: 0.0.0.0

    # ETCD configuration
    - |-
      cluster:
        etcd:
          advertisedSubnets:
            - 10.0.101.0/24

    # Configure containerd
    - *containerd

    # Disable default API server admission plugins.
    - |-
      - op: remove
        path: /cluster/apiServer/admissionControl

    # Enable K8s Talos API Access
    - |-
      machine:
        features:
          kubernetesTalosAPIAccess:
            enabled: true
            allowedRoles:
              - os:admin
            allowedKubernetesNamespaces:
              - system-upgrade

    # Kubelet configuration
    - *kubeletConf

    # Custom sysctls
    - *sysctls

    # Configure nfs mount options
    # - *nfsMountOptions
@budimanjojo
Copy link
Owner

Thanks for the report!

Seems to be related to this: siderolabs/talos#10080

Should be fixed upstream.

@digilink
Copy link
Author

Thanks! I'll take a different route until this is sorted.

@budimanjojo
Copy link
Owner

@digilink Please see if the latest release (v3.0.15) fixes the problem.

@digilink
Copy link
Author

digilink commented Jan 17, 2025

Thanks @budimanjojo ... I have upgraded to talhelper v3.0.15 and talosctl v1.9.2 (via brew), but the issue persists.

@digilink digilink reopened this Jan 17, 2025
@budimanjojo
Copy link
Owner

Hmm, seems like the patch above is not inside v1.10.0-alpha.0 which is used by Talhelper. I'll ask upstream about this. Thank you!

@budimanjojo
Copy link
Owner

@digilink Should be fixed now in v3.0.16, I tried it myself. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants