From 1c5f657f976dc307e3dfa1227efded586a67846d Mon Sep 17 00:00:00 2001
From: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@proton.ch>
Date: Tue, 8 Aug 2023 10:54:15 +0200
Subject: [PATCH] tests/packet-ci: sanitize branch name for kubernetes labels
 (#10315)

'/' doesn't work in kubernetes label so we replace it.

Signed-off-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@proton.ch>
---
 tests/cloud_playbooks/roles/packet-ci/defaults/main.yml        | 3 +++
 .../cloud_playbooks/roles/packet-ci/tasks/cleanup-old-vms.yml  | 2 +-
 tests/cloud_playbooks/roles/packet-ci/tasks/create-vms.yml     | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/tests/cloud_playbooks/roles/packet-ci/defaults/main.yml b/tests/cloud_playbooks/roles/packet-ci/defaults/main.yml
index aad35de0e..17dd3d8b9 100644
--- a/tests/cloud_playbooks/roles/packet-ci/defaults/main.yml
+++ b/tests/cloud_playbooks/roles/packet-ci/defaults/main.yml
@@ -6,6 +6,9 @@ vm_cpu_sockets: 1
 vm_cpu_threads: 2
 vm_memory: 2048Mi
 
+# Replace invalid characters so that we can use the branch name in kubernetes labels
+branch_name_sane: "{{ branch | regex_replace('/', '-') }}"
+
 # Request/Limit allocation settings
 
 cpu_allocation_ratio: 0.5
diff --git a/tests/cloud_playbooks/roles/packet-ci/tasks/cleanup-old-vms.yml b/tests/cloud_playbooks/roles/packet-ci/tasks/cleanup-old-vms.yml
index cf81e81b5..052a44fd1 100644
--- a/tests/cloud_playbooks/roles/packet-ci/tasks/cleanup-old-vms.yml
+++ b/tests/cloud_playbooks/roles/packet-ci/tasks/cleanup-old-vms.yml
@@ -6,7 +6,7 @@
     kind: Namespace
     label_selectors:
       - cijobs = true
-      - branch = {{ branch }}
+      - branch = {{ branch_name_sane }}
   register: namespaces
 
 - name: Delete older namespaces
diff --git a/tests/cloud_playbooks/roles/packet-ci/tasks/create-vms.yml b/tests/cloud_playbooks/roles/packet-ci/tasks/create-vms.yml
index 688b580cd..4070b2402 100644
--- a/tests/cloud_playbooks/roles/packet-ci/tasks/create-vms.yml
+++ b/tests/cloud_playbooks/roles/packet-ci/tasks/create-vms.yml
@@ -3,7 +3,7 @@
 - name: "Create CI namespace {{ test_name }} for test vms"
   shell: |-
     kubectl create namespace {{ test_name }} &&
-      kubectl label namespace {{ test_name }} cijobs=true branch="{{ branch }}" pipeline_id="{{ pipeline_id }}"
+      kubectl label namespace {{ test_name }} cijobs=true branch="{{ branch_name_sane }}" pipeline_id="{{ pipeline_id }}"
   changed_when: false
 
 - name: "Create temp dir /tmp/{{ test_name }} for CI files"
-- 
GitLab