This is an automated email from the ASF dual-hosted git repository.

tsato 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 3f632b042 feat(controller): add Ready condition to IntegrationPlatform
3f632b042 is described below

commit 3f632b042b1d77d5f1eae428b6ac31e00542fc89
Author: Tadayoshi Sato <sato.tadayo...@gmail.com>
AuthorDate: Thu Oct 27 18:04:23 2022 +0900

    feat(controller): add Ready condition to IntegrationPlatform
---
 e2e/namespace/install/cli/install_test.go          |  3 ++
 e2e/support/test_support.go                        | 32 ++++++++++++++++++----
 pkg/apis/camel/v1/integrationplatform_types.go     |  6 ++++
 .../camel/v1/integrationplatform_types_support.go  |  4 +--
 pkg/controller/integrationplatform/create.go       | 12 ++++++--
 pkg/controller/integrationplatform/monitor.go      |  4 +--
 6 files changed, 49 insertions(+), 12 deletions(-)

diff --git a/e2e/namespace/install/cli/install_test.go 
b/e2e/namespace/install/cli/install_test.go
index f3a861a2b..ff0b98e17 100644
--- a/e2e/namespace/install/cli/install_test.go
+++ b/e2e/namespace/install/cli/install_test.go
@@ -32,6 +32,7 @@ import (
 
        . "github.com/onsi/gomega"
        "github.com/stretchr/testify/assert"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/e2e/support"
        v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -48,6 +49,8 @@ func TestBasicInstallation(t *testing.T) {
                Expect(KamelInstallWithID(operatorID, 
ns).Execute()).To(Succeed())
                Eventually(OperatorPod(ns)).ShouldNot(BeNil())
                Eventually(Platform(ns)).ShouldNot(BeNil())
+               Eventually(PlatformConditionStatus(ns, 
v1.IntegrationPlatformConditionReady), TestTimeoutShort).
+                       Should(Equal(corev1.ConditionTrue))
        })
 }
 
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index f4bfa833f..d6202f71d 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -647,11 +647,7 @@ func IntegrationCondition(ns string, name string, 
conditionType v1.IntegrationCo
                if it == nil {
                        return nil
                }
-               c := it.Status.GetCondition(conditionType)
-               if c == nil {
-                       return nil
-               }
-               return c
+               return it.Status.GetCondition(conditionType)
        }
 }
 
@@ -1538,6 +1534,32 @@ func PlatformPhase(ns string) func() 
v1.IntegrationPlatformPhase {
        }
 }
 
+func PlatformCondition(
+       ns string,
+       conditionType v1.IntegrationPlatformConditionType,
+) func() *v1.IntegrationPlatformCondition {
+       return func() *v1.IntegrationPlatformCondition {
+               p := Platform(ns)()
+               if p == nil {
+                       return nil
+               }
+               return p.Status.GetCondition(conditionType)
+       }
+}
+
+func PlatformConditionStatus(
+       ns string,
+       conditionType v1.IntegrationPlatformConditionType,
+) func() corev1.ConditionStatus {
+       return func() corev1.ConditionStatus {
+               c := PlatformCondition(ns, conditionType)()
+               if c == nil {
+                       return "Unknown"
+               }
+               return c.Status
+       }
+}
+
 func PlatformProfile(ns string) func() v1.TraitProfile {
        return func() v1.TraitProfile {
                p := Platform(ns)()
diff --git a/pkg/apis/camel/v1/integrationplatform_types.go 
b/pkg/apis/camel/v1/integrationplatform_types.go
index 8f4551841..261f72c3a 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -197,6 +197,12 @@ const (
        IntegrationPlatformPhaseError IntegrationPlatformPhase = "Error"
        // IntegrationPlatformPhaseDuplicate when the IntegrationPlatform is 
duplicated
        IntegrationPlatformPhaseDuplicate IntegrationPlatformPhase = "Duplicate"
+
+       // IntegrationPlatformConditionReady is the condition if the 
IntegrationPlatform is ready.
+       IntegrationPlatformConditionReady = "Ready"
+
+       // IntegrationPlatformConditionCreatedReason represents the reason that 
the IntegrationPlatform is created.
+       IntegrationPlatformConditionCreatedReason = "IntegrationPlatformCreated"
 )
 
 // IntegrationPlatformCondition describes the state of a resource at a certain 
point.
diff --git a/pkg/apis/camel/v1/integrationplatform_types_support.go 
b/pkg/apis/camel/v1/integrationplatform_types_support.go
index 32d3ccc34..0d9b0a2e4 100644
--- a/pkg/apis/camel/v1/integrationplatform_types_support.go
+++ b/pkg/apis/camel/v1/integrationplatform_types_support.go
@@ -109,7 +109,7 @@ func (in *IntegrationPlatformStatus) GetCondition(condType 
IntegrationPlatformCo
        return nil
 }
 
-// SetCondition --
+// SetCondition sets the condition with the given status, reason, and message.
 func (in *IntegrationPlatformStatus) SetCondition(condType 
IntegrationPlatformConditionType, status corev1.ConditionStatus, reason string, 
message string) {
        in.SetConditions(IntegrationPlatformCondition{
                Type:               condType,
@@ -121,7 +121,7 @@ func (in *IntegrationPlatformStatus) SetCondition(condType 
IntegrationPlatformCo
        })
 }
 
-// SetErrorCondition --
+// SetErrorCondition sets the condition with the given reason and error 
message.
 func (in *IntegrationPlatformStatus) SetErrorCondition(condType 
IntegrationPlatformConditionType, reason string, err error) {
        in.SetConditions(IntegrationPlatformCondition{
                Type:               condType,
diff --git a/pkg/controller/integrationplatform/create.go 
b/pkg/controller/integrationplatform/create.go
index 91e725a36..e42a6a4c1 100644
--- a/pkg/controller/integrationplatform/create.go
+++ b/pkg/controller/integrationplatform/create.go
@@ -20,12 +20,13 @@ package integrationplatform
 import (
        "context"
 
-       platformutil "github.com/apache/camel-k/pkg/platform"
-       "github.com/apache/camel-k/pkg/resources"
-       "github.com/apache/camel-k/pkg/util/defaults"
+       corev1 "k8s.io/api/core/v1"
 
        v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
        "github.com/apache/camel-k/pkg/install"
+       platformutil "github.com/apache/camel-k/pkg/platform"
+       "github.com/apache/camel-k/pkg/resources"
+       "github.com/apache/camel-k/pkg/util/defaults"
 )
 
 // NewCreateAction returns a action that creates resources needed by the 
platform.
@@ -67,6 +68,11 @@ func (action *createAction) Handle(ctx context.Context, 
platform *v1.Integration
        }
 
        platform.Status.Phase = v1.IntegrationPlatformPhaseReady
+       platform.Status.SetCondition(
+               v1.IntegrationPlatformConditionReady,
+               corev1.ConditionTrue,
+               v1.IntegrationPlatformConditionCreatedReason,
+               "integration platform created")
 
        return platform, nil
 }
diff --git a/pkg/controller/integrationplatform/monitor.go 
b/pkg/controller/integrationplatform/monitor.go
index e2c7d0c99..68884f7a7 100644
--- a/pkg/controller/integrationplatform/monitor.go
+++ b/pkg/controller/integrationplatform/monitor.go
@@ -21,7 +21,7 @@ import (
        "context"
 
        v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-       platformutils "github.com/apache/camel-k/pkg/platform"
+       platformutil "github.com/apache/camel-k/pkg/platform"
        "github.com/apache/camel-k/pkg/util/defaults"
 )
 
@@ -50,7 +50,7 @@ func (action *monitorAction) Handle(ctx context.Context, 
platform *v1.Integratio
        }
 
        // Refresh applied configuration
-       if err := platformutils.ConfigureDefaults(ctx, action.client, platform, 
false); err != nil {
+       if err := platformutil.ConfigureDefaults(ctx, action.client, platform, 
false); err != nil {
                return nil, err
        }
 

Reply via email to