Skip to content

Commit 5bed6dc

Browse files
committed
feat: dependencies default order strategy
1 parent 30c229f commit 5bed6dc

File tree

6 files changed

+26
-8
lines changed

6 files changed

+26
-8
lines changed

e2e/common/misc/rest_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func TestRunRest(t *testing.T) {
6262
name := RandomizedSuffixName("Peter")
6363
route := Route(t, ctx, ns, "rest-consumer")
6464
g.Eventually(route, TestTimeoutShort).ShouldNot(BeNil())
65-
g.Eventually(RouteStatus(t, ctx, ns, "rest-consumer"), TestTimeoutMedium).Should(Equal("True"))
65+
g.Eventually(RouteStatus(t, ctx, ns, "rest-consumer")).Should(Equal("True"))
6666
url := fmt.Sprintf("http://%s/customers/%s", route().Spec.Host, name)
6767
g.Eventually(httpRequest(url), TestTimeoutMedium).Should(Equal(fmt.Sprintf("%s Doe", name)))
6868
g.Eventually(IntegrationLogs(t, ctx, ns, "rest-consumer"), TestTimeoutShort).Should(ContainSubstring(fmt.Sprintf("get %s", name)))

e2e/common/traits/builder_test.go

+12-4
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ func TestBuilderTrait(t *testing.T) {
4040
WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
4141
t.Run("Run build strategy routine", func(t *testing.T) {
4242
name := RandomizedSuffixName("java")
43-
g.Expect(KamelRun(t, ctx, ns, "files/Java.java", "--name", name, "-t", "builder.order-strategy=sequential", "-t", "builder.strategy=routine").Execute()).To(Succeed())
43+
g.Expect(KamelRun(t, ctx, ns, "files/Java.java", "--name", name,
44+
// This is required in order to avoid reusing a Kit already existing (which is the default behavior)
45+
"--build-property", "strategy=sequential",
46+
"-t", "builder.order-strategy=sequential",
47+
).Execute()).To(Succeed())
4448

4549
g.Eventually(IntegrationPodPhase(t, ctx, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
4650
g.Eventually(IntegrationConditionStatus(t, ctx, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
@@ -66,7 +70,8 @@ func TestBuilderTrait(t *testing.T) {
6670
"--name", name,
6771
// This is required in order to avoid reusing a Kit already existing (which is the default behavior)
6872
"--build-property", "strategy=dependencies",
69-
"-t", "builder.order-strategy=dependencies").Execute()).To(Succeed())
73+
"-t", "builder.order-strategy=dependencies",
74+
).Execute()).To(Succeed())
7075

7176
g.Eventually(IntegrationPodPhase(t, ctx, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
7277
g.Eventually(IntegrationConditionStatus(t, ctx, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
@@ -133,7 +138,6 @@ func TestBuilderTrait(t *testing.T) {
133138
builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
134139

135140
g.Eventually(BuildConfig(t, ctx, integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyPod))
136-
g.Eventually(BuildConfig(t, ctx, integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategySequential))
137141
g.Eventually(BuildConfig(t, ctx, integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal("500m"))
138142
g.Eventually(BuildConfig(t, ctx, integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal("1000m"))
139143
g.Eventually(BuildConfig(t, ctx, integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal("2Gi"))
@@ -150,7 +154,11 @@ func TestBuilderTrait(t *testing.T) {
150154

151155
t.Run("Run custom pipeline task", func(t *testing.T) {
152156
name := RandomizedSuffixName("java-pipeline")
153-
g.Expect(KamelRun(t, ctx, ns, "files/Java.java", "--name", name, "-t", "builder.tasks=custom1;alpine;tree", "-t", "builder.tasks=custom2;alpine;cat maven/pom.xml", "-t", "builder.strategy=pod").Execute()).To(Succeed())
157+
g.Expect(KamelRun(t, ctx, ns, "files/Java.java", "--name", name,
158+
"-t", "builder.tasks=custom1;alpine;tree",
159+
"-t", "builder.tasks=custom2;alpine;cat maven/pom.xml",
160+
"-t", "builder.strategy=pod",
161+
).Execute()).To(Succeed())
154162

155163
g.Eventually(IntegrationPodPhase(t, ctx, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
156164
g.Eventually(IntegrationConditionStatus(t, ctx, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))

pkg/apis/camel/v1/trait/builder.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type BuilderTrait struct {
3636
BaseImage string `property:"base-image" json:"baseImage,omitempty"`
3737
// Use the incremental image build option, to reuse existing containers (default `true`)
3838
IncrementalImageBuild *bool `property:"incremental-image-build" json:"incrementalImageBuild,omitempty"`
39-
// The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`)
39+
// The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default is the platform default)
4040
// +kubebuilder:validation:Enum=dependencies;fifo;sequential
4141
OrderStrategy string `property:"order-strategy" json:"orderStrategy,omitempty"`
4242
// When using `pod` strategy, the minimum amount of CPU required by the pod builder.

pkg/platform/defaults.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func ConfigureDefaults(ctx context.Context, c client.Client, p *v1.IntegrationPl
9090
}
9191

9292
if p.Status.Build.BuildConfiguration.OrderStrategy == "" {
93-
p.Status.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategySequential
93+
p.Status.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategyDependencies
9494
log.Debugf("Integration Platform %s [%s]: setting build order strategy %s", p.Name, p.Namespace, p.Status.Build.BuildConfiguration.OrderStrategy)
9595
}
9696

pkg/platform/defaults_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestIntegrationPlatformDefaults(t *testing.T) {
4949
assert.Equal(t, v1.IntegrationPlatformClusterKubernetes, ip.Status.Cluster)
5050
assert.Equal(t, v1.TraitProfile(""), ip.Status.Profile)
5151
assert.Equal(t, v1.BuildStrategyRoutine, ip.Status.Build.BuildConfiguration.Strategy)
52-
assert.Equal(t, v1.BuildOrderStrategySequential, ip.Status.Build.BuildConfiguration.OrderStrategy)
52+
assert.Equal(t, v1.BuildOrderStrategyDependencies, ip.Status.Build.BuildConfiguration.OrderStrategy)
5353
assert.Equal(t, defaults.BaseImage(), ip.Status.Build.BaseImage)
5454
assert.Equal(t, defaults.LocalRepository, ip.Status.Build.Maven.LocalRepository)
5555
assert.Equal(t, int32(3), ip.Status.Build.MaxRunningBuilds) // default for build strategy routine

pkg/trait/builder_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -684,3 +684,13 @@ func TestBuilderTraitPlatforms(t *testing.T) {
684684

685685
assert.Equal(t, []string{"linux/amd64", "linux/arm64"}, env.Pipeline[2].Jib.Configuration.ImagePlatforms)
686686
}
687+
688+
func TestBuilderTraitOrderStrategy(t *testing.T) {
689+
env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyRoutine)
690+
builderTrait := createNominalBuilderTraitTest()
691+
builderTrait.OrderStrategy = "fifo"
692+
err := builderTrait.Apply(env)
693+
require.NoError(t, err)
694+
695+
assert.Equal(t, v1.BuildOrderStrategyFIFO, env.Pipeline[0].Builder.Configuration.OrderStrategy)
696+
}

0 commit comments

Comments
 (0)