From 420079a2460b64a2f355413eae5d0888e02bb007 Mon Sep 17 00:00:00 2001 From: borislitv Date: Thu, 23 Jan 2025 15:56:37 +0300 Subject: [PATCH] ipv6 in testcases --- Vagrantfile | 5 +++++ docs/ansible/vars.md | 3 +++ roles/kubernetes/client/tasks/main.yml | 2 +- roles/kubespray-defaults/defaults/main/main.yml | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 7c0f7b570b8..e481d748d2e 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -219,6 +219,11 @@ Vagrant.configure("2") do |config| :libvirt__forward_mode => "none", :libvirt__dhcp_enabled => false + # libvirt__ipv6_address does not work as intended, the address is obtained with the desired prefix, but auto-generated(like fd3c:b398:698:756:5054:ff:fe48:c61e/64) + # add address manualy + # TODO: fix libvirt__ipv6 or use $subnet in shell + config.vm.provision "shell", inline: "ip addr add fd3c:b398:0698:0756::10$(hostname -s | cut -d\- -f2)/64 dev eth1 || true" + # Disable swap for each vm node.vm.provision "shell", inline: "swapoff -a" diff --git a/docs/ansible/vars.md b/docs/ansible/vars.md index 4a71c04c324..66de2595b13 100644 --- a/docs/ansible/vars.md +++ b/docs/ansible/vars.md @@ -38,8 +38,11 @@ Some variables of note include: * *access_ip* - IP to use from other hosts to connect to this host. Often required when deploying from a cloud, such as OpenStack or GCE and you have separate public/floating and private IPs. This would **usually** be the private ip. +* *access_ip6* - IPv6 to use from other hosts to connect to this host. * *ansible_default_ipv4.address* - Not Kubespray-specific, but it is used if ip and access_ip are undefined +* *ansible_default_ipv6.address* - Not Kubespray-specific, but it is used if ip + and access_ip6 are undefined * *ip6* - IPv6 address to use for binding services. (host var) If *enable_dual_stack_networks* is set to ``true`` and *ip6* is defined, kubelet's ``--node-ip`` and node's ``InternalIP`` will be the combination of *ip* and *ip6*. diff --git a/roles/kubernetes/client/tasks/main.yml b/roles/kubernetes/client/tasks/main.yml index 9202051981f..bb0786d1a48 100644 --- a/roles/kubernetes/client/tasks/main.yml +++ b/roles/kubernetes/client/tasks/main.yml @@ -71,7 +71,7 @@ user_certs: "{{ admin_kubeconfig['users'][0]['user'] }}" username: "kubernetes-admin-{{ cluster_name }}" context: "kubernetes-admin-{{ cluster_name }}@{{ cluster_name }}" - override_cluster_name: "{{ {'clusters': [{'cluster': (cluster_infos | combine({'server': 'https://' + external_apiserver_address + ':' + (external_apiserver_port | string)})), 'name': cluster_name}]} }}" + override_cluster_name: "{{ {'clusters': [{'cluster': (cluster_infos | combine({'server': 'https://' + (external_apiserver_address | ansible.utils.ipwrap) + ':' + (external_apiserver_port | string)})), 'name': cluster_name}]} }}" override_context: "{{ {'contexts': [{'context': {'user': username, 'cluster': cluster_name}, 'name': context}], 'current-context': context} }}" override_user: "{{ {'users': [{'name': username, 'user': user_certs}]} }}" when: kubeconfig_localhost diff --git a/roles/kubespray-defaults/defaults/main/main.yml b/roles/kubespray-defaults/defaults/main/main.yml index 99f2a5c8522..9953d9cc65e 100644 --- a/roles/kubespray-defaults/defaults/main/main.yml +++ b/roles/kubespray-defaults/defaults/main/main.yml @@ -639,7 +639,7 @@ ssl_ca_dirs: |- # Vars for pointing to kubernetes api endpoints kube_apiserver_count: "{{ groups['kube_control_plane'] | length }}" kube_apiserver_address: "{{ lookup('ansible.builtin.vars', 'ip' + default_net_mode, default=hostvars[inventory_hostname]['fallback_ip' + default_net_mode]) }}" -kube_apiserver_access_address: "{{ access_ip | default(kube_apiserver_address) }}" +kube_apiserver_access_address: "{{ lookup('ansible.builtin.vars', 'access_ip' + default_net_mode, default=kube_apiserver_address) }}" first_kube_control_plane_address: "{{ hostvars[groups['kube_control_plane'][0]]['access_ip' + default_net_mode] | default(hostvars[groups['kube_control_plane'][0]]['ip' + default_net_mode] | default(hostvars[groups['kube_control_plane'][0]]['fallback_ip' + default_net_mode])) | ansible.utils.ipwrap }}" loadbalancer_apiserver_localhost: "{{ loadbalancer_apiserver is not defined }}" loadbalancer_apiserver_type: "nginx"