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/12/05 15:39:52 UTC

(camel-k) branch release-2.1.x updated (abe62dd7e -> 279b8ce75)

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

pcongiusti pushed a change to branch release-2.1.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git


    from abe62dd7e chore: nightly SBOM update
     new 8c99922c4 fix(e2e): Upgrade helm procedure test
     new 2976f800c fix(doc): Handle CRDs in helm upgrade/delete
     new 6c3faaa0b chore(e2e): Refactor resources number const
     new 279b8ce75 fix(e2e): Execute helm upgrade test only on main branch

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 e2e/install/kustomize/setup_test.go                | 26 ------
 .../setup_test.go => upgrade/helm_upgrade_test.go} | 98 ++++++++++++++++++----
 e2e/support/test_support.go                        | 24 ++++++
 helm/camel-k/README.md                             | 27 +++++-
 4 files changed, 130 insertions(+), 45 deletions(-)
 copy e2e/install/{helm/setup_test.go => upgrade/helm_upgrade_test.go} (52%)


(camel-k) 04/04: fix(e2e): Execute helm upgrade test only on main branch

Posted by pc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch release-2.1.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 279b8ce75d47649769f4e22de8aa8f7cb3a7fb4b
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Fri Dec 1 16:07:26 2023 +0100

    fix(e2e): Execute helm upgrade test only on main branch
---
 e2e/install/upgrade/helm_upgrade_test.go | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/e2e/install/upgrade/helm_upgrade_test.go b/e2e/install/upgrade/helm_upgrade_test.go
index bcbb7b4c2..b0ec7a029 100644
--- a/e2e/install/upgrade/helm_upgrade_test.go
+++ b/e2e/install/upgrade/helm_upgrade_test.go
@@ -23,6 +23,7 @@ limitations under the License.
 package upgrade
 
 import (
+	"errors"
 	"fmt"
 	"os"
 	"os/exec"
@@ -41,6 +42,13 @@ func TestHelmOperatorUpgrade(t *testing.T) {
 	KAMEL_INSTALL_REGISTRY := os.Getenv("KAMEL_INSTALL_REGISTRY")
 	// need to add last release version
 	releaseVersion := os.Getenv("KAMEL_K_TEST_RELEASE_VERSION")
+	// if the last released version chart is not present skip the test
+	releaseChart := fmt.Sprintf("../../../docs/charts/camel-k-%s.tgz", releaseVersion)
+	if _, err := os.Stat(releaseChart); errors.Is(err, os.ErrNotExist) {
+		t.Skip("last release version chart not found: skipping")
+		return
+	}
+
 	customImage := fmt.Sprintf("%s/apache/camel-k", KAMEL_INSTALL_REGISTRY)
 
 	os.Setenv("CAMEL_K_TEST_MAKE_DIR", "../../../")
@@ -57,7 +65,7 @@ func TestHelmOperatorUpgrade(t *testing.T) {
 				"helm",
 				"install",
 				"camel-k",
-				fmt.Sprintf("../../../docs/charts/camel-k-%s.tgz", releaseVersion),
+				releaseChart,
 				"--set",
 				fmt.Sprintf("platform.build.registry.address=%s", KAMEL_INSTALL_REGISTRY),
 				"--set",


(camel-k) 01/04: fix(e2e): Upgrade helm procedure test

Posted by pc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch release-2.1.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 8c99922c413059faf7013aa7abade12ca79ff588
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Thu Nov 23 16:11:02 2023 +0100

    fix(e2e): Upgrade helm procedure test
---
 e2e/install/kustomize/setup_test.go      |   5 --
 e2e/install/upgrade/helm_upgrade_test.go | 150 +++++++++++++++++++++++++++++++
 e2e/support/test_support.go              |   6 ++
 3 files changed, 156 insertions(+), 5 deletions(-)

diff --git a/e2e/install/kustomize/setup_test.go b/e2e/install/kustomize/setup_test.go
index 2c9fdb0d2..5b1058630 100644
--- a/e2e/install/kustomize/setup_test.go
+++ b/e2e/install/kustomize/setup_test.go
@@ -33,11 +33,6 @@ import (
 )
 
 const (
-	// v1.Build,          v1.Integration
-	// v1.IntegrationKit, v1.IntegrationPlatform
-	// v1.Kamelet,  v1.Pipe,
-	// v1alpha1.Kamelet, v1alpha1.KameletBinding
-	ExpectedCRDs = 8
 
 	// camel-k-operator,             camel-k-operator-events,
 	// camel-k-operator-knative,     camel-k-operator-leases,
diff --git a/e2e/install/upgrade/helm_upgrade_test.go b/e2e/install/upgrade/helm_upgrade_test.go
new file mode 100644
index 000000000..bcbb7b4c2
--- /dev/null
+++ b/e2e/install/upgrade/helm_upgrade_test.go
@@ -0,0 +1,150 @@
+//go:build integration
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package upgrade
+
+import (
+	"fmt"
+	"os"
+	"os/exec"
+	"testing"
+
+	. "github.com/apache/camel-k/v2/e2e/support"
+	"github.com/apache/camel-k/v2/pkg/util/defaults"
+	. "github.com/onsi/gomega"
+	corev1 "k8s.io/api/core/v1"
+)
+
+// WARNING: this test is not OLM specific but needs certain setting we provide in OLM installation scenario
+func TestHelmOperatorUpgrade(t *testing.T) {
+	RegisterTestingT(t)
+
+	KAMEL_INSTALL_REGISTRY := os.Getenv("KAMEL_INSTALL_REGISTRY")
+	// need to add last release version
+	releaseVersion := os.Getenv("KAMEL_K_TEST_RELEASE_VERSION")
+	customImage := fmt.Sprintf("%s/apache/camel-k", KAMEL_INSTALL_REGISTRY)
+
+	os.Setenv("CAMEL_K_TEST_MAKE_DIR", "../../../")
+
+	// Ensure no CRDs are already installed
+	UninstallAll()
+	Eventually(CRDs()).Should(HaveLen(0))
+
+	WithNewTestNamespace(t, func(ns string) {
+
+		// Install operator in last released version
+		ExpectExecSucceed(t,
+			exec.Command(
+				"helm",
+				"install",
+				"camel-k",
+				fmt.Sprintf("../../../docs/charts/camel-k-%s.tgz", releaseVersion),
+				"--set",
+				fmt.Sprintf("platform.build.registry.address=%s", KAMEL_INSTALL_REGISTRY),
+				"--set",
+				"platform.build.registry.insecure=true",
+				"-n",
+				ns,
+			),
+		)
+
+		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Eventually(OperatorImage(ns)).Should(ContainSubstring(releaseVersion))
+		Eventually(CRDs()).Should(HaveLen(ExpectedCRDs))
+
+		//Test a simple route
+		t.Run("simple route", func(t *testing.T) {
+			name := "simpleyaml"
+			Expect(KamelRun(ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		})
+
+		// Upgrade CRDs with kustomize
+		ExpectExecSucceed(t,
+			exec.Command(
+				"kubectl",
+				"replace",
+				"-f",
+				"../../../helm/camel-k/crds/",
+				"-n",
+				ns,
+			),
+		)
+
+		// Upgrade operator to current version
+		ExpectExecSucceed(t, Make(fmt.Sprintf("CUSTOM_IMAGE=%s", customImage), "set-version"))
+		ExpectExecSucceed(t, Make("release-helm"))
+		ExpectExecSucceed(t,
+			exec.Command(
+				"helm",
+				"upgrade",
+				"camel-k",
+				fmt.Sprintf("../../../docs/charts/camel-k-%s.tgz", defaults.Version),
+				"--set",
+				fmt.Sprintf("platform.build.registry.address=%s", KAMEL_INSTALL_REGISTRY),
+				"--set",
+				"platform.build.registry.insecure=true",
+				"-n",
+				ns,
+				"--force",
+			),
+		)
+
+		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Eventually(OperatorImage(ns)).Should(ContainSubstring(defaults.Version))
+
+		//Test again a simple route
+		t.Run("simple route upgraded", func(t *testing.T) {
+			name := "upgradedyaml"
+			Expect(KamelRun(ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		})
+
+		// Uninstall with helm
+		ExpectExecSucceed(t,
+			exec.Command(
+				"helm",
+				"uninstall",
+				"camel-k",
+				"-n",
+				ns,
+			),
+		)
+		Eventually(OperatorPod(ns)).Should(BeNil())
+
+		//  helm does not remove the CRDs
+		Eventually(CRDs()).Should(HaveLen(ExpectedCRDs))
+		ExpectExecSucceed(t,
+			exec.Command(
+				"kubectl",
+				"delete",
+				"-k",
+				"../../../config/crd/",
+				"-n",
+				ns,
+			),
+		)
+		Eventually(CRDs()).Should(HaveLen(0))
+	})
+}
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 91b4228ad..61aa98a53 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -95,6 +95,12 @@ import (
 const kubeConfigEnvVar = "KUBECONFIG"
 const ciPID = "/tmp/ci-k8s-pid"
 
+// v1.Build,          v1.Integration
+// v1.IntegrationKit, v1.IntegrationPlatform
+// v1.Kamelet,  v1.Pipe,
+// v1alpha1.Kamelet, v1alpha1.KameletBinding
+const ExpectedCRDs = 8
+
 var TestTimeoutShort = 1 * time.Minute
 var TestTimeoutMedium = 5 * time.Minute
 var TestTimeoutLong = 15 * time.Minute


(camel-k) 02/04: fix(doc): Handle CRDs in helm upgrade/delete

Posted by pc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch release-2.1.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 2976f800c3064a08972ee88b2c959090b98b130a
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Fri Nov 24 11:24:14 2023 +0100

    fix(doc): Handle CRDs in helm upgrade/delete
---
 helm/camel-k/README.md | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/helm/camel-k/README.md b/helm/camel-k/README.md
index 64807c12f..838d78a8e 100644
--- a/helm/camel-k/README.md
+++ b/helm/camel-k/README.md
@@ -56,15 +56,38 @@ additional parameters that can be set during installation.
 
 > **Tip**: List all releases using `helm list`
 
+## Upgrading the Chart
+
+If you are upgrading the `camel-k` Deployment, you should always use a specific version of the chart and pre-install the CRDS:
+
+```bash
+# Upgrade the CRDs
+$ curl -LO "https://github.com/apache/camel-k/raw/main/docs/charts/camel-k-x.y.z.tgz"
+$ tar xvzf camel-k-x.y.z.tgz
+$ kubectl replace -f camel-k/crds
+# Upgrade the `camel-k` Deployment
+$ helm upgrade camel-k/camel-k --version x.y.z
+```
+
+> **Note**: If you are using a custom ClusterRole instead of the default one `camel-k:edit` from `camel-k/crds/cluster-role.yaml` you should handle it appropriately.
+
+
 ## Uninstalling the Chart
 
 To uninstall/delete the `camel-k` Deployment:
 
 ```bash
-$ helm delete camel-k
+$ helm uninstall camel-k
 ```
 
-The command removes all the Kubernetes resources installed.
+The command removes all of the Kubernetes resources installed, except the CRDs.
+
+To remove them:
+```bash
+$ curl -LO "https://github.com/apache/camel-k/raw/main/docs/charts/camel-k-x.y.z.tgz"
+$ tar xvzf camel-k-x.y.z.tgz
+$ kubectl delete -f camel-k/crds
+```
 
 ## Configuration
 


(camel-k) 03/04: chore(e2e): Refactor resources number const

Posted by pc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch release-2.1.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 6c3faaa0bddbfed5ef42ae26887c8d8b4ac42944
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Fri Nov 24 11:35:02 2023 +0100

    chore(e2e): Refactor resources number const
---
 e2e/install/kustomize/setup_test.go | 21 ---------------------
 e2e/support/test_support.go         | 18 ++++++++++++++++++
 2 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/e2e/install/kustomize/setup_test.go b/e2e/install/kustomize/setup_test.go
index 5b1058630..429f516e7 100644
--- a/e2e/install/kustomize/setup_test.go
+++ b/e2e/install/kustomize/setup_test.go
@@ -32,27 +32,6 @@ import (
 	. "github.com/onsi/gomega"
 )
 
-const (
-
-	// camel-k-operator,             camel-k-operator-events,
-	// camel-k-operator-knative,     camel-k-operator-leases,
-	// camel-k-operator-podmonitors, camel-k-operator-strimzi,
-	// camel-k-operator-keda
-	ExpectedKubePromoteRoles = 7
-
-	// camel-k-edit
-	// camel-k-operator-custom-resource-definitions
-	// camel-k-operator-bind-addressable-resolver
-	// camel-k-operator-local-registry
-	ExpectedKubeClusterRoles = 4
-
-	// camel-k-operator-openshift
-	ExpectedOSPromoteRoles = 1
-
-	// camel-k-operator-console-openshift
-	ExpectedOSClusterRoles = 1
-)
-
 func TestSetupKustomizeBasic(t *testing.T) {
 	RegisterTestingT(t)
 	makeDir := testutil.MakeTempCopyDir(t, "../../../install")
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 61aa98a53..d2648b257 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -101,6 +101,24 @@ const ciPID = "/tmp/ci-k8s-pid"
 // v1alpha1.Kamelet, v1alpha1.KameletBinding
 const ExpectedCRDs = 8
 
+// camel-k-operator,             camel-k-operator-events,
+// camel-k-operator-knative,     camel-k-operator-leases,
+// camel-k-operator-podmonitors, camel-k-operator-strimzi,
+// camel-k-operator-keda
+const ExpectedKubePromoteRoles = 7
+
+// camel-k-edit
+// camel-k-operator-custom-resource-definitions
+// camel-k-operator-bind-addressable-resolver
+// camel-k-operator-local-registry
+const ExpectedKubeClusterRoles = 4
+
+// camel-k-operator-openshift
+const ExpectedOSPromoteRoles = 1
+
+// camel-k-operator-console-openshift
+const ExpectedOSClusterRoles = 1
+
 var TestTimeoutShort = 1 * time.Minute
 var TestTimeoutMedium = 5 * time.Minute
 var TestTimeoutLong = 15 * time.Minute