This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new ba142b9e7 fix(trait): builder configuration from platform
ba142b9e7 is described below
commit ba142b9e7d70f542729ea1534daa5879e8dc32ca
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Tue Sep 24 19:24:16 2024 +0200
fix(trait): builder configuration from platform
Closes #5838
---
pkg/trait/builder.go | 16 ++++++++++------
pkg/trait/builder_test.go | 18 ++++++++++++++++--
2 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index bb4cdc159..24d28d744 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -212,7 +212,11 @@ func (t *builderTrait) Apply(e *Environment) error {
var pipelineTasks []v1.Task
// task configuration resources
- tasksConf, err := t.parseTasksConf()
+ defaultBuildConf := &v1.BuildConfiguration{}
+ if e.Platform != nil {
+ defaultBuildConf = &e.Platform.Status.Build.BuildConfiguration
+ }
+ tasksConf, err := t.parseTasksConf(defaultBuildConf)
if err != nil {
return err
}
@@ -539,7 +543,7 @@ func taskConfOrDefault(tasksConf
map[string]*v1.BuildConfiguration, taskName str
return tasksConf[taskName]
}
-func (t *builderTrait) parseTasksConf() (map[string]*v1.BuildConfiguration,
error) {
+func (t *builderTrait) parseTasksConf(defaultBuildConf *v1.BuildConfiguration)
(map[string]*v1.BuildConfiguration, error) {
tasksConf := make(map[string]*v1.BuildConfiguration)
for _, t := range t.TasksRequestCPU {
@@ -550,7 +554,7 @@ func (t *builderTrait) parseTasksConf()
(map[string]*v1.BuildConfiguration, erro
taskName := splits[0]
taskResource := splits[1]
if tasksConf[taskName] == nil {
- tasksConf[taskName] = &v1.BuildConfiguration{}
+ tasksConf[taskName] = defaultBuildConf
}
tasksConf[taskName].RequestCPU = taskResource
}
@@ -563,7 +567,7 @@ func (t *builderTrait) parseTasksConf()
(map[string]*v1.BuildConfiguration, erro
taskName := splits[0]
taskResource := splits[1]
if tasksConf[taskName] == nil {
- tasksConf[taskName] = &v1.BuildConfiguration{}
+ tasksConf[taskName] = defaultBuildConf
}
tasksConf[taskName].RequestMemory = taskResource
}
@@ -576,7 +580,7 @@ func (t *builderTrait) parseTasksConf()
(map[string]*v1.BuildConfiguration, erro
taskName := splits[0]
taskResource := splits[1]
if tasksConf[taskName] == nil {
- tasksConf[taskName] = &v1.BuildConfiguration{}
+ tasksConf[taskName] = defaultBuildConf
}
tasksConf[taskName].LimitCPU = taskResource
}
@@ -589,7 +593,7 @@ func (t *builderTrait) parseTasksConf()
(map[string]*v1.BuildConfiguration, erro
taskName := splits[0]
taskResource := splits[1]
if tasksConf[taskName] == nil {
- tasksConf[taskName] = &v1.BuildConfiguration{}
+ tasksConf[taskName] = defaultBuildConf
}
tasksConf[taskName].LimitMemory = taskResource
}
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index aaa30c00f..0ba916693 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -389,7 +389,7 @@ func TestBuilderCustomTasksConfiguration(t *testing.T) {
builderTrait.TasksRequestMemory =
append(builderTrait.TasksRequestMemory, "package:8Gi")
builderTrait.TasksLimitMemory = append(builderTrait.TasksLimitMemory,
"spectrum:4Gi")
- tasksConf, err := builderTrait.parseTasksConf()
+ tasksConf, err := builderTrait.parseTasksConf(&v1.BuildConfiguration{})
require.NoError(t, err)
assert.Equal(t, 4, len(tasksConf))
@@ -403,7 +403,7 @@ func TestBuilderCustomTasksConfigurationError(t *testing.T)
{
builderTrait := createNominalBuilderTraitTest()
builderTrait.TasksLimitCPU = append(builderTrait.TasksLimitCPU, "syntax
error")
- _, err := builderTrait.parseTasksConf()
+ _, err := builderTrait.parseTasksConf(&v1.BuildConfiguration{})
require.Error(t, err)
assert.Equal(t, "could not parse syntax error, expected format
<task-name>:<task-resource>", err.Error())
@@ -594,6 +594,20 @@ func TestBuilderTasksFilterAndReorderCustomTasks(t
*testing.T) {
assert.Equal(t, []string{"builder", "my-custom-task", "package",
"my-custom-publish"}, pipelineTasks)
}
+func TestBuilderTasksNodeSelectorPlatformBuildStrategyPod(t *testing.T) {
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyPod)
+ builderTrait := createNominalBuilderTraitTest()
+ builderTrait.NodeSelector = map[string]string{
+ "kubernetes.io/arch": "amd64",
+ }
+
+ err := builderTrait.Apply(env)
+ require.NoError(t, err)
+ builderTask := getBuilderTask(env.Pipeline)
+ assert.NotNil(t, builderTask)
+ assert.Equal(t, map[string]string{"kubernetes.io/arch": "amd64"},
builderTask.Configuration.NodeSelector)
+}
+
func findCustomTaskByName(tasks []v1.Task, name string) v1.Task {
for _, t := range tasks {
if t.Custom != nil && t.Custom.Name == name {