From 1011c240b4bee6c0d435954083739fa7b86384d6 Mon Sep 17 00:00:00 2001 From: Max Gautier Date: Tue, 13 Oct 2026 09:58:21 +0000 Subject: [PATCH] downloads: split file and containers (#13581) Splits the definitions into two dicts, while joining then for now to preserve the downloads dict. Update all consumers of the variables, which are roughly: - manual includes of the download role (which will be removed in the short future) - install tasks using the resolved 'dest' to find the artefacts This will make further division of the downloads role easier. --- contrib/offline/generate_list.sh | 2 +- .../containerd/tasks/main.yml | 4 +- .../cri-dockerd/tasks/main.yml | 2 +- roles/container-engine/cri-o/tasks/main.yaml | 2 +- roles/container-engine/crictl/tasks/main.yml | 2 +- roles/container-engine/crun/tasks/main.yml | 4 +- roles/container-engine/gvisor/tasks/main.yml | 8 +- .../kata-containers/tasks/main.yml | 4 +- roles/container-engine/molecule/prepare.yml | 2 +- roles/container-engine/nerdctl/tasks/main.yml | 2 +- roles/container-engine/runc/tasks/main.yml | 4 +- roles/container-engine/skopeo/tasks/main.yml | 4 +- roles/container-engine/youki/tasks/main.yml | 2 +- roles/download/tasks/main.yml | 19 +- roles/download/tasks/prep_kubeadm_images.yml | 6 +- roles/etcdctl_etcdutl/tasks/main.yml | 2 +- roles/kubernetes-apps/argocd/tasks/main.yml | 2 +- .../common_crds/gateway_api/tasks/main.yml | 2 +- .../prometheus_operator_crds/tasks/main.yml | 2 +- roles/kubernetes-apps/helm/tasks/main.yml | 2 +- roles/kubernetes/control-plane/tasks/main.yml | 2 +- roles/kubernetes/node/tasks/install.yml | 4 +- .../defaults/main/download.yml | 602 ++++++++---------- roles/network_plugin/calico/tasks/install.yml | 4 +- roles/network_plugin/cni/tasks/main.yml | 2 +- 25 files changed, 315 insertions(+), 376 deletions(-) diff --git a/contrib/offline/generate_list.sh b/contrib/offline/generate_list.sh index cf05b96a8..9fad45dab 100755 --- a/contrib/offline/generate_list.sh +++ b/contrib/offline/generate_list.sh @@ -14,7 +14,7 @@ grep 'download_url:' ${REPO_ROOT_DIR}/${DOWNLOAD_YML} \ | sed 's/^.*_url: //g;s/\"//g' > ${TEMP_DIR}/files.list.template # generate all images list template -sed -n '/^downloads:/,/download_defaults:/p' ${REPO_ROOT_DIR}/${DOWNLOAD_YML} \ +sed -n '/^downloads_container:/,/download_defaults:/p' ${REPO_ROOT_DIR}/${DOWNLOAD_YML} \ | sed -n "s/image_name: //p" | tr -d ' ' \ | tr ' ' ':' | sed 's/\"//g' > ${TEMP_DIR}/images.list.template diff --git a/roles/container-engine/containerd/tasks/main.yml b/roles/container-engine/containerd/tasks/main.yml index a784bcf2f..6b4f06930 100644 --- a/roles/container-engine/containerd/tasks/main.yml +++ b/roles/container-engine/containerd/tasks/main.yml @@ -2,11 +2,11 @@ - name: Containerd | Download containerd include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.containerd) }}" + download: "{{ download_defaults | combine(downloads_file.containerd) }}" - name: Containerd | Unpack containerd archive unarchive: - src: "{{ downloads.containerd.dest }}" + src: "{{ downloads_file.containerd.dest }}" dest: "{{ containerd_bin_dir }}" mode: "0755" remote_src: true diff --git a/roles/container-engine/cri-dockerd/tasks/main.yml b/roles/container-engine/cri-dockerd/tasks/main.yml index f7d1b1831..6eb46882e 100644 --- a/roles/container-engine/cri-dockerd/tasks/main.yml +++ b/roles/container-engine/cri-dockerd/tasks/main.yml @@ -2,7 +2,7 @@ - name: Runc | Download cri-dockerd binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.cri_dockerd) }}" + download: "{{ download_defaults | combine(downloads_file.cri_dockerd) }}" - name: Copy cri-dockerd binary from download dir copy: diff --git a/roles/container-engine/cri-o/tasks/main.yaml b/roles/container-engine/cri-o/tasks/main.yaml index 033191f18..4b08e6e8b 100644 --- a/roles/container-engine/cri-o/tasks/main.yaml +++ b/roles/container-engine/cri-o/tasks/main.yaml @@ -24,7 +24,7 @@ - name: Cri-o | Download cri-o include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.crio) }}" + download: "{{ download_defaults | combine(downloads_file.crio) }}" - name: Cri-o | special handling for amazon linux import_tasks: "setup-amazon.yaml" diff --git a/roles/container-engine/crictl/tasks/main.yml b/roles/container-engine/crictl/tasks/main.yml index 72bde5d35..eeba5c1cf 100644 --- a/roles/container-engine/crictl/tasks/main.yml +++ b/roles/container-engine/crictl/tasks/main.yml @@ -2,7 +2,7 @@ - name: Crictl | Download crictl include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.crictl) }}" + download: "{{ download_defaults | combine(downloads_file.crictl) }}" - name: Install crictl config template: diff --git a/roles/container-engine/crun/tasks/main.yml b/roles/container-engine/crun/tasks/main.yml index f4ec76459..c6b86c51f 100644 --- a/roles/container-engine/crun/tasks/main.yml +++ b/roles/container-engine/crun/tasks/main.yml @@ -2,11 +2,11 @@ - name: Crun | Download crun binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.crun) }}" + download: "{{ download_defaults | combine(downloads_file.crun) }}" - name: Copy crun binary from download dir copy: - src: "{{ downloads.crun.dest }}" + src: "{{ downloads_file.crun.dest }}" dest: "{{ bin_dir }}/crun" mode: "0755" remote_src: true diff --git a/roles/container-engine/gvisor/tasks/main.yml b/roles/container-engine/gvisor/tasks/main.yml index 4bab9a996..dcdaba326 100644 --- a/roles/container-engine/gvisor/tasks/main.yml +++ b/roles/container-engine/gvisor/tasks/main.yml @@ -2,12 +2,12 @@ - name: GVisor | Download runsc binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.gvisor_runsc) }}" + download: "{{ download_defaults | combine(downloads_file.gvisor_runsc) }}" - name: GVisor | Download containerd-shim-runsc-v1 binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.gvisor_containerd_shim) }}" + download: "{{ download_defaults | combine(downloads_file.gvisor_containerd_shim) }}" - name: GVisor | Copy binaries copy: @@ -16,5 +16,5 @@ mode: "0755" remote_src: true with_items: - - { src: "{{ downloads.gvisor_runsc.dest }}", dest: "runsc" } - - { src: "{{ downloads.gvisor_containerd_shim.dest }}", dest: "containerd-shim-runsc-v1" } + - { src: "{{ downloads_file.gvisor_runsc.dest }}", dest: "runsc" } + - { src: "{{ downloads_file.gvisor_containerd_shim.dest }}", dest: "containerd-shim-runsc-v1" } diff --git a/roles/container-engine/kata-containers/tasks/main.yml b/roles/container-engine/kata-containers/tasks/main.yml index 5014c214a..e840201d7 100644 --- a/roles/container-engine/kata-containers/tasks/main.yml +++ b/roles/container-engine/kata-containers/tasks/main.yml @@ -2,11 +2,11 @@ - name: Kata-containers | Download kata binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.kata_containers) }}" + download: "{{ download_defaults | combine(downloads_file.kata_containers) }}" - name: Kata-containers | Copy kata-containers binary unarchive: - src: "{{ downloads.kata_containers.dest }}" + src: "{{ downloads_file.kata_containers.dest }}" dest: "/" mode: "0755" owner: root diff --git a/roles/container-engine/molecule/prepare.yml b/roles/container-engine/molecule/prepare.yml index 9faf3a865..20fcdcc9d 100644 --- a/roles/container-engine/molecule/prepare.yml +++ b/roles/container-engine/molecule/prepare.yml @@ -16,7 +16,7 @@ - name: Download CNI include_tasks: "../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.cni) }}" + download: "{{ download_defaults | combine(downloads_file.cni) }}" - name: Prepare CNI hosts: all diff --git a/roles/container-engine/nerdctl/tasks/main.yml b/roles/container-engine/nerdctl/tasks/main.yml index d3cd0070c..cfd2cc6ad 100644 --- a/roles/container-engine/nerdctl/tasks/main.yml +++ b/roles/container-engine/nerdctl/tasks/main.yml @@ -2,7 +2,7 @@ - name: Nerdctl | Download nerdctl include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.nerdctl) }}" + download: "{{ download_defaults | combine(downloads_file.nerdctl) }}" - name: Nerdctl | Copy nerdctl binary from download dir copy: diff --git a/roles/container-engine/runc/tasks/main.yml b/roles/container-engine/runc/tasks/main.yml index be53e984e..d08fff29f 100644 --- a/roles/container-engine/runc/tasks/main.yml +++ b/roles/container-engine/runc/tasks/main.yml @@ -30,11 +30,11 @@ - name: Runc | Download runc binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.runc) }}" + download: "{{ download_defaults | combine(downloads_file.runc) }}" - name: Copy runc binary from download dir copy: - src: "{{ downloads.runc.dest }}" + src: "{{ downloads_file.runc.dest }}" dest: "{{ runc_bin_dir }}/runc" mode: "0755" remote_src: true diff --git a/roles/container-engine/skopeo/tasks/main.yml b/roles/container-engine/skopeo/tasks/main.yml index d3cd39c39..9a61a87da 100644 --- a/roles/container-engine/skopeo/tasks/main.yml +++ b/roles/container-engine/skopeo/tasks/main.yml @@ -22,11 +22,11 @@ - name: Skopeo | Download skopeo binary include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.skopeo) }}" + download: "{{ download_defaults | combine(downloads_file.skopeo) }}" - name: Copy skopeo binary from download dir copy: - src: "{{ downloads.skopeo.dest }}" + src: "{{ downloads_file.skopeo.dest }}" dest: "{{ bin_dir }}/skopeo" mode: "0755" remote_src: true diff --git a/roles/container-engine/youki/tasks/main.yml b/roles/container-engine/youki/tasks/main.yml index 7750c65b8..f81455020 100644 --- a/roles/container-engine/youki/tasks/main.yml +++ b/roles/container-engine/youki/tasks/main.yml @@ -2,7 +2,7 @@ - name: Youki | Download youki include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.youki) }}" + download: "{{ download_defaults | combine(downloads_file.youki) }}" - name: Youki | Copy youki binary from download dir copy: diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index d3b20dd10..0ab58ac18 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -16,17 +16,26 @@ - download - upload -- name: Download | Download files / images - include_tasks: "{{ include_file }}" +- name: Download | Download files + include_tasks: download_file.yml loop: "{{ [] if skip_downloads + else + (downloads_file.values() | selectattr('enabled')) + }}" + vars: + download: "{{ download_defaults | combine(item) }}" + when: + - (download_run_once and inventory_hostname == download_delegate) or (group_names | intersect(download.groups) != []) + +- name: Download | Download images + include_tasks: download_container.yml + loop: "{{ [] if (skip_downloads or not download_container) else ( - (downloads | combine(kubeadm_images)).values() + (downloads_container | combine(kubeadm_images)).values() | selectattr('enabled') ) }}" vars: download: "{{ download_defaults | combine(item) }}" - include_file: "download_{% if download.container %}container{% else %}file{% endif %}.yml" when: - - (not download.container) or (download.container and download_container) - (download_run_once and inventory_hostname == download_delegate) or (group_names | intersect(download.groups) != []) diff --git a/roles/download/tasks/prep_kubeadm_images.yml b/roles/download/tasks/prep_kubeadm_images.yml index 56327f949..e6f52424b 100644 --- a/roles/download/tasks/prep_kubeadm_images.yml +++ b/roles/download/tasks/prep_kubeadm_images.yml @@ -2,14 +2,14 @@ - name: Prep_kubeadm_images | Download kubeadm binary include_tasks: "download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.kubeadm) }}" + download: "{{ download_defaults | combine(downloads_file.kubeadm) }}" when: - not skip_downloads | default(false) - - downloads.kubeadm.enabled + - downloads_file.kubeadm.enabled - name: Prep_kubeadm_images | Copy kubeadm binary from download dir to system path copy: - src: "{{ downloads.kubeadm.dest }}" + src: "{{ downloads_file.kubeadm.dest }}" dest: "{{ bin_dir }}/kubeadm" mode: "0755" remote_src: true diff --git a/roles/etcdctl_etcdutl/tasks/main.yml b/roles/etcdctl_etcdutl/tasks/main.yml index 324cdcf3e..88439c0d0 100644 --- a/roles/etcdctl_etcdutl/tasks/main.yml +++ b/roles/etcdctl_etcdutl/tasks/main.yml @@ -2,7 +2,7 @@ - name: Download etcd binary include_tasks: "../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.etcd) }}" + download: "{{ download_defaults | combine(downloads_file.etcd) }}" - name: Copy etcdctl and etcdutl binary from download dir copy: diff --git a/roles/kubernetes-apps/argocd/tasks/main.yml b/roles/kubernetes-apps/argocd/tasks/main.yml index 0cfc8d9cd..5ca3d12c7 100644 --- a/roles/kubernetes-apps/argocd/tasks/main.yml +++ b/roles/kubernetes-apps/argocd/tasks/main.yml @@ -12,7 +12,7 @@ cmd: > {{ kubectl }} apply -n {{ argocd_namespace }} --server-side=true --force-conflicts --field-manager=kubespray - -f - -f {{ downloads.argocd_install.dest }} + -f - -f {{ downloads_file.argocd_install.dest }} stdin: "{{ ns_object | to_json }}" # https://github.com/argoproj/argo-cd/blob/master/docs/faq.md#i-forgot-the-admin-password-how-do-i-reset-it diff --git a/roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml b/roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml index 8d792c3ed..dfda9552a 100644 --- a/roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml +++ b/roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml @@ -2,7 +2,7 @@ - name: Gateway API | Download YAML include_tasks: "../../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.gateway_api_crds) }}" + download: "{{ download_defaults | combine(downloads_file.gateway_api_crds) }}" - name: Gateway API | Create addon dir file: diff --git a/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml b/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml index 258238699..aa15fd775 100644 --- a/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml +++ b/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml @@ -2,7 +2,7 @@ - name: Prometheus Operator CRDs | Download YAML include_tasks: "../../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.prometheus_operator_crds) }}" + download: "{{ download_defaults | combine(downloads_file.prometheus_operator_crds) }}" - name: Prometheus Operator CRDs | Install command: diff --git a/roles/kubernetes-apps/helm/tasks/main.yml b/roles/kubernetes-apps/helm/tasks/main.yml index 0b54f3b16..e0b2d8612 100644 --- a/roles/kubernetes-apps/helm/tasks/main.yml +++ b/roles/kubernetes-apps/helm/tasks/main.yml @@ -26,7 +26,7 @@ - name: Helm | Download helm include_tasks: "../../../download/tasks/download_file.yml" vars: - download: "{{ download_defaults | combine(downloads.helm) }}" + download: "{{ download_defaults | combine(downloads_file.helm) }}" - name: Helm | Copy helm binary from download dir copy: diff --git a/roles/kubernetes/control-plane/tasks/main.yml b/roles/kubernetes/control-plane/tasks/main.yml index 0fc11336d..3f7933c7a 100644 --- a/roles/kubernetes/control-plane/tasks/main.yml +++ b/roles/kubernetes/control-plane/tasks/main.yml @@ -58,7 +58,7 @@ - name: Install | Copy kubectl binary from download dir copy: - src: "{{ downloads.kubectl.dest }}" + src: "{{ downloads_file.kubectl.dest }}" dest: "{{ bin_dir }}/kubectl" mode: "0755" remote_src: true diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml index cfa90ed17..74344c69e 100644 --- a/roles/kubernetes/node/tasks/install.yml +++ b/roles/kubernetes/node/tasks/install.yml @@ -1,7 +1,7 @@ --- - name: Install | Copy kubeadm binary from download dir copy: - src: "{{ downloads.kubeadm.dest }}" + src: "{{ downloads_file.kubeadm.dest }}" dest: "{{ bin_dir }}/kubeadm" mode: "0755" remote_src: true @@ -12,7 +12,7 @@ - name: Install | Copy kubelet binary from download dir copy: - src: "{{ downloads.kubelet.dest }}" + src: "{{ downloads_file.kubelet.dest }}" dest: "{{ bin_dir }}/kubelet" mode: "0755" remote_src: true diff --git a/roles/kubespray_defaults/defaults/main/download.yml b/roles/kubespray_defaults/defaults/main/download.yml index 5ade1f333..d17403dd0 100644 --- a/roles/kubespray_defaults/defaults/main/download.yml +++ b/roles/kubespray_defaults/defaults/main/download.yml @@ -367,10 +367,274 @@ node_feature_discovery_version: 0.19.0 node_feature_discovery_image_repo: "{{ kube_image_repo }}/nfd/node-feature-discovery" node_feature_discovery_image_tag: "v{{ node_feature_discovery_version }}" -downloads: +downloads_container: + etcd_container: + enabled: "{{ etcd_deployment_type != 'host' }}" + image_name: "{{ etcd_image_repo }}:{{ etcd_image_tag }}" + groups: + - etcd + + cilium: + enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}" + image_name: "{{ cilium_image_repo }}:{{ cilium_image_tag }}" + groups: + - k8s_cluster + + cilium_operator: + enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}" + image_name: "{{ cilium_operator_image_repo }}-generic:{{ cilium_operator_image_tag }}" + groups: + - k8s_cluster + + cilium_hubble_relay: + enabled: "{{ cilium_enable_hubble }}" + image_name: "{{ cilium_hubble_relay_image_repo }}:{{ cilium_hubble_relay_image_tag }}" + groups: + - k8s_cluster + + cilium_certgen: + enabled: "{{ kube_network_plugin == 'cilium' }}" + image_name: "{{ cilium_certgen_image_repo }}:{{ cilium_certgen_image_tag }}" + groups: + - k8s_cluster + + cilium_hubble_ui: + enabled: "{{ cilium_enable_hubble }}" + image_name: "{{ cilium_hubble_ui_image_repo }}:{{ cilium_hubble_ui_image_tag }}" + groups: + - k8s_cluster + + cilium_hubble_ui_backend: + enabled: "{{ cilium_enable_hubble }}" + image_name: "{{ cilium_hubble_ui_backend_image_repo }}:{{ cilium_hubble_ui_backend_image_tag }}" + groups: + - k8s_cluster + + cilium_envoy: + enabled: "{{ kube_network_plugin == 'cilium' }}" + image_name: "{{ cilium_envoy_image_repo }}:{{ cilium_envoy_image_tag }}" + groups: + - k8s_cluster + + multus: + enabled: "{{ kube_network_plugin_multus }}" + image_name: "{{ multus_image_repo }}:{{ multus_image_tag }}" + groups: + - k8s_cluster + + flannel: + enabled: "{{ kube_network_plugin == 'flannel' }}" + image_name: "{{ flannel_image_repo }}:{{ flannel_image_tag }}" + groups: + - k8s_cluster + + flannel_init: + enabled: "{{ kube_network_plugin == 'flannel' }}" + image_name: "{{ flannel_init_image_repo }}:{{ flannel_init_image_tag }}" + groups: + - k8s_cluster + + calico_node: + enabled: "{{ kube_network_plugin == 'calico' }}" + image_name: "{{ calico_node_image_repo }}:{{ calico_node_image_tag }}" + groups: + - k8s_cluster + + calico_cni: + enabled: "{{ kube_network_plugin == 'calico' }}" + image_name: "{{ calico_cni_image_repo }}:{{ calico_cni_image_tag }}" + groups: + - k8s_cluster + + calico_policy: + enabled: "{{ enable_network_policy and kube_network_plugin in ['calico'] }}" + image_name: "{{ calico_policy_image_repo }}:{{ calico_policy_image_tag }}" + groups: + - k8s_cluster + + calico_typha: + enabled: "{{ typha_enabled }}" + image_name: "{{ calico_typha_image_repo }}:{{ calico_typha_image_tag }}" + groups: + - k8s_cluster + + calico_apiserver: + enabled: "{{ calico_apiserver_enabled }}" + image_name: "{{ calico_apiserver_image_repo }}:{{ calico_apiserver_image_tag }}" + groups: + - k8s_cluster + + kube_ovn: + enabled: "{{ kube_network_plugin == 'kube-ovn' }}" + image_name: "{{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}" + groups: + - k8s_cluster + + kube_router: + enabled: "{{ kube_network_plugin == 'kube-router' }}" + image_name: "{{ kube_router_image_repo }}:{{ kube_router_image_tag }}" + groups: + - k8s_cluster + + pod_infra: + enabled: true + image_name: "{{ pod_infra_image_repo }}:{{ pod_infra_image_tag }}" + groups: + - k8s_cluster + + kube-vip: + enabled: "{{ kube_vip_enabled }}" + image_name: "{{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}" + groups: + - kube_control_plane + + nginx: + enabled: "{{ loadbalancer_apiserver_localhost and loadbalancer_apiserver_type == 'nginx' }}" + image_name: "{{ nginx_image_repo }}:{{ nginx_image_tag }}" + groups: + - kube_node + + haproxy: + enabled: "{{ loadbalancer_apiserver_localhost and loadbalancer_apiserver_type == 'haproxy' }}" + image_name: "{{ haproxy_image_repo }}:{{ haproxy_image_tag }}" + groups: + - kube_node + + coredns: + enabled: "{{ dns_mode in ['coredns', 'coredns_dual'] }}" + image_name: "{{ coredns_image_repo }}:{{ coredns_image_tag }}" + groups: + - k8s_cluster + + nodelocaldns: + enabled: "{{ enable_nodelocaldns }}" + image_name: "{{ nodelocaldns_image_repo }}:{{ nodelocaldns_image_tag }}" + groups: + - k8s_cluster + + dnsautoscaler: + enabled: "{{ dns_mode in ['coredns', 'coredns_dual'] and enable_dns_autoscaler }}" + image_name: "{{ dnsautoscaler_image_repo }}:{{ dnsautoscaler_image_tag }}" + groups: + - kube_control_plane + + registry: + enabled: "{{ registry_enabled }}" + image_name: "{{ registry_image_repo }}:{{ registry_image_tag }}" + groups: + - kube_node + + metrics_server: + enabled: "{{ metrics_server_enabled }}" + image_name: "{{ metrics_server_image_repo }}:{{ metrics_server_image_tag }}" + groups: + - kube_control_plane + + local_volume_provisioner: + enabled: "{{ local_volume_provisioner_enabled }}" + image_name: "{{ local_volume_provisioner_image_repo }}:{{ local_volume_provisioner_image_tag }}" + groups: + - kube_node + + local_path_provisioner: + enabled: "{{ local_path_provisioner_enabled }}" + image_name: "{{ local_path_provisioner_image_repo }}:{{ local_path_provisioner_image_tag }}" + groups: + - kube_node + + ingress_alb_controller: + enabled: "{{ ingress_alb_enabled }}" + image_name: "{{ alb_ingress_image_repo }}:{{ alb_ingress_image_tag }}" + groups: + - kube_node + + cert_manager_controller: + enabled: "{{ cert_manager_enabled }}" + image_name: "{{ cert_manager_controller_image_repo }}:{{ cert_manager_controller_image_tag }}" + groups: + - kube_node + + cert_manager_cainjector: + enabled: "{{ cert_manager_enabled }}" + image_name: "{{ cert_manager_cainjector_image_repo }}:{{ cert_manager_cainjector_image_tag }}" + groups: + - kube_node + + cert_manager_webhook: + enabled: "{{ cert_manager_enabled }}" + image_name: "{{ cert_manager_webhook_image_repo }}:{{ cert_manager_webhook_image_tag }}" + groups: + - kube_node + + csi_attacher: + enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" + image_name: "{{ csi_attacher_image_repo }}:{{ csi_attacher_image_tag }}" + groups: + - kube_node + + csi_provisioner: + enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" + image_name: "{{ csi_provisioner_image_repo }}:{{ csi_provisioner_image_tag }}" + groups: + - kube_node + + csi_snapshotter: + enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" + image_name: "{{ csi_snapshotter_image_repo }}:{{ csi_snapshotter_image_tag }}" + groups: + - kube_node + + snapshot_controller: + enabled: "{{ csi_snapshot_controller_enabled }}" + image_name: "{{ snapshot_controller_image_repo }}:{{ snapshot_controller_image_tag }}" + groups: + - kube_node + + csi_resizer: + enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" + image_name: "{{ csi_resizer_image_repo }}:{{ csi_resizer_image_tag }}" + groups: + - kube_node + + csi_livenessprobe: + enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" + image_name: "{{ csi_livenessprobe_image_repo }}:{{ csi_livenessprobe_image_tag }}" + groups: + - kube_node + + csi_node_driver_registrar: + enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" + image_name: "{{ csi_node_driver_registrar_image_repo }}:{{ csi_node_driver_registrar_image_tag }}" + groups: + - kube_node + + cinder_csi_plugin: + enabled: "{{ cinder_csi_enabled }}" + image_name: "{{ cinder_csi_plugin_image_repo }}:{{ cinder_csi_plugin_image_tag }}" + groups: + - kube_node + + aws_ebs_csi_plugin: + enabled: "{{ aws_ebs_csi_enabled }}" + image_name: "{{ aws_ebs_csi_plugin_image_repo }}:{{ aws_ebs_csi_plugin_image_tag }}" + groups: + - kube_node + + metallb_speaker: + enabled: "{{ metallb_speaker_enabled }}" + image_name: "{{ metallb_speaker_image_repo }}:{{ metallb_image_tag }}" + groups: + - kube_control_plane + + metallb_controller: + enabled: "{{ metallb_enabled }}" + image_name: "{{ metallb_controller_image_repo }}:{{ metallb_image_tag }}" + groups: + - kube_control_plane + +downloads_file: etcd: enabled: "{{ etcd_deployment_type == 'host' }}" - file: true dest: "{{ local_release_dir }}/etcd-{{ etcd_version }}-linux-{{ image_arch }}.tar.gz" checksum: "{{ etcd_binary_checksum }}" url: "{{ etcd_download_url }}" @@ -378,16 +642,8 @@ downloads: groups: - etcd - etcd_container: - enabled: "{{ etcd_deployment_type != 'host' }}" - container: true - image_name: "{{ etcd_image_repo }}:{{ etcd_image_tag }}" - groups: - - etcd - cni: enabled: true - file: true dest: "{{ local_release_dir }}/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz" checksum: "{{ cni_binary_checksum }}" url: "{{ cni_download_url }}" @@ -397,7 +653,6 @@ downloads: kubeadm: enabled: true - file: true dest: "{{ local_release_dir }}/kubeadm-{{ kube_version }}-{{ image_arch }}" checksum: "{{ kubeadm_binary_checksum }}" url: "{{ kubeadm_download_url }}" @@ -407,7 +662,6 @@ downloads: kubelet: enabled: true - file: true dest: "{{ local_release_dir }}/kubelet-{{ kube_version }}-{{ image_arch }}" checksum: "{{ kubelet_binary_checksum }}" url: "{{ kubelet_download_url }}" @@ -417,7 +671,6 @@ downloads: kubectl: enabled: true - file: true dest: "{{ local_release_dir }}/kubectl-{{ kube_version }}-{{ image_arch }}" checksum: "{{ kubectl_binary_checksum }}" url: "{{ kubectl_download_url }}" @@ -426,7 +679,6 @@ downloads: - kube_control_plane crictl: - file: true enabled: true dest: "{{ local_release_dir }}/crictl-{{ crictl_version }}-linux-{{ image_arch }}.tar.gz" checksum: "{{ crictl_binary_checksum }}" @@ -436,7 +688,6 @@ downloads: - k8s_cluster crio: - file: true enabled: "{{ container_manager == 'crio' }}" dest: "{{ local_release_dir }}/cri-o.{{ image_arch }}.{{ crio_version }}.tar.gz" checksum: "{{ crio_archive_checksum }}" @@ -446,7 +697,6 @@ downloads: - k8s_cluster cri_dockerd: - file: true enabled: "{{ container_manager == 'docker' }}" dest: "{{ local_release_dir }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tar.gz" checksum: "{{ cri_dockerd_archive_checksum }}" @@ -458,7 +708,6 @@ downloads: - k8s_cluster crun: - file: true enabled: "{{ crun_enabled }}" dest: "{{ local_release_dir }}/crun-{{ crun_version }}-{{ image_arch }}" checksum: "{{ crun_binary_checksum }}" @@ -468,7 +717,6 @@ downloads: - k8s_cluster youki: - file: true enabled: "{{ youki_enabled }}" dest: "{{ local_release_dir }}/youki-{{ youki_version }}-{{ ansible_facts['architecture'] }}.tar.gz" checksum: "{{ youki_archive_checksum }}" @@ -478,7 +726,6 @@ downloads: - k8s_cluster runc: - file: true enabled: "{{ container_manager == 'containerd' }}" dest: "{{ local_release_dir }}/runc-{{ runc_version }}.{{ image_arch }}" checksum: "{{ runc_binary_checksum }}" @@ -489,7 +736,6 @@ downloads: kata_containers: enabled: "{{ kata_containers_enabled }}" - file: true dest: "{{ local_release_dir }}/kata-static-{{ kata_containers_version }}-{{ image_arch }}.tar.zst" checksum: "{{ kata_containers_binary_checksum }}" url: "{{ kata_containers_download_url }}" @@ -499,7 +745,6 @@ downloads: containerd: enabled: "{{ container_manager == 'containerd' }}" - file: true dest: "{{ local_release_dir }}/containerd-{{ 'static-' if containerd_static_binary }}{{ containerd_version }}-linux-{{ image_arch }}.tar.gz" checksum: "{{ containerd_checksum }}" url: "{{ containerd_download_url }}" @@ -509,7 +754,6 @@ downloads: gvisor_runsc: enabled: "{{ gvisor_enabled }}" - file: true dest: "{{ local_release_dir }}/gvisor-runsc-{{ gvisor_version }}-{{ ansible_facts['architecture'] }}" checksum: "{{ gvisor_runsc_binary_checksum }}" url: "{{ gvisor_runsc_download_url }}" @@ -519,7 +763,6 @@ downloads: gvisor_containerd_shim: enabled: "{{ gvisor_enabled }}" - file: true dest: "{{ local_release_dir }}/gvisor-containerd-shim-runsc-v1-{{ gvisor_version }}-{{ ansible_facts['architecture'] }}" checksum: "{{ gvisor_containerd_shim_binary_checksum }}" url: "{{ gvisor_containerd_shim_runsc_download_url }}" @@ -528,7 +771,6 @@ downloads: - k8s_cluster nerdctl: - file: true enabled: "{{ container_manager == 'containerd' }}" dest: "{{ local_release_dir }}/nerdctl-{{ nerdctl_version }}-linux-{{ image_arch }}.tar.gz" checksum: "{{ nerdctl_archive_checksum }}" @@ -538,7 +780,6 @@ downloads: - k8s_cluster skopeo: - file: true enabled: "{{ container_manager == 'crio' }}" dest: "{{ local_release_dir }}/skopeo-{{ skopeo_version }}-{{ image_arch }}" checksum: "{{ skopeo_binary_checksum }}" @@ -547,58 +788,8 @@ downloads: groups: - kube_control_plane - cilium: - enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}" - container: true - image_name: "{{ cilium_image_repo }}:{{ cilium_image_tag }}" - groups: - - k8s_cluster - - cilium_operator: - enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}" - container: true - image_name: "{{ cilium_operator_image_repo }}-generic:{{ cilium_operator_image_tag }}" - groups: - - k8s_cluster - - cilium_hubble_relay: - enabled: "{{ cilium_enable_hubble }}" - container: true - image_name: "{{ cilium_hubble_relay_image_repo }}:{{ cilium_hubble_relay_image_tag }}" - groups: - - k8s_cluster - - cilium_certgen: - enabled: "{{ kube_network_plugin == 'cilium' }}" - container: true - image_name: "{{ cilium_certgen_image_repo }}:{{ cilium_certgen_image_tag }}" - groups: - - k8s_cluster - - cilium_hubble_ui: - enabled: "{{ cilium_enable_hubble }}" - container: true - image_name: "{{ cilium_hubble_ui_image_repo }}:{{ cilium_hubble_ui_image_tag }}" - groups: - - k8s_cluster - - cilium_hubble_ui_backend: - enabled: "{{ cilium_enable_hubble }}" - container: true - image_name: "{{ cilium_hubble_ui_backend_image_repo }}:{{ cilium_hubble_ui_backend_image_tag }}" - groups: - - k8s_cluster - - cilium_envoy: - enabled: "{{ kube_network_plugin == 'cilium' }}" - container: true - image_name: "{{ cilium_envoy_image_repo }}:{{ cilium_envoy_image_tag }}" - groups: - - k8s_cluster - ciliumcli: enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}" - file: true dest: "{{ local_release_dir }}/cilium-{{ cilium_cli_version }}-{{ image_arch }}.tar.gz" checksum: "{{ ciliumcli_binary_checksum }}" url: "{{ ciliumcli_download_url }}" @@ -606,30 +797,8 @@ downloads: groups: - k8s_cluster - multus: - enabled: "{{ kube_network_plugin_multus }}" - container: true - image_name: "{{ multus_image_repo }}:{{ multus_image_tag }}" - groups: - - k8s_cluster - - flannel: - enabled: "{{ kube_network_plugin == 'flannel' }}" - container: true - image_name: "{{ flannel_image_repo }}:{{ flannel_image_tag }}" - groups: - - k8s_cluster - - flannel_init: - enabled: "{{ kube_network_plugin == 'flannel' }}" - container: true - image_name: "{{ flannel_init_image_repo }}:{{ flannel_init_image_tag }}" - groups: - - k8s_cluster - calicoctl: enabled: "{{ kube_network_plugin == 'calico' }}" - file: true dest: "{{ local_release_dir }}/calicoctl-{{ calico_ctl_version }}-{{ image_arch }}" checksum: "{{ calicoctl_binary_checksum }}" url: "{{ calicoctl_download_url }}" @@ -637,116 +806,15 @@ downloads: groups: - k8s_cluster - calico_node: - enabled: "{{ kube_network_plugin == 'calico' }}" - container: true - image_name: "{{ calico_node_image_repo }}:{{ calico_node_image_tag }}" - groups: - - k8s_cluster - - calico_cni: - enabled: "{{ kube_network_plugin == 'calico' }}" - container: true - image_name: "{{ calico_cni_image_repo }}:{{ calico_cni_image_tag }}" - groups: - - k8s_cluster - - calico_policy: - enabled: "{{ enable_network_policy and kube_network_plugin in ['calico'] }}" - container: true - image_name: "{{ calico_policy_image_repo }}:{{ calico_policy_image_tag }}" - groups: - - k8s_cluster - - calico_typha: - enabled: "{{ typha_enabled }}" - container: true - image_name: "{{ calico_typha_image_repo }}:{{ calico_typha_image_tag }}" - groups: - - k8s_cluster - - calico_apiserver: - enabled: "{{ calico_apiserver_enabled }}" - container: true - image_name: "{{ calico_apiserver_image_repo }}:{{ calico_apiserver_image_tag }}" - groups: - - k8s_cluster - calico_crds: - file: true enabled: "{{ kube_network_plugin == 'calico' and calico_datastore == 'kdd' }}" dest: "{{ local_release_dir }}/calico-{{ calico_version }}-kdd-crds.yaml" checksum: "{{ calico_crds_checksums.no_arch[calico_version] }}" url: "{{ calico_crds_download_url }}" groups: - kube_control_plane - - kube_ovn: - enabled: "{{ kube_network_plugin == 'kube-ovn' }}" - container: true - image_name: "{{ kube_ovn_container_image_repo }}:{{ kube_ovn_container_image_tag }}" - groups: - - k8s_cluster - - kube_router: - enabled: "{{ kube_network_plugin == 'kube-router' }}" - container: true - image_name: "{{ kube_router_image_repo }}:{{ kube_router_image_tag }}" - groups: - - k8s_cluster - - pod_infra: - enabled: true - container: true - image_name: "{{ pod_infra_image_repo }}:{{ pod_infra_image_tag }}" - groups: - - k8s_cluster - - kube-vip: - enabled: "{{ kube_vip_enabled }}" - container: true - image_name: "{{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}" - groups: - - kube_control_plane - - nginx: - enabled: "{{ loadbalancer_apiserver_localhost and loadbalancer_apiserver_type == 'nginx' }}" - container: true - image_name: "{{ nginx_image_repo }}:{{ nginx_image_tag }}" - groups: - - kube_node - - haproxy: - enabled: "{{ loadbalancer_apiserver_localhost and loadbalancer_apiserver_type == 'haproxy' }}" - container: true - image_name: "{{ haproxy_image_repo }}:{{ haproxy_image_tag }}" - groups: - - kube_node - - coredns: - enabled: "{{ dns_mode in ['coredns', 'coredns_dual'] }}" - container: true - image_name: "{{ coredns_image_repo }}:{{ coredns_image_tag }}" - groups: - - k8s_cluster - - nodelocaldns: - enabled: "{{ enable_nodelocaldns }}" - container: true - image_name: "{{ nodelocaldns_image_repo }}:{{ nodelocaldns_image_tag }}" - groups: - - k8s_cluster - - dnsautoscaler: - enabled: "{{ dns_mode in ['coredns', 'coredns_dual'] and enable_dns_autoscaler }}" - container: true - image_name: "{{ dnsautoscaler_image_repo }}:{{ dnsautoscaler_image_tag }}" - groups: - - kube_control_plane - helm: enabled: "{{ helm_enabled }}" - file: true dest: "{{ local_release_dir }}/helm-{{ helm_version }}/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz" checksum: "{{ helm_archive_checksum }}" url: "{{ helm_download_url }}" @@ -754,65 +822,8 @@ downloads: groups: - kube_control_plane - registry: - enabled: "{{ registry_enabled }}" - container: true - image_name: "{{ registry_image_repo }}:{{ registry_image_tag }}" - groups: - - kube_node - - metrics_server: - enabled: "{{ metrics_server_enabled }}" - container: true - image_name: "{{ metrics_server_image_repo }}:{{ metrics_server_image_tag }}" - groups: - - kube_control_plane - - local_volume_provisioner: - enabled: "{{ local_volume_provisioner_enabled }}" - container: true - image_name: "{{ local_volume_provisioner_image_repo }}:{{ local_volume_provisioner_image_tag }}" - groups: - - kube_node - - local_path_provisioner: - enabled: "{{ local_path_provisioner_enabled }}" - container: true - image_name: "{{ local_path_provisioner_image_repo }}:{{ local_path_provisioner_image_tag }}" - groups: - - kube_node - - ingress_alb_controller: - enabled: "{{ ingress_alb_enabled }}" - container: true - image_name: "{{ alb_ingress_image_repo }}:{{ alb_ingress_image_tag }}" - groups: - - kube_node - - cert_manager_controller: - enabled: "{{ cert_manager_enabled }}" - container: true - image_name: "{{ cert_manager_controller_image_repo }}:{{ cert_manager_controller_image_tag }}" - groups: - - kube_node - - cert_manager_cainjector: - enabled: "{{ cert_manager_enabled }}" - container: true - image_name: "{{ cert_manager_cainjector_image_repo }}:{{ cert_manager_cainjector_image_tag }}" - groups: - - kube_node - - cert_manager_webhook: - enabled: "{{ cert_manager_enabled }}" - container: true - image_name: "{{ cert_manager_webhook_image_repo }}:{{ cert_manager_webhook_image_tag }}" - groups: - - kube_node - gateway_api_crds: enabled: "{{ gateway_api_enabled }}" - file: true version: "{{ gateway_api_version }}" dest: "{{ local_release_dir }}/gateway-api-{{ gateway_api_channel }}-install.yaml" checksum: "{{ lookup('vars', 'gateway_api_' + gateway_api_channel + '_crds_checksums').no_arch[gateway_api_version] }}" @@ -822,7 +833,6 @@ downloads: prometheus_operator_crds: enabled: "{{ prometheus_operator_crds_enabled }}" - file: true version: "{{ prometheus_operator_crds_version }}" dest: "{{ local_release_dir }}/prometheus-operator-crds.yaml" checksum: "{{ prometheus_operator_crds_checksums.no_arch[prometheus_operator_crds_version] }}" @@ -830,86 +840,8 @@ downloads: groups: - kube_control_plane - csi_attacher: - enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" - container: true - image_name: "{{ csi_attacher_image_repo }}:{{ csi_attacher_image_tag }}" - groups: - - kube_node - - csi_provisioner: - enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" - container: true - image_name: "{{ csi_provisioner_image_repo }}:{{ csi_provisioner_image_tag }}" - groups: - - kube_node - - csi_snapshotter: - enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" - container: true - image_name: "{{ csi_snapshotter_image_repo }}:{{ csi_snapshotter_image_tag }}" - groups: - - kube_node - - snapshot_controller: - enabled: "{{ csi_snapshot_controller_enabled }}" - container: true - image_name: "{{ snapshot_controller_image_repo }}:{{ snapshot_controller_image_tag }}" - groups: - - kube_node - - csi_resizer: - enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" - container: true - image_name: "{{ csi_resizer_image_repo }}:{{ csi_resizer_image_tag }}" - groups: - - kube_node - - csi_livenessprobe: - enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" - container: true - image_name: "{{ csi_livenessprobe_image_repo }}:{{ csi_livenessprobe_image_tag }}" - groups: - - kube_node - - csi_node_driver_registrar: - enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" - container: true - image_name: "{{ csi_node_driver_registrar_image_repo }}:{{ csi_node_driver_registrar_image_tag }}" - groups: - - kube_node - - cinder_csi_plugin: - enabled: "{{ cinder_csi_enabled }}" - container: true - image_name: "{{ cinder_csi_plugin_image_repo }}:{{ cinder_csi_plugin_image_tag }}" - groups: - - kube_node - - aws_ebs_csi_plugin: - enabled: "{{ aws_ebs_csi_enabled }}" - container: true - image_name: "{{ aws_ebs_csi_plugin_image_repo }}:{{ aws_ebs_csi_plugin_image_tag }}" - groups: - - kube_node - - metallb_speaker: - enabled: "{{ metallb_speaker_enabled }}" - container: true - image_name: "{{ metallb_speaker_image_repo }}:{{ metallb_image_tag }}" - groups: - - kube_control_plane - - metallb_controller: - enabled: "{{ metallb_enabled }}" - container: true - image_name: "{{ metallb_controller_image_repo }}:{{ metallb_image_tag }}" - groups: - - kube_control_plane - argocd_install: enabled: "{{ argocd_enabled }}" - file: true dest: "{{ local_release_dir }}/argocd-install-{{ argocd_version }}.yml" checksum: "{{ argocd_install_checksum }}" url: "{{ argocd_install_url }}" @@ -918,8 +850,6 @@ downloads: - kube_control_plane download_defaults: - container: false - file: false image_name: None enabled: false dest: None diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml index ee9fd6d33..c593c4a7b 100644 --- a/roles/network_plugin/calico/tasks/install.yml +++ b/roles/network_plugin/calico/tasks/install.yml @@ -11,7 +11,7 @@ - name: Calico | Copy calicoctl binary from download dir copy: - src: "{{ downloads.calicoctl.dest }}" + src: "{{ downloads_file.calicoctl.dest }}" dest: "{{ bin_dir }}/calicoctl" mode: "0755" remote_src: true @@ -128,7 +128,7 @@ block: - name: Calico | Create calico manifests for kdd copy: - src: "{{ downloads.calico_crds.dest }}" + src: "{{ downloads_file.calico_crds.dest }}" dest: "{{ kube_config_dir }}/kdd-crds.yml" mode: "0644" remote_src: true diff --git a/roles/network_plugin/cni/tasks/main.yml b/roles/network_plugin/cni/tasks/main.yml index 28376bd76..76cd40cc5 100644 --- a/roles/network_plugin/cni/tasks/main.yml +++ b/roles/network_plugin/cni/tasks/main.yml @@ -9,7 +9,7 @@ - name: CNI | Copy cni plugins unarchive: - src: "{{ downloads.cni.dest }}" + src: "{{ downloads_file.cni.dest }}" dest: "/opt/cni/bin" mode: "0755" owner: "{{ cni_bin_owner }}"