Skip to content

Commit 4c22e4b

Browse files
Merge pull request #393 from rumblpak/kube-vip-bgp-fixes
Adding customizable defaults to kube-vip template. Add support for valueFrom in rke2_kubevip_args.
2 parents 211a007 + b04ae10 commit 4c22e4b

4 files changed

Lines changed: 77 additions & 6 deletions

File tree

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,24 @@ rke2_kubevip_service_election_enable: true
121121
# Prometheus metrics port for kube-vip
122122
rke2_kubevip_metrics_port: 2112
123123

124+
# Enable ARP for kube-vip load balancer
125+
rke2_kubevip_arp_enable: true
126+
127+
# Enable kube-vip control plane load balancer for RKE2
128+
rke2_kubevip_cp_enable: true
129+
130+
# Namespace for kube-vip control plane load balancer
131+
rke2_kubevip_cp_namespace: "kube-system"
132+
133+
# Enable kube-vip DDNS for control plane load balancer
134+
rke2_kubevip_ddns_enable: false
135+
136+
# Enable kube-vip UPnP for control plane load balancer
137+
rke2_kubevip_upnp_enable: false
138+
139+
# Enable kube-vip leader election for control plane load balancer
140+
rke2_kubevip_leaderelection_enable: true
141+
124142
# Add additional SANs in k8s API TLS cert
125143
rke2_additional_sans: []
126144

defaults/main.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ rke2_kubevip_service_election_enable: true
8282
# Prometheus metrics port for kube-vip
8383
rke2_kubevip_metrics_port: 2112
8484

85+
# Enable ARP for kube-vip load balancer
86+
rke2_kubevip_arp_enable: true
87+
88+
# Enable kube-vip control plane load balancer for RKE2
89+
rke2_kubevip_cp_enable: true
90+
91+
# Namespace for kube-vip control plane load balancer
92+
rke2_kubevip_cp_namespace: "kube-system"
93+
94+
# Enable kube-vip DDNS for control plane load balancer
95+
rke2_kubevip_ddns_enable: false
96+
97+
# Enable kube-vip UPnP for control plane load balancer
98+
rke2_kubevip_upnp_enable: false
99+
100+
# Enable kube-vip leader election for control plane load balancer
101+
rke2_kubevip_leaderelection_enable: true
102+
85103
# Add additional SANs in k8s API TLS cert
86104
rke2_additional_sans: []
87105

meta/argument_specs.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,36 @@ argument_specs:
133133
default: 2112
134134
description: "Prometheus metrics port for kube-vip"
135135

136+
rke2_kubevip_arp_enable:
137+
type: bool
138+
default: true
139+
description: "Enable ARP for kube-vip"
140+
141+
rke2_kubevip_cp_enable:
142+
type: bool
143+
default: true
144+
description: "Enable kube-vip control plane load balancer"
145+
146+
rke2_kubevip_cp_namespace:
147+
type: str
148+
default: "kube-system"
149+
description: "Namespace for kube-vip control plane load balancer"
150+
151+
rke2_kubevip_ddns_enable:
152+
type: bool
153+
default: false
154+
description: "Enable kube-vip DDNS functionality"
155+
156+
rke2_kubevip_upnp_enable:
157+
type: bool
158+
default: false
159+
description: "Enable kube-vip UPnP functionality"
160+
161+
rke2_kubevip_leaderelection_enable:
162+
type: bool
163+
default: true
164+
description: "Enable kube-vip leader election"
165+
136166
rke2_additional_sans:
137167
type: list
138168
default: []

templates/kube-vip/kube-vip.yml.j2

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ spec:
3131
- manager
3232
env:
3333
- name: vip_arp
34-
value: "true"
34+
value: "{{ rke2_kubevip_arp_enable | default('true') }}"
3535
- name: vip_nodename
3636
valueFrom:
3737
fieldRef:
@@ -43,19 +43,19 @@ spec:
4343
- name: vip_cidr
4444
value: "{{ rke2_api_cidr | default('24') }}"
4545
- name: cp_enable
46-
value: "true"
46+
value: "{{ rke2_kubevip_cp_enable | default('true') }}"
4747
- name: cp_namespace
48-
value: kube-system
48+
value: "{{ rke2_kubevip_cp_namespace | default('kube-system') }}"
4949
- name: vip_ddns
50-
value: "false"
50+
value: "{{ rke2_kubevip_ddns_enable | default('false') }}"
5151
- name: enableUPNP
52-
value: "false"
52+
value: "{{ rke2_kubevip_upnp_enable | default('false') }}"
5353
- name: svc_enable
5454
value: "{{ rke2_kubevip_svc_enable }}"
5555
- name: svc_election
5656
value: "{{ rke2_kubevip_service_election_enable }}"
5757
- name: vip_leaderelection
58-
value: "true"
58+
value: "{{ rke2_kubevip_leaderelection_enable | default('true') }}"
5959
- name: vip_leaseduration
6060
value: "{{ rke2_kubevip_leaseduration | default('5') }}"
6161
- name: vip_renewdeadline
@@ -73,7 +73,12 @@ spec:
7373
{% if rke2_kubevip_args is defined %}
7474
{% for item in rke2_kubevip_args %}
7575
- name: {{ item.param }}
76+
{%if item.value is defined %}
7677
value: {{ item.value | string | to_json }}
78+
{% endif %}
79+
{%if item.valueFrom is defined %}
80+
valueFrom: {{ item.valueFrom | string | to_json }}
81+
{% endif %}
7782
{% endfor %}
7883
{% endif %}
7984
image: "{{ rke2_kubevip_image }}"

0 commit comments

Comments
 (0)