You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2023/05/09 12:36:17 UTC
[camel-k] branch release-1.10.x updated: Add klb to olm_upgrade_test - branch 1.10.x
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch release-1.10.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/release-1.10.x by this push:
new 65b286b01 Add klb to olm_upgrade_test - branch 1.10.x
65b286b01 is described below
commit 65b286b012ff37c7ac524d379fa68918d62e5147
Author: Lucie Krejcirova <lf...@redhat.com>
AuthorDate: Thu May 4 10:32:53 2023 +0200
Add klb to olm_upgrade_test - branch 1.10.x
---
e2e/namespace/upgrade/olm_upgrade_test.go | 49 +++++++++++++++++--------------
e2e/support/test_support.go | 12 +++++---
2 files changed, 35 insertions(+), 26 deletions(-)
diff --git a/e2e/namespace/upgrade/olm_upgrade_test.go b/e2e/namespace/upgrade/olm_upgrade_test.go
index 19e140931..c86a7ddb9 100644
--- a/e2e/namespace/upgrade/olm_upgrade_test.go
+++ b/e2e/namespace/upgrade/olm_upgrade_test.go
@@ -24,6 +24,7 @@ package common
import (
"fmt"
+ "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
"os"
"testing"
"time"
@@ -101,7 +102,7 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
// IntegrationPlatform should match at least on the version prefix
// CSV patch version can be increased with the OperatorHub respin of the same Camel K release
var prevIPVersionPrefix string
- var newIPVersionPrefix string
+ var newIPVersionMajorMinorPatch string
prevCSVVersion = clusterServiceVersion(noAdditionalConditions, ns)().Spec.Version
prevIPVersionPrefix = fmt.Sprintf("%d.%d", prevCSVVersion.Version.Major, prevCSVVersion.Version.Minor)
@@ -111,16 +112,24 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
Eventually(OperatorPodPhase(ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
// Check the IntegrationPlatform has been reconciled
+ t.Logf("Platform version: %s", PlatformVersion(ns)())
Eventually(PlatformVersion(ns)).Should(ContainSubstring(prevIPVersionPrefix))
name := "yaml"
Expect(Kamel("run", "-n", ns, "files/yaml.yaml").Execute()).To(Succeed())
+ kbindName := "timer-to-log"
+ Expect(KamelBind(ns, "timer-source?message=Hello", "log-sink", "--name", kbindName).Execute()).To(Succeed())
// Check the Integration runs correctly
Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
+ Eventually(KameletBindingConditionStatus(ns, kbindName, v1alpha1.KameletBindingConditionReady), TestTimeoutShort).
+ Should(Equal(corev1.ConditionTrue))
+ Eventually(IntegrationPodPhase(ns, kbindName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+ Eventually(IntegrationConditionStatus(ns, kbindName, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
// Check the Integration version matches that of the current operator
Expect(IntegrationVersion(ns, name)()).To(ContainSubstring(prevIPVersionPrefix))
+ Expect(IntegrationVersion(ns, kbindName)()).To(ContainSubstring(prevIPVersionPrefix))
t.Run("OLM upgrade", func(t *testing.T) {
// Trigger Camel K operator upgrade by updating the CatalogSource with the new index image
@@ -139,11 +148,6 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
Expect(subscription.Spec.Channel).To(Equal(newUpdateChannel))
}
- // Check the previous CSV is being replaced
- Eventually(clusterServiceVersionPhase(func(csv olm.ClusterServiceVersion) bool {
- return csv.Spec.Version.Version.String() == prevCSVVersion.Version.String()
- }, ns), TestTimeoutMedium).Should(Equal(olm.CSVPhaseReplacing))
-
// The new CSV is installed
Eventually(clusterServiceVersionPhase(func(csv olm.ClusterServiceVersion) bool {
return csv.Spec.Version.Version.String() != prevCSVVersion.Version.String()
@@ -155,7 +159,7 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
}, ns), TestTimeoutMedium).Should(BeNil())
newCSVVersion = clusterServiceVersion(noAdditionalConditions, ns)().Spec.Version
- newIPVersionPrefix = fmt.Sprintf("%d.%d", newCSVVersion.Version.Major, newCSVVersion.Version.Minor)
+ newIPVersionMajorMinorPatch = fmt.Sprintf("%d.%d.%d", newCSVVersion.Version.Major, newCSVVersion.Version.Minor, newCSVVersion.Version.Patch)
Expect(prevCSVVersion.Version.String()).NotTo(Equal(newCSVVersion.Version.String()))
@@ -163,7 +167,7 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
Eventually(OperatorImage(ns), TestTimeoutShort).Should(Equal(defaults.OperatorImage()))
// Check the IntegrationPlatform has been reconciled
- Eventually(PlatformVersion(ns)).Should(ContainSubstring(newIPVersionPrefix))
+ Eventually(PlatformVersion(ns)).Should(ContainSubstring(newIPVersionMajorMinorPatch))
})
t.Run("Integration upgrade", func(t *testing.T) {
@@ -174,42 +178,43 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
Consistently(IntegrationVersion(ns, name), 5*time.Second, 1*time.Second).Should(ContainSubstring(prevIPVersionPrefix))
// Rebuild the Integration
- Expect(Kamel("rebuild", name, "-n", ns).Execute()).To(Succeed())
+ Expect(Kamel("rebuild", "--all", "-n", ns).Execute()).To(Succeed())
+ Eventually(KameletBindingConditionStatus(ns, kbindName, v1alpha1.KameletBindingConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
// Check the Integration runs correctly
Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
// Check the Integration version has been upgraded
- Eventually(IntegrationVersion(ns, name)).Should(ContainSubstring(newIPVersionPrefix))
+ Eventually(IntegrationVersion(ns, name)).Should(ContainSubstring(newIPVersionMajorMinorPatch))
// Check the previous kit is not garbage collected (skip Build - present in case of respin)
prevCSVVersionMajorMinorPatch := fmt.Sprintf("%d.%d.%d",
prevCSVVersion.Version.Major, prevCSVVersion.Version.Minor, prevCSVVersion.Version.Patch)
- Eventually(Kits(ns, KitWithVersion(prevCSVVersionMajorMinorPatch))).Should(HaveLen(1))
+ Eventually(Kits(ns, KitWithVersionPrefix(prevCSVVersionMajorMinorPatch))).Should(HaveLen(2))
// Check a new kit is created with the current version
- Eventually(Kits(ns, KitWithVersion(defaults.Version)),
- TestTimeoutMedium).Should(HaveLen(1))
+ Eventually(Kits(ns, KitWithVersionPrefix(newIPVersionMajorMinorPatch))).Should(HaveLen(2))
// Check the new kit is ready
- Eventually(Kits(ns, KitWithVersion(defaults.Version), KitWithPhase(v1.IntegrationKitPhaseReady)),
- TestTimeoutMedium).Should(HaveLen(1))
+ Eventually(Kits(ns, KitWithVersionPrefix(newIPVersionMajorMinorPatch), KitWithPhase(v1.IntegrationKitPhaseReady)),
+ TestTimeoutMedium).Should(HaveLen(2))
- kit := Kits(ns, KitWithVersion(defaults.Version))()[0]
+ kit := Kits(ns, KitWithVersionPrefix(newIPVersionMajorMinorPatch), KitWithLabels(map[string]string{"camel.apache.org/created.by.name": name}))()[0]
+ kitKbind := Kits(ns, KitWithVersionPrefix(newIPVersionMajorMinorPatch), KitWithLabels(map[string]string{"camel.apache.org/created.by.name": kbindName}))()[0]
// Check the Integration uses the new kit
Eventually(IntegrationKit(ns, name), TestTimeoutMedium).Should(Equal(kit.Name))
+ Eventually(IntegrationKit(ns, kbindName), TestTimeoutMedium).Should(Equal(kitKbind.Name))
// Check the Integration Pod uses the new image
Eventually(IntegrationPodImage(ns, name)).Should(Equal(kit.Status.Image))
+ Eventually(IntegrationPodImage(ns, kbindName)).Should(Equal(kitKbind.Status.Image))
// Check the Integration runs correctly
Eventually(IntegrationPodPhase(ns, name)).Should(Equal(corev1.PodRunning))
+ Eventually(IntegrationPodPhase(ns, kbindName)).Should(Equal(corev1.PodRunning))
Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
-
- // Clean up
- Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
- Expect(Kamel("uninstall", "-n", ns).Execute()).To(Succeed())
- // Clean up cluster-wide resources that are not removed by OLM
- Expect(Kamel("uninstall", "--all", "-n", ns, "--olm=false").Execute()).To(Succeed())
+ Eventually(IntegrationConditionStatus(ns, kbindName, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
})
+ // Clean up
+ Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
})
}
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index b006486d7..dde3be530 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -107,11 +107,9 @@ func setTestLocus(t *testing.T) {
testLocus = t
}
-//
// Only panic the test if absolutely necessary and there is
// no test locus. In most cases, the test should fail gracefully
// using the test locus to error out and fail now.
-//
func failTest(err error) {
if testLocus != nil {
testLocus.Error(err)
@@ -726,9 +724,7 @@ func ServiceType(ns string, name string) func() corev1.ServiceType {
}
}
-//
// Find the service in the given namespace with the given type
-//
func ServicesByType(ns string, svcType corev1.ServiceType) func() []corev1.Service {
return func() []corev1.Service {
svcs := []corev1.Service{}
@@ -1058,6 +1054,14 @@ func KitWithVersion(version string) KitFilter {
}
}
+func KitWithVersionPrefix(versionPrefix string) KitFilter {
+ return &kitFilter{
+ filter: func(kit *v1.IntegrationKit) bool {
+ return strings.HasPrefix(kit.Status.Version, versionPrefix)
+ },
+ }
+}
+
func KitWithLabels(kitLabels map[string]string) ctrl.ListOption {
return ctrl.MatchingLabelsSelector{
Selector: labels.Set(kitLabels).AsSelector(),