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 }