This is an automated email from the ASF dual-hosted git repository.
astefanutti 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 62d2a54 fix: Handle Integration changes while waiting for Kit build
62d2a54 is described below
commit 62d2a54dfe8d4605534218f4323d3f6327bead20
Author: Antonin Stefanutti <[email protected]>
AuthorDate: Fri Oct 1 17:15:27 2021 +0200
fix: Handle Integration changes while waiting for Kit build
---
pkg/controller/integration/build_kit.go | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/pkg/controller/integration/build_kit.go
b/pkg/controller/integration/build_kit.go
index 17e3c85..d357940 100644
--- a/pkg/controller/integration/build_kit.go
+++ b/pkg/controller/integration/build_kit.go
@@ -24,6 +24,7 @@ import (
v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
"github.com/apache/camel-k/pkg/trait"
+ "github.com/apache/camel-k/pkg/util/digest"
"github.com/apache/camel-k/pkg/util/kubernetes"
)
@@ -46,6 +47,18 @@ func (action *buildKitAction) CanHandle(integration
*v1.Integration) bool {
func (action *buildKitAction) Handle(ctx context.Context, integration
*v1.Integration) (*v1.Integration, error) {
// TODO: we may need to add a timeout strategy, i.e give up after some
time in case of an unrecoverable error.
+ // Check if the Integration has changed and requires a rebuild
+ hash, err := digest.ComputeForIntegration(integration)
+ if err != nil {
+ return nil, err
+ }
+ if hash != integration.Status.Digest {
+ action.L.Info("Integration needs a rebuild")
+ integration.Initialize()
+ integration.Status.Digest = hash
+ return integration, nil
+ }
+
if integration.Status.IntegrationKit != nil {
kit, err := kubernetes.GetIntegrationKit(ctx, action.client,
integration.Status.IntegrationKit.Name,
integration.Status.IntegrationKit.Namespace)
if err != nil {