-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add kube-vip as a service load balancer (#432)
* add kube-vip as a service load balancer * add molecule scenario kube-vip --------- Co-authored-by: Techno Tim <[email protected]>
- Loading branch information
1 parent
8dd3ffc
commit bcd37a6
Showing
11 changed files
with
127 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,7 @@ jobs: | |
- ipv6 | ||
- single_node | ||
- calico | ||
- kube-vip | ||
fail-fast: false | ||
env: | ||
PYTHON_VERSION: "3.11" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
--- | ||
dependency: | ||
name: galaxy | ||
driver: | ||
name: vagrant | ||
platforms: | ||
- name: control1 | ||
box: generic/ubuntu2204 | ||
memory: 4096 | ||
cpus: 4 | ||
config_options: | ||
# We currently can not use public-key based authentication on Ubuntu 22.04, | ||
# see: https://github.com/chef/bento/issues/1405 | ||
ssh.username: "vagrant" | ||
ssh.password: "vagrant" | ||
groups: | ||
- k3s_cluster | ||
- master | ||
interfaces: | ||
- network_name: private_network | ||
ip: 192.168.30.62 | ||
provisioner: | ||
name: ansible | ||
env: | ||
ANSIBLE_VERBOSITY: 1 | ||
playbooks: | ||
converge: ../resources/converge.yml | ||
side_effect: ../resources/reset.yml | ||
verify: ../resources/verify.yml | ||
inventory: | ||
links: | ||
group_vars: ../../inventory/sample/group_vars | ||
scenario: | ||
test_sequence: | ||
- dependency | ||
- cleanup | ||
- destroy | ||
- syntax | ||
- create | ||
- prepare | ||
- converge | ||
# idempotence is not possible with the playbook in its current form. | ||
- verify | ||
# We are repurposing side_effect here to test the reset playbook. | ||
# This is why we do not run it before verify (which tests the cluster), | ||
# but after the verify step. | ||
- side_effect | ||
- cleanup | ||
- destroy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
- name: Apply overrides | ||
hosts: all | ||
tasks: | ||
- name: Override host variables | ||
ansible.builtin.set_fact: | ||
# See: | ||
# https://github.com/flannel-io/flannel/blob/67d603aaf45ef80f5dd39f43714fc5e6f8a637eb/Documentation/troubleshooting.md#Vagrant | ||
flannel_iface: eth1 | ||
|
||
# The test VMs might be a bit slow, so we give them more time to join the cluster: | ||
retry_count: 45 | ||
|
||
# Make sure that our IP ranges do not collide with those of the other scenarios | ||
apiserver_endpoint: "192.168.30.225" | ||
# Use kube-vip instead of MetalLB | ||
kube_vip_lb_ip_range: "192.168.30.110-192.168.30.119" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
- name: Create manifests directory on first master | ||
file: | ||
path: /var/lib/rancher/k3s/server/manifests | ||
state: directory | ||
owner: root | ||
group: root | ||
mode: 0644 | ||
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname'] | ||
|
||
- name: Download vip cloud provider manifest to first master | ||
ansible.builtin.get_url: | ||
url: "https://raw.githubusercontent.com/kube-vip/kube-vip-cloud-provider/{{ kube_vip_cloud_provider_tag_version | default('main') }}/manifest/kube-vip-cloud-controller.yaml" # noqa yaml[line-length] | ||
dest: "/var/lib/rancher/k3s/server/manifests/kube-vip-cloud-controller.yaml" | ||
owner: root | ||
group: root | ||
mode: 0644 | ||
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname'] | ||
|
||
- name: Copy kubevip configMap manifest to first master | ||
template: | ||
src: "kubevip.yaml.j2" | ||
dest: "/var/lib/rancher/k3s/server/manifests/kubevip.yaml" | ||
owner: root | ||
group: root | ||
mode: 0644 | ||
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--- | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: kubevip | ||
namespace: kube-system | ||
data: | ||
{% if kube_vip_lb_ip_range is string %} | ||
{# kube_vip_lb_ip_range was used in the legacy way: single string instead of a list #} | ||
{# => transform to list with single element #} | ||
{% set kube_vip_lb_ip_range = [kube_vip_lb_ip_range] %} | ||
{% endif %} | ||
range-global: {{ kube_vip_lb_ip_range | join(',') }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters