---
# Internal version manipulation tooling

# Get kubernetes major version (i.e. 1.17.4 => 1.17)
kube_major_version: "{{ (kube_version | split('.'))[:-1] | join('.') }}"
kube_next: "{{ ((kube_version | split('.'))[1] | int) + 1 }}"
kube_major_next_version: "1.{{ kube_next }}"

pod_infra_supported_versions:
  '1.35': '3.10.1'
  '1.34': '3.10.1'
  '1.33': '3.10'

etcd_supported_versions:
  '1.35': "{{ (etcd_binary_checksums['amd64'].keys() | select('version', '3.7', '<'))[0] }}"
  '1.34': "{{ (etcd_binary_checksums['amd64'].keys() | select('version', '3.6', '<'))[0] }}"
  '1.33': "{{ (etcd_binary_checksums['amd64'].keys() | select('version', '3.6', '<'))[0] }}"
# Kubespray constants

kube_proxy_deployed: "{{ 'addon/kube-proxy' not in kubeadm_init_phases_skip }}"

# The lowest version allowed to upgrade from (same as calico_version in the previous branch)
calico_min_version_required: "3.27.0"

containerd_min_version_required: "1.3.7"

# mixed kube_service_addresses/kube_service_addresses_ipv6 for a variety of network stacks(dualstack, ipv6only, ipv4only)
kube_service_subnets: >-
  {%- if ipv4_stack and ipv6_stack -%}
  {{ kube_service_addresses }},{{ kube_service_addresses_ipv6 }}
  {%- elif ipv4_stack -%}
  {{ kube_service_addresses }}
  {%- else -%}
  {{ kube_service_addresses_ipv6 }}
  {%- endif -%}

# mixed kube_pods_subnet/kube_pods_subnet_ipv6 for a variety of network stacks(dualstack, ipv6only, ipv4only)
kube_pods_subnets: >-
  {%- if ipv4_stack and ipv6_stack -%}
  {{ kube_pods_subnet }},{{ kube_pods_subnet_ipv6 }}
  {%- elif ipv4_stack -%}
  {{ kube_pods_subnet }}
  {%- else -%}
  {{ kube_pods_subnet_ipv6 }}
  {%- endif -%}
