kubernetes: add node labels customization

Sem-Ver: feature
Change-Id: I3bd826872bf9511170072810b4f24b6ced2ff0de
diff --git a/releasenotes/notes/custom-node-labels-6a86575cf6a68ad3.yaml b/releasenotes/notes/custom-node-labels-6a86575cf6a68ad3.yaml
new file mode 100644
index 0000000..24942da
--- /dev/null
+++ b/releasenotes/notes/custom-node-labels-6a86575cf6a68ad3.yaml
@@ -0,0 +1,4 @@
+---
+features:
+  - Add ability to include custom node labels for scenarios where you might want
+    to distribute workloads across different nodes.
diff --git a/roles/kubernetes/defaults/main.yml b/roles/kubernetes/defaults/main.yml
index 7e0d154..c73d385 100644
--- a/roles/kubernetes/defaults/main.yml
+++ b/roles/kubernetes/defaults/main.yml
@@ -54,3 +54,19 @@
 kubernetes_control_plane_group: controllers
 
                                                                    # ]]]
+# .. envvar:: kubernetes_control_plane_group [[[
+#
+# Labels to apply for all control plane nodes
+kubernetes_control_plane_labels:
+  openstack-control-plane: enabled
+  openvswitch: enabled
+
+                                                                   # ]]]
+# .. envvar:: kubernetes_compute_node_labels [[[
+#
+# Labels to apply for all compute nodes
+kubernetes_compute_node_labels:
+  openstack-compute-node: enabled
+  openvswitch: enabled
+
+                                                                   # ]]]
diff --git a/roles/kubernetes/tasks/main.yml b/roles/kubernetes/tasks/main.yml
index 0195921..d6fb81c 100644
--- a/roles/kubernetes/tasks/main.yml
+++ b/roles/kubernetes/tasks/main.yml
@@ -114,9 +114,7 @@
     name: "{{ inventory_hostname_short }}"
     definition:
       metadata:
-        labels:
-          openstack-control-plane: enabled
-          openvswitch: enabled
+        labels: "{{ kubernetes_control_plane_labels }}"
   when:
     - inventory_hostname in groups['controllers']
 
@@ -128,8 +126,6 @@
     name: "{{ inventory_hostname_short }}"
     definition:
       metadata:
-        labels:
-          openstack-compute-node: enabled
-          openvswitch: enabled
+        labels: "{{ kubernetes_compute_node_labels }}"
   when:
     - inventory_hostname in groups['computes']