From ea65e52d0d01a45180ac1fb484e6e33e239513b9 Mon Sep 17 00:00:00 2001 From: Ioannis Canellos Date: Tue, 24 Jan 2023 19:13:14 +0200 Subject: [PATCH] fix: workaround decorator ordering --- .../ChangeDeploymentTriggerDecorator.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/ChangeDeploymentTriggerDecorator.java b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/ChangeDeploymentTriggerDecorator.java index badd3dd41eb384..de9e4d98d4c5d9 100644 --- a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/ChangeDeploymentTriggerDecorator.java +++ b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/ChangeDeploymentTriggerDecorator.java @@ -1,5 +1,9 @@ package io.quarkus.kubernetes.deployment; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + import io.dekorate.kubernetes.decorator.Decorator; import io.dekorate.openshift.decorator.ApplyDeploymentTriggerDecorator; @@ -11,6 +15,13 @@ public ChangeDeploymentTriggerDecorator(String containerName, String imageStream @Override public Class[] after() { - return new Class[] { ApplyDeploymentTriggerDecorator.class, RemoveDeploymentTriggerDecorator.class }; + //There is a series of issues in dekorate that breaks ordering of the ApplyDeploymentTriggerDecorator. + //The problem is that the ApplyDeploymentTrigger decorator depends any a lot of irrelevant Decorators + //So, this one needs to inherit the same decorator or else we can't guarantee that its executed after + //the ApplyDeploymentTriggerDecorator. + List> classes = new ArrayList<>(Arrays.asList(super.after())); + classes.add(ApplyDeploymentTriggerDecorator.class); + classes.add(RemoveBuilderImageResourceDecorator.class); + return classes.toArray(new Class[classes.size()]); } }