Skip to content

Commit 3f94a43

Browse files
Merge pull request #332 from jplitza/ipv6-improvements
Ipv6 improvements
2 parents 602b420 + 23b3ee8 commit 3f94a43

File tree

13 files changed

+38
-29
lines changed

13 files changed

+38
-29
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
python-version: '3.x'
4343

4444
- name: Install test dependencies
45-
run: pip3 install ansible docker molecule molecule-plugins[docker] "requests<2.29.2"
45+
run: pip3 install ansible docker molecule molecule-plugins[docker] netaddr "requests<2.29.2"
4646

4747
- name: Run Molecule tests
4848
run: molecule test
@@ -77,7 +77,7 @@ jobs:
7777
python-version: '3.x'
7878

7979
- name: Install test dependencies
80-
run: pip3 install ansible docker molecule molecule-plugins[docker] "requests<2.29.2"
80+
run: pip3 install ansible docker molecule molecule-plugins[docker] netaddr "requests<2.29.2"
8181

8282
- name: Run Molecule tests
8383
run: molecule test --scenario-name cluster

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ rke2_ha_mode_kubevip: false
6060
# Kubernetes API and RKE2 registration IP address. The default Address is the IPv4 of the Server/Master node.
6161
# In HA mode choose a static IP which will be set as VIP in keepalived.
6262
# Or if the keepalived is disabled, use IP address of your LB.
63-
rke2_api_ip: "{{ hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv4']['address'] }}"
63+
rke2_api_ip: "{{ hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv4']['address'] | default(hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv6']['address'] ) }}"
6464

6565
# optional option for RKE2 Server to listen on a private IP address & port
6666
# rke2_api_private_ip:
@@ -86,10 +86,10 @@ rke2_kubevip_cloud_provider_enable: true
8686
rke2_kubevip_svc_enable: true
8787

8888
# Specify which image is used for kube-vip container
89-
rke2_kubevip_image: ghcr.io/kube-vip/kube-vip:v0.6.4
89+
rke2_kubevip_image: ghcr.io/kube-vip/kube-vip:v0.9.2
9090

9191
# Specify which image is used for kube-vip cloud provider container
92-
rke2_kubevip_cloud_provider_image: ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.4
92+
rke2_kubevip_cloud_provider_image: ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.12
9393

9494
# Enable kube-vip IPVS load balancer for control plane
9595
rke2_kubevip_ipvs_lb_enable: false

defaults/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ rke2_ha_mode_kubevip: false
2222
# Kubernetes API and RKE2 registration IP address. The default Address is the IPv4 of the Server/Master node.
2323
# In HA mode choose a static IP which will be set as VIP in keepalived.
2424
# Or if the keepalived is disabled, use IP address of your LB.
25-
rke2_api_ip: "{{ hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv4']['address'] }}"
25+
rke2_api_ip: "{{ hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv4']['address'] | default(hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv6']['address'] ) }}"
2626

2727
# optional option for RKE2 Server to listen on a private IP address & port
2828
# rke2_api_private_ip:
@@ -48,10 +48,10 @@ rke2_kubevip_cloud_provider_enable: true
4848
rke2_kubevip_svc_enable: true
4949

5050
# Specify which image is used for kube-vip container
51-
rke2_kubevip_image: ghcr.io/kube-vip/kube-vip:v0.6.4
51+
rke2_kubevip_image: ghcr.io/kube-vip/kube-vip:v0.9.2
5252

5353
# Specify which image is used for kube-vip cloud provider container
54-
rke2_kubevip_cloud_provider_image: ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.4
54+
rke2_kubevip_cloud_provider_image: ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.12
5555

5656
# Enable kube-vip IPVS load balancer for control plane
5757
rke2_kubevip_ipvs_lb_enable: false

meta/argument_specs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ argument_specs:
3939

4040
rke2_api_ip:
4141
type: str
42-
default: "{{ hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv4']['address'] }}"
42+
default: "{{ hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv4']['address'] | default(hostvars[groups[rke2_servers_group_name].0]['ansible_default_ipv6']['address'] ) }}"
4343
description: "Kubernetes API and RKE2 registration IP address. The default Address is the IPv4 of the Server/Master node. In HA mode choose a static IP which will be set as VIP in keepalived. Or if the keepalived is disabled, use IP address of your LB."
4444

4545
rke2_api_private_ip:
@@ -84,12 +84,12 @@ argument_specs:
8484

8585
rke2_kubevip_image:
8686
type: str
87-
default: "ghcr.io/kube-vip/kube-vip:v0.6.4"
87+
default: "ghcr.io/kube-vip/kube-vip:v0.9.2"
8888
description: "Specify which image is used for kube-vip container"
8989

9090
rke2_kubevip_cloud_provider_image:
9191
type: str
92-
default: "ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.4"
92+
default: "ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.12"
9393
description: "Specify which image is used for kube-vip cloud provider container"
9494

9595
rke2_kubevip_ipvs_lb_enable:

requirements.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
collections:
2+
- community.general
3+
- ansible.utils

tasks/first_server_restore.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
delete node {{ item }} 2>&1 || true
1414
args:
1515
executable: /bin/bash
16-
with_items: "{{ node_names.stdout_lines | difference(groups[rke2_cluster_group_name]) }}"
16+
with_items: "{{ node_names.stdout_lines | difference(groups[rke2_cluster_group_name] ) }}"
1717
changed_when: false

tasks/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878

7979
- name: Rolling cordon and drain restart when version changes - agents
8080
ansible.builtin.include_tasks: rolling_restart.yml
81-
with_items: "{{ groups[rke2_agents_group_name] | default([]) }}"
81+
with_items: "{{ groups[rke2_agents_group_name] | default([] ) }}"
8282
loop_control:
8383
loop_var: _host_item
8484
when:

tasks/summary.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
ansible.builtin.replace:
1414
path: "{{ rke2_download_kubeconf_path }}/{{ rke2_download_kubeconf_file_name }}"
1515
mode: '0600'
16-
regexp: '127.0.0.1'
17-
replace: "{{ rke2_api_ip | default(hostvars[groups[rke2_servers_group_name].0].ansible_host) }}"
16+
regexp: '127\.0\.0\.1|\[::1\]'
17+
replace: "{{ rke2_api_ip | default(hostvars[groups[rke2_servers_group_name].0].ansible_host) | ansible.utils.ipwrap }}"
1818
delegate_to: localhost
1919
become: false
2020
when:

templates/check_apiserver.sh.j2

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ errorExit() {
33
echo "*** $*" 1>&2
44
exit 1
55
}
6-
curl --silent --max-time 2 --insecure https://localhost:{{rke2_apiserver_dest_port}}/healthz --cert {{rke2_data_path}}/server/tls/client-ca.crt --key {{rke2_data_path}}/server/tls/client-ca.key -o /dev/null || errorExit "Error GET https://localhost:{{rke2_apiserver_dest_port}}/healthz"
7-
if ip addr | grep -wq {{rke2_api_ip}}; then
8-
curl --silent --max-time 2 --insecure https://{{rke2_api_ip}}:{{rke2_apiserver_dest_port}}/healthz --cert {{rke2_data_path}}/server/tls/client-ca.crt --key {{rke2_data_path}}/server/tls/client-ca.key -o /dev/null || errorExit "Error GET https://{{rke2_api_ip}}:{{rke2_apiserver_dest_port}}/healthz"
6+
testUrl() {
7+
curl --silent --max-time 2 --insecure "$1" --cert '{{rke2_data_path}}/server/tls/client-ca.crt' --key '{{rke2_data_path}}/server/tls/client-ca.key' -o /dev/null || errorExit "Error GET $1"
8+
}
9+
testUrl 'https://localhost:{{rke2_apiserver_dest_port}}/healthz'
10+
if ip addr | grep -wq '{{rke2_api_ip}}'; then
11+
testUrl 'https://{{rke2_api_ip | ansible.utils.ipwrap}}:{{rke2_apiserver_dest_port}}/healthz'
912
fi

templates/check_rke2server.sh.j2

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@ errorExit() {
33
echo "*** $*" 1>&2
44
exit 1
55
}
6-
curl --silent --max-time 2 --insecure https://localhost:9345/ -o /dev/null || errorExit "Error GET https://localhost:9345/"
6+
testUrl() {
7+
curl --silent --max-time 2 --insecure "$1" -o /dev/null || errorExit "Error GET $1"
8+
}
9+
testUrl https://localhost:9345/
710
{% if rke2_api_private_ip is defined %}
8-
if ip addr | grep -wq {{rke2_api_private_ip}}; then
9-
curl --silent --max-time 2 --insecure https://{{rke2_api_private_ip}}:{{ rke2_api_private_port }}/ -o /dev/null || errorExit "Error GET https://{{rke2_api_private_ip}}:{{ rke2_api_private_port }}/"
11+
if ip addr | grep -wq '{{rke2_api_private_ip}}'; then
12+
testUrl 'https://{{rke2_api_private_ip | ansible.utils.ipwrap}}:{{ rke2_api_private_port }}/'
1013
fi
1114
{% else %}
12-
if ip addr | grep -wq {{rke2_api_ip}}; then
13-
curl --silent --max-time 2 --insecure https://{{rke2_api_ip}}:9345/ -o /dev/null || errorExit "Error GET https://{{rke2_api_ip}}:9345/"
15+
if ip addr | grep -wq '{{rke2_api_ip}}'; then
16+
testUrl 'https://{{rke2_api_ip | ansible.utils.ipwrap}}:9345/'
1417
fi
1518
{% endif %}

0 commit comments

Comments
 (0)