Files
kubespray/roles/kubespray_defaults/defaults/main/download.yml
T
Max Gautier 88b827e58d argocd: simplify manifests apply
ArgoCD upstream manifests do not include namespace for the objects, so
there is no need to override it, and simply using kubectl flags allow to
set it.

Use the upstream file directly , considerably simplifying the argocd
install.

ansible-lint: the refactor apparently newly exposes the password hash
filter to ansible and this needs passlib, so add it to the pre-commit
dependencies.
2026-09-25 19:45:58 +02:00

943 lines
38 KiB
YAML

---
download_cache_dir: /tmp/kubespray_cache
# If this is true, debug information will be displayed but
# may contain some private data, so it is recommended to set it to false
# in the production environment.
# false by default, unless we're running in CI. (CI_PROJECT_URL should be globally unique even if kubespray happens to run
# in gitlab-ci in other contexts
unsafe_show_logs: "{{ lookup('env', 'CI_PROJECT_URL') == 'https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray' }}"
# do not delete remote cache files after using them
# NOTE: Setting this parameter to TRUE is only really useful when developing kubespray
download_keep_remote_cache: false
# Only useful when download_run_once is false: Localy cached files and images are
# uploaded to kubernetes nodes. Also, images downloaded on those nodes are copied
# back to the ansible runner's cache, if they are not yet preset.
download_force_cache: false
# Used to only evaluate vars from download role
skip_downloads: false
# Optionally skip kubeadm images download
skip_kubeadm_images: false
kubeadm_images: {}
# if this is set to true will only download files once. Doesn't work
# on Flatcar Container Linux by Kinvolk unless the download_localhost is true and localhost
# is running another OS type. Default compress level is 1 (fastest).
download_run_once: false
download_compress: 1
# if this is set to true will download container
download_container: true
# if this is set to true, uses the localhost for download_run_once mode
# (requires docker and sudo to access docker). You may want this option for
# local caching of docker images or for Flatcar Container Linux by Kinvolk cluster nodes.
# Otherwise, uses the first node in the kube_control_plane group to store images
# in the download_run_once mode.
download_localhost: false
# Always pull images if set to True. Otherwise check by the repo's tag.
download_always_pull: false
# Some problems may occur when downloading files over https proxy due to ansible bug
# https://github.com/ansible/ansible/issues/32750. Set this variable to False to disable
# SSL validation of get_url module. Note that kubespray will still be performing checksum validation.
download_validate_certs: true
# Use the first kube_control_plane if download_localhost is not set
download_delegate: "{% if download_localhost %}localhost{% else %}{{ groups['kube_control_plane'][0] }}{% endif %}"
# Allow control the times of download retries for files and containers
download_retries: 4
# The docker_image_info_command might seems weird but we are using raw/endraw and `{{ `{{` }}` to manage the double jinja2 processing
docker_image_pull_command: "{{ docker_bin_dir }}/docker pull"
docker_image_info_command: "{{ docker_bin_dir }}/docker images -q | xargs -i {{ '{{' }} docker_bin_dir }}/docker inspect -f {% raw %}'{{ '{{' }} if .RepoTags }}{{ '{{' }} join .RepoTags \",\" }}{{ '{{' }} end }}{{ '{{' }} if .RepoDigests }},{{ '{{' }} join .RepoDigests \",\" }}{{ '{{' }} end }}' {% endraw %} {} | tr '\n' ','"
nerdctl_image_info_command: "{{ bin_dir }}/nerdctl -n k8s.io images --format '{% raw %}{{ .Repository }}:{{ .Tag }}{% endraw %}' 2>/dev/null | grep -v ^:$ | tr '\n' ','"
nerdctl_image_pull_command: "{{ bin_dir }}/nerdctl -n k8s.io pull --quiet"
crictl_image_info_command: "{{ bin_dir }}/crictl images --verbose | awk -F ': ' '/RepoTags|RepoDigests/ {print $2}' | tr '\n' ','"
crictl_image_pull_command: "{{ bin_dir }}/crictl pull"
image_command_tool: "{%- if container_manager == 'containerd' -%}nerdctl{%- elif container_manager == 'crio' -%}crictl{%- else -%}{{ container_manager }}{%- endif -%}"
image_command_tool_on_localhost: "{{ image_command_tool }}"
image_pull_command: "{{ lookup('vars', image_command_tool + '_image_pull_command') }}"
image_info_command: "{{ lookup('vars', image_command_tool + '_image_info_command') }}"
image_pull_command_on_localhost: "{{ lookup('vars', image_command_tool_on_localhost + '_image_pull_command') }}"
image_info_command_on_localhost: "{{ lookup('vars', image_command_tool_on_localhost + '_image_info_command') }}"
# Arch of Docker images and needed packages
image_arch: "{{ host_architecture | default('amd64') }}"
# Versions
crun_version: "{{ (crun_checksums['amd64'] | dict2items)[0].key }}"
runc_version: "{{ (runc_checksums['amd64'] | dict2items)[0].key }}"
kata_containers_version: "{{ (kata_containers_binary_checksums['amd64'] | dict2items)[0].key }}"
youki_version: "{{ (youki_checksums['amd64'] | dict2items)[0].key }}"
gvisor_version: "{{ (gvisor_runsc_binary_checksums['amd64'] | dict2items)[0].key }}"
containerd_version: "{{ (containerd_archive_checksums['amd64'] | dict2items)[0].key }}"
cri_dockerd_version: "{{ (cri_dockerd_archive_checksums['amd64'] | dict2items)[0].key }}"
argocd_version: "{{ (argocd_install_checksums.no_arch | dict2items)[0].key }}"
# this is relevant when container_manager == 'docker'
docker_containerd_version: 1.6.32
# gcr and kubernetes image repo define
gcr_image_repo: "gcr.io"
kube_image_repo: "registry.k8s.io"
kubeadm_image_repo: "{{ kube_image_repo }}"
# docker image repo define
docker_image_repo: "docker.io"
# quay image repo define
quay_image_repo: "quay.io"
# github image repo define (ex multus only use that)
github_image_repo: "ghcr.io"
# TODO(mattymo): Move calico versions to roles/network_plugins/calico/defaults
# after migration to container download
calico_version: "{{ (calicoctl_binary_checksums['amd64'] | dict2items)[0].key }}"
calico_ctl_version: "{{ calico_version }}"
calico_cni_version: "{{ calico_version }}"
calico_policy_version: "{{ calico_version }}"
calico_typha_version: "{{ calico_version }}"
calico_apiserver_version: "{{ calico_version }}"
typha_enabled: false
calico_apiserver_enabled: false
flannel_version: 0.28.9
flannel_cni_version: 1.7.1-flannel1
cni_version: "{{ (cni_binary_checksums['amd64'] | dict2items)[0].key }}"
cilium_version: "1.20.2"
cilium_cli_version: "{{ (ciliumcli_binary_checksums['amd64'] | dict2items)[0].key }}"
cilium_enable_hubble: false
kube_ovn_version: "1.12.21"
kube_ovn_dpdk_version: "19.11-v{{ kube_ovn_version }}"
kube_router_version: "2.1.1"
multus_version: "4.2.2"
helm_version: "{{ (helm_archive_checksums['amd64'] | dict2items)[0].key }}"
nerdctl_version: "{{ (nerdctl_archive_checksums['amd64'] | dict2items)[0].key }}"
skopeo_version: "{{ (skopeo_binary_checksums['amd64'] | dict2items)[0].key }}"
pod_infra_version: "{{ pod_infra_supported_versions[kube_major_version] }}"
etcd_version: "{{ etcd_supported_versions[kube_major_version] }}"
crictl_version: "{{ (crictl_checksums['amd64'].keys() | select('version', kube_major_next_version, '<'))[0] }}"
crio_version: "{{ (crio_archive_checksums['amd64'].keys() | select('version', kube_major_next_version, '<'))[0] }}"
# Scheduler plugins doesn't build for K8s 1.29 yet
scheduler_plugins_supported_versions:
'1.31': 0
'1.30': 0
'1.29': 0
scheduler_plugins_version: "{{ scheduler_plugins_supported_versions[kube_major_version] }}"
yq_version: "{{ (yq_checksums['amd64'] | dict2items)[0].key }}"
gateway_api_version: "{{ (gateway_api_standard_crds_checksums.no_arch | dict2items)[0].key }}"
gateway_api_channel: "standard"
prometheus_operator_crds_version: "{{ (prometheus_operator_crds_checksums.no_arch | dict2items)[0].key }}"
github_url: https://github.com
dl_k8s_io_url: https://dl.k8s.io
storage_googleapis_url: https://storage.googleapis.com
get_helm_url: https://get.helm.sh
# Download URLs
kubelet_download_url: "{{ dl_k8s_io_url }}/release/v{{ kube_version }}/bin/linux/{{ image_arch }}/kubelet"
kubectl_download_url: "{{ dl_k8s_io_url }}/release/v{{ kube_version }}/bin/linux/{{ image_arch }}/kubectl"
kubeadm_download_url: "{{ dl_k8s_io_url }}/release/v{{ kube_version }}/bin/linux/{{ image_arch }}/kubeadm"
etcd_download_url: "{{ github_url }}/etcd-io/etcd/releases/download/v{{ etcd_version }}/etcd-v{{ etcd_version }}-linux-{{ image_arch }}.tar.gz"
cni_download_url: "{{ github_url }}/containernetworking/plugins/releases/download/v{{ cni_version }}/cni-plugins-linux-{{ image_arch }}-v{{ cni_version }}.tgz"
calicoctl_download_url: "{{ github_url }}/projectcalico/calico/releases/download/v{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}"
calico_crds_download_url: "{{ github_url }}/projectcalico/calico/raw/v{{ calico_version }}/manifests/crds.yaml"
ciliumcli_download_url: "{{ github_url }}/cilium/cilium-cli/releases/download/v{{ cilium_cli_version }}/cilium-linux-{{ image_arch }}.tar.gz"
crictl_download_url: "{{ github_url }}/kubernetes-sigs/cri-tools/releases/download/v{{ crictl_version }}/crictl-v{{ crictl_version }}-{{ ansible_facts['system'] | lower }}-{{ image_arch }}.tar.gz"
crio_download_url: "{{ storage_googleapis_url }}/cri-o/artifacts/cri-o.{{ image_arch }}.v{{ crio_version }}.tar.gz"
helm_download_url: "{{ get_helm_url }}/helm-v{{ helm_version }}-linux-{{ image_arch }}.tar.gz"
runc_download_url: "{{ github_url }}/opencontainers/runc/releases/download/v{{ runc_version }}/runc.{{ image_arch }}"
crun_download_url: "{{ github_url }}/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}"
youki_download_url: "{{ github_url }}/youki-dev/youki/releases/download/v{{ youki_version }}/youki-{{ youki_version }}-{{ ansible_facts['architecture'] }}-musl.tar.gz"
kata_containers_download_url: "{{ github_url }}/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ image_arch }}.tar.zst"
# gVisor only supports amd64 and uses x86_64 to in the download link
gvisor_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_facts['architecture'] }}/runsc"
gvisor_containerd_shim_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_facts['architecture'] }}/containerd-shim-runsc-v1"
nerdctl_download_url: "{{ github_url }}/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_facts['system'] | lower }}-{{ image_arch }}.tar.gz"
containerd_download_url: "{{ github_url }}/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ 'static-' if containerd_static_binary }}{{ containerd_version }}-linux-{{ image_arch }}.tar.gz"
cri_dockerd_download_url: "{{ github_url }}/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz"
skopeo_download_url: "{{ github_url }}/lework/skopeo-binary/releases/download/v{{ skopeo_version }}/skopeo-linux-{{ image_arch }}"
yq_download_url: "{{ github_url }}/mikefarah/yq/releases/download/v{{ yq_version }}/yq_linux_{{ image_arch }}"
argocd_install_url: "https://raw.githubusercontent.com/argoproj/argo-cd/v{{ argocd_version }}/manifests/install.yaml"
gateway_api_crds_download_url: "{{ github_url }}/kubernetes-sigs/gateway-api/releases/download/v{{ gateway_api_version }}/{{ gateway_api_channel }}-install.yaml"
prometheus_operator_crds_download_url: "{{ github_url }}/prometheus-operator/prometheus-operator/releases/download/v{{ prometheus_operator_crds_version }}/stripped-down-crds.yaml"
etcd_binary_checksum: "{{ etcd_binary_checksums[image_arch][etcd_version] }}"
cni_binary_checksum: "{{ cni_binary_checksums[image_arch][cni_version] }}"
kubelet_binary_checksum: "{{ kubelet_checksums[image_arch][kube_version] }}"
kubectl_binary_checksum: "{{ kubectl_checksums[image_arch][kube_version] }}"
kubeadm_binary_checksum: "{{ kubeadm_checksums[image_arch][kube_version] }}"
yq_binary_checksum: "{{ yq_checksums[image_arch][yq_version] }}"
argocd_install_checksum: "{{ argocd_install_checksums.no_arch[argocd_version] }}"
calicoctl_binary_checksum: "{{ calicoctl_binary_checksums[image_arch][calico_ctl_version] }}"
ciliumcli_binary_checksum: "{{ ciliumcli_binary_checksums[image_arch][cilium_cli_version] }}"
crictl_binary_checksum: "{{ crictl_checksums[image_arch][crictl_version] }}"
crio_archive_checksum: "{{ crio_archive_checksums[image_arch][crio_version] }}"
cri_dockerd_archive_checksum: "{{ cri_dockerd_archive_checksums[image_arch][cri_dockerd_version] }}"
helm_archive_checksum: "{{ helm_archive_checksums[image_arch][helm_version] }}"
runc_binary_checksum: "{{ runc_checksums[image_arch][runc_version] }}"
crun_binary_checksum: "{{ crun_checksums[image_arch][crun_version] }}"
youki_archive_checksum: "{{ youki_checksums[image_arch][youki_version] }}"
kata_containers_binary_checksum: "{{ kata_containers_binary_checksums[image_arch][kata_containers_version] }}"
gvisor_runsc_binary_checksum: "{{ gvisor_runsc_binary_checksums[image_arch][gvisor_version] }}"
gvisor_containerd_shim_binary_checksum: "{{ gvisor_containerd_shim_binary_checksums[image_arch][gvisor_version] }}"
nerdctl_archive_checksum: "{{ nerdctl_archive_checksums[image_arch][nerdctl_version] }}"
containerd_archive_checksum: "{{ containerd_archive_checksums[image_arch][containerd_version] }}"
containerd_static_archive_checksum: "{{ containerd_static_archive_checksums[image_arch][containerd_version] }}"
containerd_checksum: "{{ containerd_static_archive_checksum if containerd_static_binary else containerd_archive_checksum }}"
skopeo_binary_checksum: "{{ skopeo_binary_checksums[image_arch][skopeo_version] }}"
# Containers
# In some cases, we need a way to set --registry-mirror or --insecure-registry for docker,
# it helps a lot for local private development or bare metal environment.
# So you need define --registry-mirror or --insecure-registry, and modify the following url address.
# example:
# You need to deploy kubernetes cluster on local private development.
# Also provide the address of your own private registry.
# And use --insecure-registry options for docker
kube_proxy_image_repo: "{{ kube_image_repo }}/kube-proxy"
etcd_image_repo: "{{ quay_image_repo }}/coreos/etcd"
etcd_image_tag: "v{{ etcd_version }}"
flannel_image_repo: "{{ docker_image_repo }}/flannel/flannel"
flannel_image_tag: "{{ 'v' if flannel_version is version('0.28.6', '<') else '' }}{{ flannel_version }}"
flannel_init_image_repo: "{{ docker_image_repo }}/flannel/flannel-cni-plugin"
flannel_init_image_tag: "v{{ flannel_cni_version }}"
calico_node_image_repo: "{{ quay_image_repo }}/calico/node"
calico_node_image_tag: "v{{ calico_version }}"
calico_cni_image_repo: "{{ quay_image_repo }}/calico/cni"
calico_cni_image_tag: "v{{ calico_cni_version }}"
calico_policy_image_repo: "{{ quay_image_repo }}/calico/kube-controllers"
calico_policy_image_tag: "v{{ calico_policy_version }}"
calico_typha_image_repo: "{{ quay_image_repo }}/calico/typha"
calico_typha_image_tag: "v{{ calico_typha_version }}"
calico_apiserver_image_repo: "{{ quay_image_repo }}/calico/apiserver"
calico_apiserver_image_tag: "v{{ calico_apiserver_version }}"
pod_infra_image_repo: "{{ kube_image_repo }}/pause"
pod_infra_image_tag: "{{ pod_infra_version }}"
cilium_image_repo: "{{ quay_image_repo }}/cilium/cilium"
cilium_image_tag: "v{{ cilium_version }}"
cilium_operator_image_repo: "{{ quay_image_repo }}/cilium/operator"
cilium_operator_image_tag: "v{{ cilium_version }}"
cilium_hubble_relay_image_repo: "{{ quay_image_repo }}/cilium/hubble-relay"
cilium_hubble_relay_image_tag: "v{{ cilium_version }}"
cilium_certgen_image_repo: "{{ quay_image_repo }}/cilium/certgen"
cilium_certgen_image_tag: "v0.4.11"
cilium_hubble_ui_image_repo: "{{ quay_image_repo }}/cilium/hubble-ui"
cilium_hubble_ui_image_tag: "v0.13.6"
cilium_hubble_ui_backend_image_repo: "{{ quay_image_repo }}/cilium/hubble-ui-backend"
cilium_hubble_ui_backend_image_tag: "v0.13.6"
cilium_envoy_image_repo: "{{ quay_image_repo }}/cilium/cilium-envoy"
cilium_envoy_image_tag: "v1.37.6-1789133542-cbec91f666af0bf742da986d43832932dbb26b82"
kube_ovn_container_image_repo: "{{ docker_image_repo }}/kubeovn/kube-ovn"
kube_ovn_container_image_tag: "v{{ kube_ovn_version }}"
kube_ovn_vpc_container_image_repo: "{{ docker_image_repo }}/kubeovn/vpc-nat-gateway"
kube_ovn_vpc_container_image_tag: "v{{ kube_ovn_version }}"
kube_ovn_dpdk_container_image_repo: "{{ docker_image_repo }}/kubeovn/kube-ovn-dpdk"
kube_ovn_dpdk_container_image_tag: "{{ kube_ovn_dpdk_version }}"
kube_router_image_repo: "{{ docker_image_repo }}/cloudnativelabs/kube-router"
kube_router_image_tag: "v{{ kube_router_version }}"
multus_image_repo: "{{ github_image_repo }}/k8snetworkplumbingwg/multus-cni"
multus_image_tag: "v{{ multus_version }}"
external_openstack_cloud_controller_image_repo: "{{ kube_image_repo }}/provider-os/openstack-cloud-controller-manager"
external_openstack_cloud_controller_image_tag: "v1.35.0"
kube_vip_version: 1.0.3
kube_vip_image_repo: "{{ github_image_repo }}/kube-vip/kube-vip{{ '-iptables' if kube_vip_lb_fwdmethod == 'masquerade' else '' }}"
kube_vip_image_tag: "v{{ kube_vip_version }}"
nginx_image_repo: "{{ docker_image_repo }}/library/nginx"
nginx_image_tag: 1.30.1-alpine
haproxy_image_repo: "{{ docker_image_repo }}/library/haproxy"
haproxy_image_tag: 3.2.19-alpine
# Coredns version should be supported by corefile-migration (or at least work with)
# bundle with kubeadm; if not 'basic' upgrade can sometimes fail
coredns_supported_versions:
'1.37': 1.14.6
'1.36': 1.14.2
'1.35': 1.12.4
coredns_version: "{{ coredns_supported_versions[kube_major_version] }}"
coredns_image_repo: "{{ kube_image_repo }}{{ '/coredns' if coredns_version is version('1.7.1', '>=') else '' }}/coredns"
coredns_image_tag: "{{ 'v' if coredns_version is version('1.7.1', '>=') else '' }}{{ coredns_version }}"
nodelocaldns_version: "1.25.0"
nodelocaldns_image_repo: "{{ kube_image_repo }}/dns/k8s-dns-node-cache"
nodelocaldns_image_tag: "{{ nodelocaldns_version }}"
dnsautoscaler_version: 1.10.3
dnsautoscaler_image_repo: "{{ kube_image_repo }}/cpa/cluster-proportional-autoscaler"
dnsautoscaler_image_tag: "v{{ dnsautoscaler_version }}"
scheduler_plugins_controller_image_repo: "{{ kube_image_repo }}/scheduler-plugins/controller"
scheduler_plugins_controller_image_tag: "v{{ scheduler_plugins_version }}"
scheduler_plugins_scheduler_image_repo: "{{ kube_image_repo }}/scheduler-plugins/kube-scheduler"
scheduler_plugins_scheduler_image_tag: "v{{ scheduler_plugins_version }}"
registry_version: "2.8.1"
registry_image_repo: "{{ docker_image_repo }}/library/registry"
registry_image_tag: "{{ registry_version }}"
metrics_server_version: "0.9.0"
metrics_server_image_repo: "{{ kube_image_repo }}/metrics-server/metrics-server"
metrics_server_image_tag: "v{{ metrics_server_version }}"
local_volume_provisioner_version: "2.5.0"
local_volume_provisioner_image_repo: "{{ kube_image_repo }}/sig-storage/local-volume-provisioner"
local_volume_provisioner_image_tag: "v{{ local_volume_provisioner_version }}"
local_path_provisioner_version: "0.0.37"
local_path_provisioner_image_repo: "{{ docker_image_repo }}/rancher/local-path-provisioner"
local_path_provisioner_image_tag: "v{{ local_path_provisioner_version }}"
alb_ingress_image_repo: "{{ docker_image_repo }}/amazon/aws-alb-ingress-controller"
alb_ingress_image_tag: "v1.1.9"
cert_manager_version: "1.15.3"
cert_manager_controller_image_repo: "{{ quay_image_repo }}/jetstack/cert-manager-controller"
cert_manager_controller_image_tag: "v{{ cert_manager_version }}"
cert_manager_cainjector_image_repo: "{{ quay_image_repo }}/jetstack/cert-manager-cainjector"
cert_manager_cainjector_image_tag: "v{{ cert_manager_version }}"
cert_manager_webhook_image_repo: "{{ quay_image_repo }}/jetstack/cert-manager-webhook"
cert_manager_webhook_image_tag: "v{{ cert_manager_version }}"
csi_attacher_image_repo: "{{ kube_image_repo }}/sig-storage/csi-attacher"
csi_attacher_image_tag: "v4.5.1"
csi_provisioner_image_repo: "{{ kube_image_repo }}/sig-storage/csi-provisioner"
csi_provisioner_image_tag: "v4.0.1"
csi_snapshotter_image_repo: "{{ kube_image_repo }}/sig-storage/csi-snapshotter"
csi_snapshotter_image_tag: "v7.0.2"
csi_resizer_image_repo: "{{ kube_image_repo }}/sig-storage/csi-resizer"
csi_resizer_image_tag: "v1.10.1"
csi_node_driver_registrar_image_repo: "{{ kube_image_repo }}/sig-storage/csi-node-driver-registrar"
csi_node_driver_registrar_image_tag: "v2.4.0"
csi_livenessprobe_image_repo: "{{ kube_image_repo }}/sig-storage/livenessprobe"
csi_livenessprobe_image_tag: "v2.11.0"
snapshot_controller_supported_versions:
'1.37': "v7.0.2"
'1.36': "v7.0.2"
'1.35': "v7.0.2"
snapshot_controller_image_repo: "{{ kube_image_repo }}/sig-storage/snapshot-controller"
snapshot_controller_image_tag: "{{ snapshot_controller_supported_versions[kube_major_version] }}"
cinder_csi_plugin_version: "1.30.0"
cinder_csi_plugin_image_repo: "{{ kube_image_repo }}/provider-os/cinder-csi-plugin"
cinder_csi_plugin_image_tag: "v{{ cinder_csi_plugin_version }}"
aws_ebs_csi_plugin_version: "0.5.0"
aws_ebs_csi_plugin_image_repo: "{{ docker_image_repo }}/amazon/aws-ebs-csi-driver"
aws_ebs_csi_plugin_image_tag: "v{{ aws_ebs_csi_plugin_version }}"
gcp_pd_csi_plugin_version: "1.9.2"
gcp_pd_csi_plugin_image_repo: "{{ kube_image_repo }}/cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver"
gcp_pd_csi_plugin_image_tag: "v{{ gcp_pd_csi_plugin_version }}"
azure_csi_image_repo: "mcr.microsoft.com/oss/kubernetes-csi"
azure_csi_provisioner_image_tag: "v2.2.2"
azure_csi_attacher_image_tag: "v3.3.0"
azure_csi_resizer_image_tag: "v1.3.0"
azure_csi_livenessprobe_image_tag: "v2.5.0"
azure_csi_node_registrar_image_tag: "v2.4.0"
azure_csi_snapshotter_image_tag: "v3.0.3"
azure_csi_plugin_version: "1.10.0"
azure_csi_plugin_image_repo: "mcr.microsoft.com/k8s/csi"
azure_csi_plugin_image_tag: "v{{ azure_csi_plugin_version }}"
gcp_pd_csi_image_repo: "gke.gcr.io"
gcp_pd_csi_driver_image_tag: "v0.7.0-gke.0"
gcp_pd_csi_provisioner_image_tag: "v1.5.0-gke.0"
gcp_pd_csi_attacher_image_tag: "v2.1.1-gke.0"
gcp_pd_csi_resizer_image_tag: "v0.4.0-gke.0"
gcp_pd_csi_registrar_image_tag: "v1.2.0-gke.0"
metallb_speaker_image_repo: "{{ quay_image_repo }}/metallb/speaker"
metallb_controller_image_repo: "{{ quay_image_repo }}/metallb/controller"
metallb_version: 0.13.9
metallb_image_tag: "v{{ metallb_version }}"
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:
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 }}"
unarchive: true
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 }}"
unarchive: false
groups:
- k8s_cluster
kubeadm:
enabled: true
file: true
dest: "{{ local_release_dir }}/kubeadm-{{ kube_version }}-{{ image_arch }}"
checksum: "{{ kubeadm_binary_checksum }}"
url: "{{ kubeadm_download_url }}"
unarchive: false
groups:
- k8s_cluster
kubelet:
enabled: true
file: true
dest: "{{ local_release_dir }}/kubelet-{{ kube_version }}-{{ image_arch }}"
checksum: "{{ kubelet_binary_checksum }}"
url: "{{ kubelet_download_url }}"
unarchive: false
groups:
- k8s_cluster
kubectl:
enabled: true
file: true
dest: "{{ local_release_dir }}/kubectl-{{ kube_version }}-{{ image_arch }}"
checksum: "{{ kubectl_binary_checksum }}"
url: "{{ kubectl_download_url }}"
unarchive: false
groups:
- kube_control_plane
crictl:
file: true
enabled: true
dest: "{{ local_release_dir }}/crictl-{{ crictl_version }}-linux-{{ image_arch }}.tar.gz"
checksum: "{{ crictl_binary_checksum }}"
url: "{{ crictl_download_url }}"
unarchive: true
groups:
- 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 }}"
url: "{{ crio_download_url }}"
unarchive: true
groups:
- 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 }}"
url: "{{ cri_dockerd_download_url }}"
unarchive: true
unarchive_extra_opts:
- --strip=1
groups:
- k8s_cluster
crun:
file: true
enabled: "{{ crun_enabled }}"
dest: "{{ local_release_dir }}/crun-{{ crun_version }}-{{ image_arch }}"
checksum: "{{ crun_binary_checksum }}"
url: "{{ crun_download_url }}"
unarchive: false
groups:
- k8s_cluster
youki:
file: true
enabled: "{{ youki_enabled }}"
dest: "{{ local_release_dir }}/youki-{{ youki_version }}-{{ ansible_facts['architecture'] }}.tar.gz"
checksum: "{{ youki_archive_checksum }}"
url: "{{ youki_download_url }}"
unarchive: true
groups:
- k8s_cluster
runc:
file: true
enabled: "{{ container_manager == 'containerd' }}"
dest: "{{ local_release_dir }}/runc-{{ runc_version }}.{{ image_arch }}"
checksum: "{{ runc_binary_checksum }}"
url: "{{ runc_download_url }}"
unarchive: false
groups:
- k8s_cluster
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 }}"
unarchive: false
groups:
- k8s_cluster
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 }}"
unarchive: false
groups:
- k8s_cluster
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 }}"
unarchive: false
groups:
- k8s_cluster
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 }}"
unarchive: false
groups:
- 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 }}"
url: "{{ nerdctl_download_url }}"
unarchive: true
groups:
- k8s_cluster
skopeo:
file: true
enabled: "{{ container_manager == 'crio' }}"
dest: "{{ local_release_dir }}/skopeo-{{ skopeo_version }}-{{ image_arch }}"
checksum: "{{ skopeo_binary_checksum }}"
url: "{{ skopeo_download_url }}"
unarchive: false
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 }}"
unarchive: true
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 }}"
unarchive: false
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 }}"
unarchive: true
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] }}"
url: "{{ gateway_api_crds_download_url }}"
groups:
- kube_control_plane
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] }}"
url: "{{ prometheus_operator_crds_download_url }}"
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
yq:
enabled: "{{ argocd_enabled }}"
file: true
version: "{{ yq_version }}"
dest: "{{ local_release_dir }}/yq-{{ yq_version }}-{{ image_arch }}"
checksum: "{{ yq_binary_checksum }}"
url: "{{ yq_download_url }}"
unarchive: false
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 }}"
unarchive: false
groups:
- kube_control_plane
download_defaults:
container: false
file: false
image_name: None
enabled: false
dest: None
url: None
unarchive: false