From 1875e2a416d3d561f234e21662a43996bf49f141 Mon Sep 17 00:00:00 2001 From: Thomas Anderson <127358482+zc-devs@users.noreply.github.com> Date: Sun, 9 Jul 2023 20:22:50 +0300 Subject: [PATCH] Fix platform to node-selector mapping for k8s (#1963) Closes #1955 --- pipeline/backend/kubernetes/pod.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pipeline/backend/kubernetes/pod.go b/pipeline/backend/kubernetes/pod.go index 61a86ee5c..2d4b160d7 100644 --- a/pipeline/backend/kubernetes/pod.go +++ b/pipeline/backend/kubernetes/pod.go @@ -4,6 +4,7 @@ import ( "fmt" "strings" + "github.com/rs/zerolog/log" "github.com/woodpecker-ci/woodpecker/pipeline/backend/common" "github.com/woodpecker-ci/woodpecker/pipeline/backend/types" "golang.org/x/exp/maps" @@ -94,16 +95,18 @@ func Pod(namespace string, step *types.Step, labels, annotations map[string]stri labels["step"] = podName var nodeSelector map[string]string - if platform, exist := step.Environment["CI_SYSTEM_PLATFORM"]; exist { + platform, exist := step.Environment["CI_SYSTEM_ARCH"] + if exist && platform != "" { arch := strings.Split(platform, "/")[1] nodeSelector = map[string]string{v1.LabelArchStable: arch} + log.Trace().Msgf("Using the node selector from the Agent's platform: %v", nodeSelector) } - beOptNodeSelector := step.BackendOptions.Kubernetes.NodeSelector if len(beOptNodeSelector) > 0 { if len(nodeSelector) == 0 { nodeSelector = beOptNodeSelector } else { + log.Trace().Msgf("Appending labels to the node selector from the backend options: %v", beOptNodeSelector) maps.Copy(nodeSelector, beOptNodeSelector) } }