mirror of
https://github.com/techno-tim/k3s-ansible.git
synced 2026-08-08 23:13:19 +02:00
287d8b7a27
* feat(kube-vip): add endpoint override for the internal listening address Add a kube_vip_endpoint variable so the address kube-vip binds and listens on can differ from the announced apiserver_endpoint. This is useful for complex routing and site-to-site tunnels where the VIP kube-vip advertises over ARP differs from the address it listens on internally. - roles/k3s_server/templates/vip.yaml.j2: use kube_vip_endpoint (defaulting to apiserver_endpoint) for the `address` env and for deriving `vip_subnet` - roles/k3s_server/defaults/main.yml: add kube_vip_endpoint default (null) - roles/k3s_server/meta/main.yml: add kube_vip_endpoint argument_spec - inventory/sample/group_vars/all.yml: document the new sample variable - README.md: document the kube_vip_endpoint option - .github/scripts/test-kube-vip-manifest.py: extend regression test to cover the default (apiserver_endpoint) and the override case Closes #221 * chore(ci): extend molecule job timeout to 3 hours The default scenario occasionally takes longer than 150 minutes on the shared nested-virt runner (k3s agent notify-wait can exceed the limit under load), and a single timeout aborts the whole run before the other four scenarios execute. Raise timeout-minutes from 150 to 180 so a slow-but-progressing run completes instead of aborting. The default scenario remains first in the matrix so a failure surfaces fastest. * fix(kube-vip): fall back on null kube_vip_endpoint and cover it in the test - vip_subnet and address use default(apiserver_endpoint, true) so the null role default falls back to the apiserver endpoint instead of rendering an empty/invalid address and subnet - change the manifest regression test default case to pass kube_vip_endpoint as None so it pins the real runtime null condition and fails fast on this regression rather than timing out in CI
48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
---
|
|
extra_server_args: ""
|
|
|
|
k3s_kubectl_binary: k3s kubectl
|
|
|
|
group_name_master: master
|
|
|
|
kube_vip_arp: true
|
|
kube_vip_iface:
|
|
kube_vip_endpoint:
|
|
kube_vip_cloud_provider_tag_version: v0.0.12
|
|
kube_vip_tag_version: v1.2.2
|
|
|
|
kube_vip_bgp: false
|
|
kube_vip_bgp_routerid: 127.0.0.1
|
|
kube_vip_bgp_as: "64513"
|
|
kube_vip_bgp_peeraddress: 192.168.30.1
|
|
kube_vip_bgp_peeras: "64512"
|
|
|
|
kube_vip_bgp_peers: []
|
|
kube_vip_bgp_peers_groups: ['k3s_master']
|
|
|
|
metal_lb_controller_tag_version: v0.16.0
|
|
metal_lb_speaker_tag_version: v0.16.0
|
|
metal_lb_type: native
|
|
|
|
# Shared retry/delay for remote manifest and asset downloads. The CI runner's
|
|
# resolver intermittently times out on GitHub-hosted domains (helm.cilium.io,
|
|
# raw.githubusercontent.com, github.com), so retry transient DNS/network failures.
|
|
download_retries: 5
|
|
download_delay: 10
|
|
|
|
retry_count: 20
|
|
|
|
# yamllint disable rule:line-length
|
|
server_init_args: >-
|
|
{% if groups[group_name_master | default('master')] | length > 1 %}
|
|
{% if ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname'] %}
|
|
--cluster-init
|
|
{% else %}
|
|
--server https://{{ hostvars[groups[group_name_master | default('master')][0]].k3s_node_ip | split(",") | first | ansible.utils.ipwrap }}:6443
|
|
{% endif %}
|
|
--token {{ k3s_token | replace('%', '%%') }}
|
|
{% endif %}
|
|
{{ extra_server_args }}
|
|
|
|
systemd_dir: /etc/systemd/system
|