diff --git a/defaults/main.yml b/defaults/main.yml index 1cd2452..bec3f89 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -51,3 +51,5 @@ k3s_server_admission_configuration: k3s_server_resource_creations: [] k3s_server_resource_patches: [] + +k3s_node_labels: {} diff --git a/molecule/rocky9/converge.yml b/molecule/rocky9/converge.yml index ab54e55..1c4ad0e 100644 --- a/molecule/rocky9/converge.yml +++ b/molecule/rocky9/converge.yml @@ -28,6 +28,8 @@ # type: Opaque # data: # token: "{{ hcloud_token | b64encode }}" + k3s_node_labels: + node.kubernetes.io/exclude-from-external-load-balancers: "true" pre_tasks: - name: Override host variables ansible.builtin.set_fact: diff --git a/molecule/rocky9/tests/test_default.py b/molecule/rocky9/tests/test_default.py index fb05278..0668b83 100644 --- a/molecule/rocky9/tests/test_default.py +++ b/molecule/rocky9/tests/test_default.py @@ -21,6 +21,13 @@ def test_k3s_node_ready(host): assert "rocky9-k3s:Ready=True;" in nodes +def test_k3s_node_labels(host): + jsonpth = '{.items[0].metadata.labels}' # noqa + nodes = host.run(f"k3s kubectl get nodes -o jsonpath='{jsonpth}'").stdout + + assert '"node.kubernetes.io/exclude-from-external-load-balancers":"true"' in nodes + + def test_k3s_cluster_ready(host): cluster = host.run("k3s kubectl get --raw='/readyz'").stdout diff --git a/tasks/setup.yml b/tasks/setup.yml index c4b5dec..c9ae158 100644 --- a/tasks/setup.yml +++ b/tasks/setup.yml @@ -68,7 +68,7 @@ state: patched definition: metadata: - labels: "{{ (__k3s_node_lables['control'] if k3s_server | bool else __k3s_node_lables['worker']) | combine(__k3s_node_lables['general']) }}" + labels: "{{ (__k3s_node_lables['control'] if k3s_server | bool else __k3s_node_lables['worker']) | combine(__k3s_node_lables['general'], k3s_node_labels) }}" delegate_to: "{{ hostvars[k3s_server_nodes[0]]['inventory_hostname'] }}" - name: Patch existing resources