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
commit 44ba5644a1a7ad73ab196505413f520df76ea3de Author: Pasquale Congiusti <[email protected]> AuthorDate: Tue Jun 1 10:43:36 2021 +0200 refactor(e2e): resource option integration test Ref #2003 --- e2e/common/config/config_test.go | 84 +++++++++++++--------- .../config/files/build-property-file-route.groovy | 8 --- .../config/files/build-property-route.groovy | 8 --- ...-route.groovy => config-configmap-route.groovy} | 7 -- e2e/common/config/files/config-file-route.groovy | 5 -- ...ret-route.groovy => config-secret-route.groovy} | 7 -- e2e/common/config/files/property-file-route.groovy | 6 -- e2e/common/config/files/property-route.groovy | 6 -- ...oute.groovy => resource-configmap-route.groovy} | 7 +- ...y => resource-file-base64-encoded-route.groovy} | 5 -- ...te.groovy => resource-file-binary-route.groovy} | 7 +- ...ces-route.groovy => resource-file-route.groovy} | 7 +- ...s-route.groovy => resource-secret-route.groovy} | 7 +- .../user-config/resource-file-binary-route.groovy | 2 +- pkg/trait/jvm.go | 2 + pkg/trait/jvm_test.go | 9 +-- 16 files changed, 63 insertions(+), 114 deletions(-) diff --git a/e2e/common/config/config_test.go b/e2e/common/config/config_test.go index 2cb79ab..e2d16d4 100644 --- a/e2e/common/config/config_test.go +++ b/e2e/common/config/config_test.go @@ -59,35 +59,53 @@ func TestRunConfigExamples(t *testing.T) { // Configmap - t.Run("Textplain configmap", func(t *testing.T) { - // Store a configmap on the cluster - var cmData = make(map[string]string) - cmData["my-configmap-key"] = "my-configmap-content" - NewPlainTextConfigmap(ns, "my-cm", cmData) - - Expect(Kamel("run", "-n", ns, "./files/configmap-route.groovy", "--config", "configmap:my-cm").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "configmap-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) - Eventually(IntegrationCondition(ns, "configmap-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) + // Store a configmap on the cluster + var cmData = make(map[string]string) + cmData["my-configmap-key"] = "my-configmap-content" + NewPlainTextConfigmap(ns, "my-cm", cmData) + + t.Run("Config configmap", func(t *testing.T) { + Expect(Kamel("run", "-n", ns, "./files/config-configmap-route.groovy", "--config", "configmap:my-cm").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-configmap-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "config-configmap-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) + Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) + }) + + t.Run("Resource configmap", func(t *testing.T) { + // We can reuse the configmap created previously + + Expect(Kamel("run", "-n", ns, "./files/resource-configmap-route.groovy", "--resource", "configmap:my-cm").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-configmap-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "resource-configmap-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) // Secret - t.Run("Textplain secret", func(t *testing.T) { - // Store a secret on the cluster - var secData = make(map[string]string) - secData["my-secret-key"] = "very top secret" - NewPlainTextSecret(ns, "my-sec", secData) + // Store a secret on the cluster + var secData = make(map[string]string) + secData["my-secret-key"] = "very top secret" + NewPlainTextSecret(ns, "my-sec", secData) + + t.Run("Config secret", func(t *testing.T) { + Expect(Kamel("run", "-n", ns, "./files/config-secret-route.groovy", "--config", "secret:my-sec").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-secret-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "config-secret-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) + Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) + }) - Expect(Kamel("run", "-n", ns, "./files/secret-route.groovy", "--config", "secret:my-sec").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "secret-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) - Eventually(IntegrationCondition(ns, "secret-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) + t.Run("Resource secret", func(t *testing.T) { + Expect(Kamel("run", "-n", ns, "./files/resource-secret-route.groovy", "--resource", "secret:my-sec").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-secret-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "resource-secret-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) - // File Configuration + // Config File t.Run("Plain text configuration file", func(t *testing.T) { Expect(Kamel("run", "-n", ns, "./files/config-file-route.groovy", "--config", "file:./files/resources-data.txt").Execute()).To(Succeed()) @@ -97,21 +115,21 @@ func TestRunConfigExamples(t *testing.T) { Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) - // Resources + // Resource File t.Run("Plain text resource file", func(t *testing.T) { - Expect(Kamel("run", "-n", ns, "./files/resources-route.groovy", "--resource", "./files/resources-data.txt").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "resources-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) - Eventually(IntegrationCondition(ns, "resources-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "resources-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + Expect(Kamel("run", "-n", ns, "./files/resource-file-route.groovy", "--resource", "file:./files/resources-data.txt").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-file-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "resource-file-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) t.Run("Binary (zip) resource file", func(t *testing.T) { - Expect(Kamel("run", "-n", ns, "./files/resources-binary-route.groovy", "--resource", "./files/resources-data.zip", "-d", "camel-zipfile").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "resources-binary-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) - Eventually(IntegrationCondition(ns, "resources-binary-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "resources-binary-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + Expect(Kamel("run", "-n", ns, "./files/resource-file-binary-route.groovy", "--resource", "file:./files/resources-data.zip", "-d", "camel-zipfile").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-file-binary-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "resource-file-binary-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-binary-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) @@ -122,10 +140,10 @@ func TestRunConfigExamples(t *testing.T) { expectedBytes, err := gzip.CompressBase64([]byte(source)) assert.Nil(t, err) - Expect(Kamel("run", "-n", ns, "./files/resources-base64-encoded-route.groovy", "--resource", "./files/resources-data.txt", "--compression=true").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "resources-base64-encoded-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) - Eventually(IntegrationCondition(ns, "resources-base64-encoded-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "resources-base64-encoded-route"), TestTimeoutShort).Should(ContainSubstring(string(expectedBytes))) + Expect(Kamel("run", "-n", ns, "./files/resource-file-base64-encoded-route.groovy", "--resource", "file:./files/resources-data.txt", "--compression=true").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-file-base64-encoded-route"), TestTimeoutMedium).Should(Equal(v1.PodRunning)) + Eventually(IntegrationCondition(ns, "resource-file-base64-encoded-route", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-base64-encoded-route"), TestTimeoutShort).Should(ContainSubstring(string(expectedBytes))) Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) }) diff --git a/e2e/common/config/files/build-property-file-route.groovy b/e2e/common/config/files/build-property-file-route.groovy index 8427b48..ecb065f 100644 --- a/e2e/common/config/files/build-property-file-route.groovy +++ b/e2e/common/config/files/build-property-file-route.groovy @@ -16,14 +16,6 @@ * limitations under the License. */ -// -// Provide a build time configuration property file -// -// To run this integrations use: -// -// kamel run --build-property=file:quarkus.properties build-property-file-route.groovy --dev -// - from('timer:build-property') .routeId('build-property') .log('The application name: {{quarkus.application.name}}') diff --git a/e2e/common/config/files/build-property-route.groovy b/e2e/common/config/files/build-property-route.groovy index c32e5e6..ecb065f 100644 --- a/e2e/common/config/files/build-property-route.groovy +++ b/e2e/common/config/files/build-property-route.groovy @@ -16,14 +16,6 @@ * limitations under the License. */ -// -// Provide a build time configuration property (the application name) -// -// To run this integrations use: -// -// kamel run --build-property=quarkus.application.name=my-super-application build-property-route.groovy --dev -// - from('timer:build-property') .routeId('build-property') .log('The application name: {{quarkus.application.name}}') diff --git a/e2e/common/config/files/configmap-route.groovy b/e2e/common/config/files/config-configmap-route.groovy similarity index 83% rename from e2e/common/config/files/configmap-route.groovy rename to e2e/common/config/files/config-configmap-route.groovy index 948cb15..8c82912 100644 --- a/e2e/common/config/files/configmap-route.groovy +++ b/e2e/common/config/files/config-configmap-route.groovy @@ -16,13 +16,6 @@ * limitations under the License. */ -// -// To run this integrations use: -// -// kubectl create configmap my-cm --from-literal=my-configmap-key="configmap content" -// kamel run --config configmap:my-cm configmap-route.groovy --dev -// - from('timer:configmap') .routeId('configmap') .setBody() diff --git a/e2e/common/config/files/config-file-route.groovy b/e2e/common/config/files/config-file-route.groovy index 53b347f..37b9473 100644 --- a/e2e/common/config/files/config-file-route.groovy +++ b/e2e/common/config/files/config-file-route.groovy @@ -16,11 +16,6 @@ * limitations under the License. */ -// -// To run this integrations use: -// kamel run --config file:resources-data.txt resources-route.groovy --dev -// - from('timer:resources') .routeId('resources') .setBody() diff --git a/e2e/common/config/files/secret-route.groovy b/e2e/common/config/files/config-secret-route.groovy similarity index 83% rename from e2e/common/config/files/secret-route.groovy rename to e2e/common/config/files/config-secret-route.groovy index 7027b84..ac369aa 100644 --- a/e2e/common/config/files/secret-route.groovy +++ b/e2e/common/config/files/config-secret-route.groovy @@ -16,13 +16,6 @@ * limitations under the License. */ -// -// To run this integrations use: -// -// kubectl create secret generic my-sec --from-literal=my-secret-key="very top secret" -// kamel run --config secret:my-sec secret-route.groovy --dev -// - from('timer:secret') .routeId('secret') .setBody() diff --git a/e2e/common/config/files/property-file-route.groovy b/e2e/common/config/files/property-file-route.groovy index 6ce6838..e9718df 100644 --- a/e2e/common/config/files/property-file-route.groovy +++ b/e2e/common/config/files/property-file-route.groovy @@ -16,12 +16,6 @@ * limitations under the License. */ -// -// To run this integrations use: -// -// kamel run --property file:my.properties property-file-route.groovy --dev -// - from('timer:property-file') .routeId('property-file') .log('property file content is: {{my.key.1}} {{my.key.2}}') diff --git a/e2e/common/config/files/property-route.groovy b/e2e/common/config/files/property-route.groovy index 705eca6..a609ea7 100644 --- a/e2e/common/config/files/property-route.groovy +++ b/e2e/common/config/files/property-route.groovy @@ -16,12 +16,6 @@ * limitations under the License. */ -// -// To run this integrations use: -// -// kamel run -p my.message=test-property property-route.groovy --dev -// - from('timer:property') .routeId('property') .log('property content is: {{my.message}}') diff --git a/e2e/common/config/files/resources-route.groovy b/e2e/common/config/files/resource-configmap-route.groovy similarity index 81% copy from e2e/common/config/files/resources-route.groovy copy to e2e/common/config/files/resource-configmap-route.groovy index 1085840..3df9e05 100644 --- a/e2e/common/config/files/resources-route.groovy +++ b/e2e/common/config/files/resource-configmap-route.groovy @@ -16,10 +16,5 @@ * limitations under the License. */ -// -// To run this integrations use: -// kamel run --resource resources-data.txt resources-route.groovy --dev -// - -from('file:/etc/camel/resources/?fileName=resources-data.txt&noop=true&idempotent=false') +from('file:/etc/camel/data/configmaps/my-cm/?fileName=my-configmap-key&noop=true&idempotent=false') .log('resource file content is: ${body}') diff --git a/e2e/common/config/files/resources-base64-encoded-route.groovy b/e2e/common/config/files/resource-file-base64-encoded-route.groovy similarity index 87% rename from e2e/common/config/files/resources-base64-encoded-route.groovy rename to e2e/common/config/files/resource-file-base64-encoded-route.groovy index 02559f0..8cbff0b 100644 --- a/e2e/common/config/files/resources-base64-encoded-route.groovy +++ b/e2e/common/config/files/resource-file-base64-encoded-route.groovy @@ -16,11 +16,6 @@ * limitations under the License. */ -// -// To run this integrations use: -// kamel run --resource resources-data.txt --compression=true resources-base64-encoded-route.groovy --dev -// - from('timer:resources-bas64') .routeId('resources-base64') .setBody() diff --git a/e2e/common/config/files/resources-binary-route.groovy b/e2e/common/config/files/resource-file-binary-route.groovy similarity index 80% rename from e2e/common/config/files/resources-binary-route.groovy rename to e2e/common/config/files/resource-file-binary-route.groovy index 8b0878b..c6faa9a 100644 --- a/e2e/common/config/files/resources-binary-route.groovy +++ b/e2e/common/config/files/resource-file-binary-route.groovy @@ -16,12 +16,7 @@ * limitations under the License. */ -// -// To run this integrations use: -// kamel run --resource resources-data.zip resources-binary-route.groovy -d camel-zipfile --dev -// - -from('file:/etc/camel/resources/?fileName=resources-data.zip&noop=true&idempotent=false') +from('file:/etc/camel/data/resources/?fileName=resources-data.zip&noop=true&idempotent=false') .routeId('resources-zip') .unmarshal().zipFile() .log('resource file unzipped content is: ${body}') diff --git a/e2e/common/config/files/resources-route.groovy b/e2e/common/config/files/resource-file-route.groovy similarity index 81% copy from e2e/common/config/files/resources-route.groovy copy to e2e/common/config/files/resource-file-route.groovy index 1085840..6ab0338 100644 --- a/e2e/common/config/files/resources-route.groovy +++ b/e2e/common/config/files/resource-file-route.groovy @@ -16,10 +16,5 @@ * limitations under the License. */ -// -// To run this integrations use: -// kamel run --resource resources-data.txt resources-route.groovy --dev -// - -from('file:/etc/camel/resources/?fileName=resources-data.txt&noop=true&idempotent=false') +from('file:/etc/camel/data/resources/?fileName=resources-data.txt&noop=true&idempotent=false') .log('resource file content is: ${body}') diff --git a/e2e/common/config/files/resources-route.groovy b/e2e/common/config/files/resource-secret-route.groovy similarity index 81% rename from e2e/common/config/files/resources-route.groovy rename to e2e/common/config/files/resource-secret-route.groovy index 1085840..c2e5685 100644 --- a/e2e/common/config/files/resources-route.groovy +++ b/e2e/common/config/files/resource-secret-route.groovy @@ -16,10 +16,5 @@ * limitations under the License. */ -// -// To run this integrations use: -// kamel run --resource resources-data.txt resources-route.groovy --dev -// - -from('file:/etc/camel/resources/?fileName=resources-data.txt&noop=true&idempotent=false') +from('file:/etc/camel/data/secrets/my-sec/?fileName=my-secret-key&noop=true&idempotent=false') .log('resource file content is: ${body}') diff --git a/examples/user-config/resource-file-binary-route.groovy b/examples/user-config/resource-file-binary-route.groovy index eef04d1..2121c26 100644 --- a/examples/user-config/resource-file-binary-route.groovy +++ b/examples/user-config/resource-file-binary-route.groovy @@ -21,7 +21,7 @@ // kamel run --resource resources-data.zip resource-file-binary-route.groovy -d camel-zipfile --dev // -from('file:/etc/camel/resources/?fileName=resources-data.zip&noop=true&idempotent=false') +from('file:/etc/camel/data/resources/?fileName=resources-data.zip&noop=true&idempotent=false') .routeId('resources-zip') .unmarshal().zipFile() .log('resource file unzipped content is: ${body}') diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go index 725f84c..c30a3aa 100644 --- a/pkg/trait/jvm.go +++ b/pkg/trait/jvm.go @@ -96,6 +96,8 @@ func (t *jvmTrait) Apply(e *Environment) error { classpath := strset.New() classpath.Add("./resources") + classpath.Add(configResourcesMountPath) + classpath.Add(dataResourcesMountPath) for _, artifact := range kit.Status.Artifacts { classpath.Add(artifact.Target) diff --git a/pkg/trait/jvm_test.go b/pkg/trait/jvm_test.go index cfa925c..f5bc7d1 100644 --- a/pkg/trait/jvm_test.go +++ b/pkg/trait/jvm_test.go @@ -19,6 +19,7 @@ package trait import ( "context" + "fmt" "sort" "strings" "testing" @@ -103,12 +104,12 @@ func TestApplyJvmTraitWithDeploymentResource(t *testing.T) { assert.Nil(t, err) - cp := strset.New("./resources", "/mount/path").List() + cp := strset.New("./resources", configResourcesMountPath, dataResourcesMountPath, "/mount/path").List() sort.Strings(cp) assert.Equal(t, []string{ "-cp", - "./resources:/mount/path", + fmt.Sprintf("./resources:%s:%s:/mount/path", configResourcesMountPath, dataResourcesMountPath), "io.quarkus.bootstrap.runner.QuarkusEntryPoint", }, d.Spec.Template.Spec.Containers[0].Args) } @@ -135,12 +136,12 @@ func TestApplyJvmTraitWithKNativeResource(t *testing.T) { assert.Nil(t, err) - cp := strset.New("./resources", "/mount/path").List() + cp := strset.New("./resources", configResourcesMountPath, dataResourcesMountPath, "/mount/path").List() sort.Strings(cp) assert.Equal(t, []string{ "-cp", - "./resources:/mount/path", + fmt.Sprintf("./resources:%s:%s:/mount/path", configResourcesMountPath, dataResourcesMountPath), "io.quarkus.bootstrap.runner.QuarkusEntryPoint", }, s.Spec.Template.Spec.Containers[0].Args) }
