MusicDin / kubitect

Kubitect provides a simple way to set up a highly available Kubernetes cluster across multiple hosts.

Home Page:https://kubitect.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

failure applying kubitect using k8s version 1.26.6

bsdlp opened this issue · comments

commented

failure message from ansible:

fatal: [pounce-worker-2]: FAILED! => 
  msg: |-
    The task includes an option with an undefined variable. The error was: {{ download_defaults | combine(downloads.runc) }}: {'netcheck_server': {'enabled': '{{ deploy_netchecker }}', 'container': True, 'repo': '{{ netcheck_server_image_repo }}', 'tag': '{{ netcheck_server_image_tag }}', 'sha256': '{{ netcheck_server_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'netcheck_agent': {'enabled': '{{ deploy_netchecker }}', 'container': True, 'repo': '{{ netcheck_agent_image_repo }}', 'tag': '{{ netcheck_agent_image_tag }}', 'sha256': '{{ netcheck_agent_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'etcd': {'container': "{{ etcd_deployment_type != 'host' }}", 'file': "{{ etcd_deployment_type == 'host' }}", 'enabled': True, 'version': '{{ etcd_version }}', 'dest': '{{ local_release_dir }}/etcd-{{ etcd_version }}-linux-{{ image_arch }}.tar.gz', 'repo': '{{ etcd_image_repo }}', 'tag': '{{ etcd_image_tag }}', 'sha256': "{{ etcd_binary_checksum if (etcd_deployment_type == 'host') else etcd_digest_checksum|d(None) }}", 'url': '{{ etcd_download_url }}', 'unarchive': "{{ etcd_deployment_type == 'host' }}", 'owner': 'root', 'mode': '0755', 'groups': ['etcd']}, 'cni': {'enabled': True, 'file': True, 'version': '{{ cni_version }}', 'dest': '{{ local_release_dir }}/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz', 'sha256': '{{ cni_binary_checksum }}', 'url': '{{ cni_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'kubeadm': {'enabled': True, 'file': True, 'version': '{{ kubeadm_version }}', 'dest': '{{ local_release_dir }}/kubeadm-{{ kubeadm_version }}-{{ image_arch }}', 'sha256': '{{ kubeadm_binary_checksum }}', 'url': '{{ kubeadm_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'kubelet': {'enabled': True, 'file': True, 'version': '{{ kube_version }}', 'dest': '{{ local_release_dir }}/kubelet-{{ kube_version }}-{{ image_arch }}', 'sha256': '{{ kubelet_binary_checksum }}', 'url': '{{ kubelet_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'kubectl': {'enabled': True, 'file': True, 'version': '{{ kube_version }}', 'dest': '{{ local_release_dir }}/kubectl-{{ kube_version }}-{{ image_arch }}', 'sha256': '{{ kubectl_binary_checksum }}', 'url': '{{ kubectl_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['kube_control_plane']}, 'crictl': {'file': True, 'enabled': True, 'version': '{{ crictl_version }}', 'dest': '{{ local_release_dir }}/crictl-{{ crictl_version }}-linux-{{ image_arch }}.tar.gz', 'sha256': '{{ crictl_binary_checksum }}', 'url': '{{ crictl_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'crio': {'file': True, 'enabled': "{{ container_manager == 'crio' }}", 'version': '{{ crio_version }}', 'dest': '{{ local_release_dir }}/cri-o.{{ image_arch }}.{{ crio_version }}tar.gz', 'sha256': '{{ crio_archive_checksum }}', 'url': '{{ crio_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'cri_dockerd': {'file': True, 'enabled': "{{ container_manager == 'docker' }}", 'version': '{{ cri_dockerd_version }}', 'dest': '{{ local_release_dir }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tar.gz', 'sha256': '{{ cri_dockerd_archive_checksum }}', 'url': '{{ cri_dockerd_download_url }}', 'unarchive': True, 'unarchive_extra_opts': ['--strip=1'], 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'crun': {'file': True, 'enabled': '{{ crun_enabled }}', 'version': '{{ crun_version }}', 'dest': '{{ local_release_dir }}/crun', 'sha256': '{{ crun_binary_checksum }}', 'url': '{{ crun_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'youki': {'file': True, 'enabled': '{{ youki_enabled }}', 'version': '{{ youki_version }}', 'dest': "{{ local_release_dir }}/youki_v{{ youki_version | regex_replace('\\.', '_') }}_linux.tar.gz", 'sha256': '{{ youki_archive_checksum }}', 'url': '{{ youki_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'runc': {'file': True, 'enabled': "{{ container_manager == 'containerd' }}", 'version': '{{ runc_version }}', 'dest': '{{ local_release_dir }}/runc', 'sha256': '{{ runc_binary_checksum }}', 'url': '{{ runc_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'kata_containers': {'enabled': '{{ kata_containers_enabled }}', 'file': True, 'version': '{{ kata_containers_version }}', 'dest': '{{ local_release_dir }}/kata-static-{{ kata_containers_version }}-{{ image_arch }}.tar.xz', 'sha256': '{{ kata_containers_binary_checksum }}', 'url': '{{ kata_containers_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'containerd': {'enabled': "{{ container_manager == 'containerd' }}", 'file': True, 'version': '{{ containerd_version }}', 'dest': '{{ local_release_dir }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz', 'sha256': '{{ containerd_archive_checksum }}', 'url': '{{ containerd_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'gvisor_runsc': {'enabled': '{{ gvisor_enabled }}', 'file': True, 'version': '{{ gvisor_version }}', 'dest': '{{ local_release_dir }}/gvisor-runsc', 'sha256': '{{ gvisor_runsc_binary_checksum }}', 'url': '{{ gvisor_runsc_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': 755, 'groups': ['k8s_cluster']}, 'gvisor_containerd_shim': {'enabled': '{{ gvisor_enabled }}', 'file': True, 'version': '{{ gvisor_version }}', 'dest': '{{ local_release_dir }}/gvisor-containerd-shim-runsc-v1', 'sha256': '{{ gvisor_containerd_shim_binary_checksum }}', 'url': '{{ gvisor_containerd_shim_runsc_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': 755, 'groups': ['k8s_cluster']}, 'nerdctl': {'file': True, 'enabled': "{{ container_manager == 'containerd' }}", 'version': '{{ nerdctl_version }}', 'dest': '{{ local_release_dir }}/nerdctl-{{ nerdctl_version }}-linux-{{ image_arch }}.tar.gz', 'sha256': '{{ nerdctl_archive_checksum }}', 'url': '{{ nerdctl_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'skopeo': {'file': True, 'enabled': "{{ container_manager == 'crio' }}", 'version': '{{ skopeo_version }}', 'dest': '{{ local_release_dir }}/skopeo', 'sha256': '{{ skopeo_binary_checksum }}', 'url': '{{ skopeo_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['kube_control_plane']}, 'cilium': {'enabled': "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally | default(false) | bool }}", 'container': True, 'repo': '{{ cilium_image_repo }}', 'tag': '{{ cilium_image_tag }}', 'sha256': '{{ cilium_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'cilium_operator': {'enabled': "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally | default(false) | bool }}", 'container': True, 'repo': '{{ cilium_operator_image_repo }}', 'tag': '{{ cilium_operator_image_tag }}', 'sha256': '{{ cilium_operator_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'cilium_hubble_relay': {'enabled': '{{ cilium_enable_hubble }}', 'container': True, 'repo': '{{ cilium_hubble_relay_image_repo }}', 'tag': '{{ cilium_hubble_relay_image_tag }}', 'sha256': '{{ cilium_hubble_relay_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'cilium_hubble_certgen': {'enabled': '{{ cilium_enable_hubble }}', 'container': True, 'repo': '{{ cilium_hubble_certgen_image_repo }}', 'tag': '{{ cilium_hubble_certgen_image_tag }}', 'sha256': '{{ cilium_hubble_certgen_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'cilium_hubble_ui': {'enabled': '{{ cilium_enable_hubble }}', 'container': True, 'repo': '{{ cilium_hubble_ui_image_repo }}', 'tag': '{{ cilium_hubble_ui_image_tag }}', 'sha256': '{{ cilium_hubble_ui_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'cilium_hubble_ui_backend': {'enabled': '{{ cilium_enable_hubble }}', 'container': True, 'repo': '{{ cilium_hubble_ui_backend_image_repo }}', 'tag': '{{ cilium_hubble_ui_backend_image_tag }}', 'sha256': '{{ cilium_hubble_ui_backend_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'cilium_hubble_envoy': {'enabled': '{{ cilium_enable_hubble }}', 'container': True, 'repo': '{{ cilium_hubble_envoy_image_repo }}', 'tag': '{{ cilium_hubble_envoy_image_tag }}', 'sha256': '{{ cilium_hubble_envoy_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'ciliumcli': {'enabled': "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally | default(false) | bool }}", 'file': True, 'version': '{{ cilium_cli_version }}', 'dest': '{{ local_release_dir }}/cilium', 'sha256': '{{ ciliumcli_binary_checksum }}', 'url': '{{ ciliumcli_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'multus': {'enabled': '{{ kube_network_plugin_multus }}', 'container': True, 'repo': '{{ multus_image_repo }}', 'tag': '{{ multus_image_tag }}', 'sha256': '{{ multus_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'flannel': {'enabled': "{{ kube_network_plugin == 'flannel' }}", 'container': True, 'repo': '{{ flannel_image_repo }}', 'tag': '{{ flannel_image_tag }}', 'sha256': '{{ flannel_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'flannel_init': {'enabled': "{{ kube_network_plugin == 'flannel' }}", 'container': True, 'repo': '{{ flannel_init_image_repo }}', 'tag': '{{ flannel_init_image_tag }}', 'sha256': '{{ flannel_init_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calicoctl': {'enabled': "{{ kube_network_plugin == 'calico' }}", 'file': True, 'version': '{{ calico_ctl_version }}', 'dest': '{{ local_release_dir }}/calicoctl', 'sha256': '{{ calicoctl_binary_checksum }}', 'url': '{{ calicoctl_download_url }}', 'mirrors': ['{{ calicoctl_download_url }}'], 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['k8s_cluster']}, 'calico_node': {'enabled': "{{ kube_network_plugin == 'calico' }}", 'container': True, 'repo': '{{ calico_node_image_repo }}', 'tag': '{{ calico_node_image_tag }}', 'sha256': '{{ calico_node_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calico_cni': {'enabled': "{{ kube_network_plugin == 'calico' }}", 'container': True, 'repo': '{{ calico_cni_image_repo }}', 'tag': '{{ calico_cni_image_tag }}', 'sha256': '{{ calico_cni_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calico_flexvol': {'enabled': "{{ kube_network_plugin == 'calico' }}", 'container': True, 'repo': '{{ calico_flexvol_image_repo }}', 'tag': '{{ calico_flexvol_image_tag }}', 'sha256': '{{ calico_flexvol_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calico_policy': {'enabled': "{{ enable_network_policy and kube_network_plugin in ['calico'] }}", 'container': True, 'repo': '{{ calico_policy_image_repo }}', 'tag': '{{ calico_policy_image_tag }}', 'sha256': '{{ calico_policy_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calico_typha': {'enabled': '{{ typha_enabled }}', 'container': True, 'repo': '{{ calico_typha_image_repo }}', 'tag': '{{ calico_typha_image_tag }}', 'sha256': '{{ calico_typha_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calico_apiserver': {'enabled': '{{ calico_apiserver_enabled }}', 'container': True, 'repo': '{{ calico_apiserver_image_repo }}', 'tag': '{{ calico_apiserver_image_tag }}', 'sha256': '{{ calico_apiserver_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'calico_crds': {'file': True, 'enabled': "{{ kube_network_plugin == 'calico' and calico_datastore == 'kdd' }}", 'version': '{{ calico_version }}', 'dest': '{{ local_release_dir }}/calico-{{ calico_version }}-kdd-crds/{{ calico_version }}.tar.gz', 'sha256': '{{ calico_crds_archive_checksum }}', 'url': '{{ calico_crds_download_url }}', 'unarchive': True, 'unarchive_extra_opts': ["{{ '--strip=6' if (calico_version is version('v3.22.3','<')) else '--strip=3' }}", '--wildcards', "{{ '*/_includes/charts/calico/crds/kdd/' if (calico_version is version('v3.22.3','<')) else '*/libcalico-go/config/crd/' }}"], 'owner': 'root', 'mode': '0755', 'groups': ['kube_control_plane']}, 'weave_kube': {'enabled': "{{ kube_network_plugin == 'weave' }}", 'container': True, 'repo': '{{ weave_kube_image_repo }}', 'tag': '{{ weave_kube_image_tag }}', 'sha256': '{{ weave_kube_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'weave_npc': {'enabled': "{{ kube_network_plugin == 'weave' }}", 'container': True, 'repo': '{{ weave_npc_image_repo }}', 'tag': '{{ weave_npc_image_tag }}', 'sha256': '{{ weave_npc_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'kube_ovn': {'enabled': "{{ kube_network_plugin == 'kube-ovn' }}", 'container': True, 'repo': '{{ kube_ovn_container_image_repo }}', 'tag': '{{ kube_ovn_container_image_tag }}', 'sha256': '{{ kube_ovn_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'kube_router': {'enabled': "{{ kube_network_plugin == 'kube-router' }}", 'container': True, 'repo': '{{ kube_router_image_repo }}', 'tag': '{{ kube_router_image_tag }}', 'sha256': '{{ kube_router_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'pod_infra': {'enabled': True, 'container': True, 'repo': '{{ pod_infra_image_repo }}', 'tag': '{{ pod_infra_image_tag }}', 'sha256': '{{ pod_infra_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'kube-vip': {'enabled': '{{ kube_vip_enabled }}', 'container': True, 'repo': '{{ kube_vip_image_repo }}', 'tag': '{{ kube_vip_image_tag }}', 'sha256': '{{ kube_vip_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'nginx': {'enabled': "{{ loadbalancer_apiserver_localhost and loadbalancer_apiserver_type == 'nginx' }}", 'container': True, 'repo': '{{ nginx_image_repo }}', 'tag': '{{ nginx_image_tag }}', 'sha256': '{{ nginx_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'haproxy': {'enabled': "{{ loadbalancer_apiserver_localhost and loadbalancer_apiserver_type == 'haproxy' }}", 'container': True, 'repo': '{{ haproxy_image_repo }}', 'tag': '{{ haproxy_image_tag }}', 'sha256': '{{ haproxy_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'coredns': {'enabled': "{{ dns_mode in ['coredns', 'coredns_dual'] }}", 'container': True, 'repo': '{{ coredns_image_repo }}', 'tag': '{{ coredns_image_tag }}', 'sha256': '{{ coredns_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'nodelocaldns': {'enabled': '{{ enable_nodelocaldns }}', 'container': True, 'repo': '{{ nodelocaldns_image_repo }}', 'tag': '{{ nodelocaldns_image_tag }}', 'sha256': '{{ nodelocaldns_digest_checksum|default(None) }}', 'groups': ['k8s_cluster']}, 'dnsautoscaler': {'enabled': "{{ dns_mode in ['coredns', 'coredns_dual'] }}", 'container': True, 'repo': '{{ dnsautoscaler_image_repo }}', 'tag': '{{ dnsautoscaler_image_tag }}', 'sha256': '{{ dnsautoscaler_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'helm': {'enabled': '{{ helm_enabled }}', 'file': True, 'version': '{{ helm_version }}', 'dest': '{{ local_release_dir }}/helm-{{ helm_version }}/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz', 'sha256': '{{ helm_archive_checksum }}', 'url': '{{ helm_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['kube_control_plane']}, 'krew': {'enabled': '{{ krew_enabled }}', 'file': True, 'version': '{{ krew_version }}', 'dest': '{{ local_release_dir }}/krew-{{ host_os }}_{{ image_arch }}.tar.gz', 'sha256': '{{ krew_archive_checksum }}', 'url': '{{ krew_download_url }}', 'unarchive': True, 'owner': 'root', 'mode': '0755', 'groups': ['kube_control_plane']}, 'registry': {'enabled': '{{ registry_enabled }}', 'container': True, 'repo': '{{ registry_image_repo }}', 'tag': '{{ registry_image_tag }}', 'sha256': '{{ registry_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'metrics_server': {'enabled': '{{ metrics_server_enabled }}', 'container': True, 'repo': '{{ metrics_server_image_repo }}', 'tag': '{{ metrics_server_image_tag }}', 'sha256': '{{ metrics_server_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'local_volume_provisioner': {'enabled': '{{ local_volume_provisioner_enabled }}', 'container': True, 'repo': '{{ local_volume_provisioner_image_repo }}', 'tag': '{{ local_volume_provisioner_image_tag }}', 'sha256': '{{ local_volume_provisioner_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'cephfs_provisioner': {'enabled': '{{ cephfs_provisioner_enabled }}', 'container': True, 'repo': '{{ cephfs_provisioner_image_repo }}', 'tag': '{{ cephfs_provisioner_image_tag }}', 'sha256': '{{ cephfs_provisioner_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'rbd_provisioner': {'enabled': '{{ rbd_provisioner_enabled }}', 'container': True, 'repo': '{{ rbd_provisioner_image_repo }}', 'tag': '{{ rbd_provisioner_image_tag }}', 'sha256': '{{ rbd_provisioner_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'local_path_provisioner': {'enabled': '{{ local_path_provisioner_enabled }}', 'container': True, 'repo': '{{ local_path_provisioner_image_repo }}', 'tag': '{{ local_path_provisioner_image_tag }}', 'sha256': '{{ local_path_provisioner_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'ingress_nginx_controller': {'enabled': '{{ ingress_nginx_enabled }}', 'container': True, 'repo': '{{ ingress_nginx_controller_image_repo }}', 'tag': '{{ ingress_nginx_controller_image_tag }}', 'sha256': '{{ ingress_nginx_controller_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'ingress_alb_controller': {'enabled': '{{ ingress_alb_enabled }}', 'container': True, 'repo': '{{ alb_ingress_image_repo }}', 'tag': '{{ alb_ingress_image_tag }}', 'sha256': '{{ ingress_alb_controller_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'cert_manager_controller': {'enabled': '{{ cert_manager_enabled }}', 'container': True, 'repo': '{{ cert_manager_controller_image_repo }}', 'tag': '{{ cert_manager_controller_image_tag }}', 'sha256': '{{ cert_manager_controller_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'cert_manager_cainjector': {'enabled': '{{ cert_manager_enabled }}', 'container': True, 'repo': '{{ cert_manager_cainjector_image_repo }}', 'tag': '{{ cert_manager_cainjector_image_tag }}', 'sha256': '{{ cert_manager_cainjector_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'cert_manager_webhook': {'enabled': '{{ cert_manager_enabled }}', 'container': True, 'repo': '{{ cert_manager_webhook_image_repo }}', 'tag': '{{ cert_manager_webhook_image_tag }}', 'sha256': '{{ cert_manager_webhook_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'csi_attacher': {'enabled': '{{ cinder_csi_enabled or aws_ebs_csi_enabled }}', 'container': True, 'repo': '{{ csi_attacher_image_repo }}', 'tag': '{{ csi_attacher_image_tag }}', 'sha256': '{{ csi_attacher_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'csi_provisioner': {'enabled': '{{ cinder_csi_enabled or aws_ebs_csi_enabled }}', 'container': True, 'repo': '{{ csi_provisioner_image_repo }}', 'tag': '{{ csi_provisioner_image_tag }}', 'sha256': '{{ csi_provisioner_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'csi_snapshotter': {'enabled': '{{ cinder_csi_enabled or aws_ebs_csi_enabled }}', 'container': True, 'repo': '{{ csi_snapshotter_image_repo }}', 'tag': '{{ csi_snapshotter_image_tag }}', 'sha256': '{{ csi_snapshotter_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'snapshot_controller': {'enabled': '{{ csi_snapshot_controller_enabled }}', 'container': True, 'repo': '{{ snapshot_controller_image_repo }}', 'tag': '{{ snapshot_controller_image_tag }}', 'sha256': '{{ snapshot_controller_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'csi_resizer': {'enabled': '{{ cinder_csi_enabled or aws_ebs_csi_enabled }}', 'container': True, 'repo': '{{ csi_resizer_image_repo }}', 'tag': '{{ csi_resizer_image_tag }}', 'sha256': '{{ csi_resizer_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'csi_node_driver_registrar': {'enabled': '{{ cinder_csi_enabled or aws_ebs_csi_enabled }}', 'container': True, 'repo': '{{ csi_node_driver_registrar_image_repo }}', 'tag': '{{ csi_node_driver_registrar_image_tag }}', 'sha256': '{{ csi_node_driver_registrar_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'cinder_csi_plugin': {'enabled': '{{ cinder_csi_enabled }}', 'container': True, 'repo': '{{ cinder_csi_plugin_image_repo }}', 'tag': '{{ cinder_csi_plugin_image_tag }}', 'sha256': '{{ cinder_csi_plugin_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'aws_ebs_csi_plugin': {'enabled': '{{ aws_ebs_csi_enabled }}', 'container': True, 'repo': '{{ aws_ebs_csi_plugin_image_repo }}', 'tag': '{{ aws_ebs_csi_plugin_image_tag }}', 'sha256': '{{ aws_ebs_csi_plugin_digest_checksum|default(None) }}', 'groups': ['kube_node']}, 'dashboard': {'enabled': '{{ dashboard_enabled }}', 'container': True, 'repo': '{{ dashboard_image_repo }}', 'tag': '{{ dashboard_image_tag }}', 'sha256': '{{ dashboard_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'dashboard_metrics_scrapper': {'enabled': '{{ dashboard_enabled }}', 'container': True, 'repo': '{{ dashboard_metrics_scraper_repo }}', 'tag': '{{ dashboard_metrics_scraper_tag }}', 'sha256': '{{ dashboard_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'metallb_speaker': {'enabled': '{{ metallb_speaker_enabled }}', 'container': True, 'repo': '{{ metallb_speaker_image_repo }}', 'tag': '{{ metallb_version }}', 'sha256': '{{ metallb_speaker_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'metallb_controller': {'enabled': '{{ metallb_enabled }}', 'container': True, 'repo': '{{ metallb_controller_image_repo }}', 'tag': '{{ metallb_version }}', 'sha256': '{{ metallb_controller_digest_checksum|default(None) }}', 'groups': ['kube_control_plane']}, 'yq': {'enabled': '{{ argocd_enabled }}', 'file': True, 'version': '{{ yq_version }}', 'dest': '{{ local_release_dir }}/yq', 'sha256': '{{ yq_binary_checksum|default(None) }}', 'url': '{{ yq_download_url }}', 'unarchive': False, 'owner': 'root', 'mode': '0755', 'groups': ['kube_control_plane']}}: {{ kubeadm_checksums[image_arch][kubeadm_version] }}: 'dict object' has no attribute 'v1.26.6'
  
    The error appears to be in '/Users/jchen/.kubitect/clusters/pounce/ansible/kubespray/roles/download/tasks/download_file.yml': line 7, column 5, but may
    be elsewhere in the file depending on the exact syntax problem.
  
    The offending line appears to be:
  
  
      - name: download_file | Starting download of file
        ^ here
┌
│ Error: ansible-playbook (cluster.yml): Error during command execution: ansible-playbook error: one or 
│ more host failed
│ 
│ Command executed:
│ /Users/jchen/.kubitect/share/venv/kubespray/v2.22.1/bin/ansible-playbook --extra-vars 
│ {"kube_version":"v1.26.6"} --forks 50 --inventory 
│ /Users/jchen/.kubitect/clusters/pounce/config/nodes.yaml --private-key 
│ /Users/jchen/.kubitect/clusters/pounce/config/.ssh/id_rsa --timeout 3000 --user jchen --become 
│ /Users/jchen/.kubitect/clusters/pounce/ansible/kubespray/cluster.yml
│ 
│ Error:
│ exit status 2

my config:

hosts:
  - name: catnet21390176
    connection:
      ip: 192.168.51.117
      type: remote
      user: root
      ssh:
        keyfile: "~/.ssh/id_ed25519"
  - name: catnet21390118
    connection:
      ip: 192.168.51.118
      type: remote
      user: root
      ssh:
        keyfile: "~/.ssh/id_ed25519"

cluster:
  name: pounce
  network:
    mode: bridge
    cidr: 192.168.0.0/16
    bridge: br0
  nodeTemplate:
    user: jchen
    updateOnBoot: true
    os:
      distro: ubuntu22
  nodes:
    loadbalancer:
      vip: 192.168.200.210
      forwardPorts:
        - name: http
          port: 80
          targetPort: 50080
          target: workers
        - name: https
          port: 443
          targetPort: 50443
      instances:
        - id: 1
          ram: 4
          cpu: 4
          host: catnet21390118
    master:
      default:
        ram: 8
        cpu: 4
        mainDiskSize: 32
      instances:
        - id: 1
          host: catnet21390176
    worker:
      default:
        ram: 48
        cpu: 8
        mainDiskSize: 512
      instances:
        - id: 1
          host: catnet21390176
        - id: 2
          host: catnet21390118
          ram: 56
          mainDiskSize: 768
          cpu: 8
kubernetes:
  version: "v1.26.6"
  networkPlugin: cilium

addons:
  kubespray:
    ingress_nginx_enabled: true
    ingress_nginx_namespace: "ingress-nginx"
    ingress_nginx_insecure_port: 50080
    ingress_nginx_secure_port: 50443
commented

ansible error message is hard to read i guess, but at the end of the var dump it says
'dict object' has no attribute 'v1.26.6'

i tried with 1.25 and got similar error so i'd assume it's not an issue with the 1.26.6 release of k8s specifically

Hi @bsdlp, thanks for reporting that.

Hmm, that's interesting. My guess would be that Kubespray is failing because it does not have this version in its dictionary of allowed/available k8s versions. However, I have to check that to be sure.

commented

removing the kubernetes version declaration in the config seemingly bypasses the issue - i'll try to take some time later to try to help with finding the issue - thanks!

If the kubernetes.version field is not explicitly specified, Kubitect defaults to using Kubernetes version v1.26.5.

However, Kubitect's current validation only restricts the major and minor parts of the version number, which means it permits any patch version. As a result, a version v1.26.6 passes Kubitect's validation, but Kubespray later catches it as unsupported.

I will make stricter validation of Kubernetes version, and ensure that error clearly shows supported versions.