mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-09-06 19:01:38 +00:00
@@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
"github.com/woodpecker-ci/woodpecker/pipeline/backend/common"
|
"github.com/woodpecker-ci/woodpecker/pipeline/backend/common"
|
||||||
"github.com/woodpecker-ci/woodpecker/pipeline/backend/types"
|
"github.com/woodpecker-ci/woodpecker/pipeline/backend/types"
|
||||||
"golang.org/x/exp/maps"
|
"golang.org/x/exp/maps"
|
||||||
@@ -94,16 +95,18 @@ func Pod(namespace string, step *types.Step, labels, annotations map[string]stri
|
|||||||
labels["step"] = podName
|
labels["step"] = podName
|
||||||
|
|
||||||
var nodeSelector map[string]string
|
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]
|
arch := strings.Split(platform, "/")[1]
|
||||||
nodeSelector = map[string]string{v1.LabelArchStable: arch}
|
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
|
beOptNodeSelector := step.BackendOptions.Kubernetes.NodeSelector
|
||||||
if len(beOptNodeSelector) > 0 {
|
if len(beOptNodeSelector) > 0 {
|
||||||
if len(nodeSelector) == 0 {
|
if len(nodeSelector) == 0 {
|
||||||
nodeSelector = beOptNodeSelector
|
nodeSelector = beOptNodeSelector
|
||||||
} else {
|
} else {
|
||||||
|
log.Trace().Msgf("Appending labels to the node selector from the backend options: %v", beOptNodeSelector)
|
||||||
maps.Copy(nodeSelector, beOptNodeSelector)
|
maps.Copy(nodeSelector, beOptNodeSelector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user