abril/molecule/ipv6
Simon Leiner 33ae0d4970
Fix CI (#332)
* Update pre-commit actions

This was done by running "pre-commit autoupdate --freeze".

* Remove pre-commit only dependencies from requirements.in

Including them in the file would create the illusion that those were the
versions actually used in CI, but they are not. The exact versions are
determined by the pre-commit hooks which are pinned in
.pre-commit-config.yaml.

* Ansible Lint: Fix role-name[path]

* Ansible Lint: Fix name[play]

* Ansible Lint: Fix key-order[task]

* Ansible Lint: Fix jinja[spacing]

* Ansible Lint: Fix no-free-form

* Ansible Lint: Fix var-naming[no-reserved]

* Ansible Lint: Fix yaml[comments]

* Ansible Lint: Fix yaml[line-length]

* Ansible Lint: Fix name[casing]

* Ansible Lint: Fix no-changed-when

* Ansible Lint: Fix fqcn[action]

* Ansible Lint: Fix args[module]

* Improve task naming
2023-07-20 10:50:02 -05:00
..
host_vars Fix dual-stack clusters with multiple master nodes (#237) 2023-02-20 05:24:19 +00:00
templates Add support for API servers on IPv6 addresses (#48) 2022-09-10 12:57:38 -05:00
molecule.yml Fix dual-stack clusters with multiple master nodes (#237) 2023-02-20 05:24:19 +00:00
overrides.yml Fix CI (#332) 2023-07-20 10:50:02 -05:00
prepare.yml Add support for API servers on IPv6 addresses (#48) 2022-09-10 12:57:38 -05:00
README.md Add support for API servers on IPv6 addresses (#48) 2022-09-10 12:57:38 -05:00

Sample IPv6 configuration for k3s-ansible

This scenario contains a cluster configuration which is IPv6 first, but still supports dual-stack networking with IPv4 for most things. This means:

  • The API server VIP is an IPv6 address.
  • The MetalLB pool consists of both IPv4 and IPv4 addresses.
  • Nodes as well as cluster-internal resources (pods and services) are accessible via IPv4 as well as IPv6.

Network design

All IPv6 addresses used in this scenario share a single /48 prefix: fdad:bad:ba55. The following subnets are used:

  • fdad:bad:ba55:0::/64 is the subnet which contains the cluster components meant for external access. That includes:

    • The VIP for the Kubernetes API server: fdad:bad:ba55::333
    • Services load-balanced by MetalLB: fdad:bad:ba55::1b:0/112
    • Cluster nodes: fdad:bad:ba55::de:0/112
    • The host executing Vagrant: fdad:bad:ba55::1

    In a home lab setup, this might be your LAN.

  • fdad:bad:ba55:4200::/56 is used internally by the cluster for pods.

  • fdad:bad:ba55:4300::/108 is used internally by the cluster for services.

IPv4 networking is also available:

  • The nodes have addresses inside 192.168.123.0/24. MetalLB also has a bit of address space in this range: 192.168.123.80-192.168.123.90
  • For pods and services, the k3s defaults (10.42.0.0/16 and 10.43.0.0/16) are used.

Note that the host running Vagrant is not part any of these IPv4 networks.