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
commit 7a069d3bc767e9848a8a634f13f8421aa4d70fc9 Author: phantomjinx <[email protected]> AuthorDate: Fri Dec 16 13:05:27 2022 +0000 Partial Revert "Due to slower performance revert tests to sub-tests from separate functions" This reverts commit b17c5dfbbd58f308512c2a0284f7319274fe1598. --- e2e/global/common/config/config_test.go | 741 ++++++++++++++++++-------------- 1 file changed, 415 insertions(+), 326 deletions(-) diff --git a/e2e/global/common/config/config_test.go b/e2e/global/common/config/config_test.go index df6601940..e518f8a1e 100644 --- a/e2e/global/common/config/config_test.go +++ b/e2e/global/common/config/config_test.go @@ -24,349 +24,438 @@ package resources import ( "fmt" + "io/ioutil" "testing" + "github.com/stretchr/testify/assert" + . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" . "github.com/apache/camel-k/e2e/support" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/util/gzip" ) -func TestRunConfigExamples(t *testing.T) { +func operatorID(ns string) string { + return fmt.Sprintf("camel-k-%s", ns) +} + +func installWithID(ns string) { + Expect(KamelInstallWithID(operatorID(ns), ns).Execute()).To(Succeed()) +} + +func TestRunConfigExampleSimpleProperty(t *testing.T) { WithNewTestNamespace(t, func(ns string) { - operatorID := fmt.Sprintf("camel-k-%s", ns) - Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed()) + installWithID(ns) // Properties + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-route.groovy", "-p", "my.message=test-property").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("test-property")) + }) +} + +func TestRunConfigExamplePropertyFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-file-route.groovy", "--property", "file:./files/my.properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello world")) + }) +} + +func TestRunConfigExamplePropertyPrecedence(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-file-route.groovy", "-p", "my.key.2=universe", "-p", "file:./files/my.properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello universe")) + }) +} + +func TestRunConfigExamplePropertyConfigMap(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var cmData = make(map[string]string) + cmData["my.message"] = "my-configmap-property-value" + CreatePlainTextConfigmap(ns, "my-cm-test-property", cmData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-property").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-value")) + }) +} + +func TestRunConfigExampleConfigMapPropertyFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) - // t.Run("Simple property", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "my.message=test-property").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("test-property")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Property file", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/property-file-route.groovy", "--property", "file:./files/my.properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello world")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Property precedence", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/property-file-route.groovy", "-p", "my.key.2=universe", "-p", "file:./files/my.properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello universe")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Property from ConfigMap", func(t *testing.T) { - // var cmData = make(map[string]string) - // cmData["my.message"] = "my-configmap-property-value" - // CreatePlainTextConfigmap(ns, "my-cm-test-property", cmData) - // - // Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-property").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-value")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Property from ConfigMap as property file", func(t *testing.T) { - // var cmData = make(map[string]string) - // cmData["my.properties"] = "my.message=my-configmap-property-entry" - // CreatePlainTextConfigmap(ns, "my-cm-test-properties", cmData) - // - // Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-entry")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Property from Secret", func(t *testing.T) { - // var secData = make(map[string]string) - // secData["my.message"] = "my-secret-property-value" - // CreatePlainTextSecret(ns, "my-sec-test-property", secData) - // - // Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-property").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-value")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Property from Secret as property file", func(t *testing.T) { - // var secData = make(map[string]string) - // secData["my.properties"] = "my.message=my-secret-property-entry" - // CreatePlainTextSecret(ns, "my-sec-test-properties", secData) - // - // Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-entry")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // // Configmap - - // Store a configmap on the cluster var cmData = make(map[string]string) - cmData["my-configmap-key"] = "my-configmap-content" - CreatePlainTextConfigmap(ns, "my-cm", cmData) - - // // Store a configmap with multiple values - // var cmDataMulti = make(map[string]string) - // cmDataMulti["my-configmap-key"] = "should-not-see-it" - // cmDataMulti["my-configmap-key-2"] = "my-configmap-content-2" - // CreatePlainTextConfigmap(ns, "my-cm-multi", cmDataMulti) - // - // t.Run("Config configmap", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/config-configmap-route.groovy", "--config", "configmap:my-cm").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "config-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "config-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "config-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Resource configmap", func(t *testing.T) { - // // We can reuse the configmap created previously - // - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-configmap-route.groovy", "--resource", "configmap:my-cm").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Resource configmap with destination", func(t *testing.T) { - // // We can reuse the configmap created previously - // - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-configmap-location-route.groovy", "--resource", "configmap:my-cm@/tmp/app").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-configmap-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-configmap-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-configmap-location-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Resource configmap with filtered key and destination", func(t *testing.T) { - // // We'll use the configmap contaning 2 values filtering only 1 key - // - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-configmap-key-location-route.groovy", "--resource", "configmap:my-cm-multi/my-configmap-key-2@/tmp/app/test.txt").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-configmap-key-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-configmap-key-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-configmap-key-location-route"), TestTimeoutShort).ShouldNot(ContainSubstring(cmDataMulti["my-configmap-key"])) - // Eventually(IntegrationLogs(ns, "resource-configmap-key-location-route"), TestTimeoutShort).Should(ContainSubstring(cmDataMulti["my-configmap-key-2"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // // Store a configmap as property file - // var cmDataProps = make(map[string]string) - // cmDataProps["my.properties"] = "my.key.1=hello\nmy.key.2=world" - // CreatePlainTextConfigmap(ns, "my-cm-properties", cmDataProps) - // - // t.Run("Config configmap as property file", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/config-configmap-properties-route.groovy", "--config", "configmap:my-cm-properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "config-configmap-properties-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "config-configmap-properties-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "config-configmap-properties-route"), TestTimeoutShort).Should(ContainSubstring("hello world")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // // Secret - // - // // Store a secret on the cluster - // var secData = make(map[string]string) - // secData["my-secret-key"] = "very top secret" - // CreatePlainTextSecret(ns, "my-sec", secData) - // - // // Store a secret with multi values - // var secDataMulti = make(map[string]string) - // secDataMulti["my-secret-key"] = "very top secret" - // secDataMulti["my-secret-key-2"] = "even more secret" - // CreatePlainTextSecret(ns, "my-sec-multi", secDataMulti) - // - // t.Run("Config secret", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/config-secret-route.groovy", "--config", "secret:my-sec").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "config-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "config-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "config-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Resource secret", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-secret-route.groovy", "--resource", "secret:my-sec").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // // Config File - // - // t.Run("Plain text configuration file", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/config-file-route.groovy", "--config", "file:./files/resources-data.txt").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "config-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "config-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "config-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // Eventually(AutogeneratedConfigmapsCount(ns), TestTimeoutShort).Should(Equal(0)) - // }) - // - // t.Run("Secret with filtered key", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/config-secret-key-route.groovy", "--config", "secret:my-sec-multi/my-secret-key-2").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "config-secret-key-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "config-secret-key-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "config-secret-key-route"), TestTimeoutShort).ShouldNot(ContainSubstring(secDataMulti["my-secret-key"])) - // Eventually(IntegrationLogs(ns, "config-secret-key-route"), TestTimeoutShort).Should(ContainSubstring(secDataMulti["my-secret-key-2"])) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // // Resource File - // - // t.Run("Plain text resource file", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-file-route.groovy", "--resource", "file:./files/resources-data.txt").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // Eventually(AutogeneratedConfigmapsCount(ns), TestTimeoutShort).Should(Equal(0)) - // }) - // - // t.Run("Plain text resource file with destination path", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-file-location-route.groovy", "--resource", "file:./files/resources-data.txt@/tmp/file.txt").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-file-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-file-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-file-location-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // Eventually(AutogeneratedConfigmapsCount(ns), TestTimeoutShort).Should(Equal(0)) - // }) - // - // t.Run("Binary (zip) resource file", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, 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"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-file-binary-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-file-binary-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // Eventually(AutogeneratedConfigmapsCount(ns), TestTimeoutShort).Should(Equal(0)) - // }) - // - // t.Run("Base64 compressed binary resource file", func(t *testing.T) { - // // We calculate the expected content - // source, err := ioutil.ReadFile("./files/resources-data.txt") - // assert.Nil(t, err) - // expectedBytes, err := gzip.CompressBase64([]byte(source)) - // assert.Nil(t, err) - // - // Expect(KamelRunWithID(operatorID, 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"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-file-base64-encoded-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-file-base64-encoded-route"), TestTimeoutShort).Should(ContainSubstring(string(expectedBytes))) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // Eventually(AutogeneratedConfigmapsCount(ns), TestTimeoutShort).Should(Equal(0)) - // }) - // - // t.Run("Plain text resource file with same content", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/resource-file-route.groovy", "--resource", "file:./files/resources-data.txt", - // "--resource", "file:./files/resources-data-same.txt").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "resource-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "resource-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "resource-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // Eventually(AutogeneratedConfigmapsCount(ns), TestTimeoutShort).Should(Equal(0)) - // }) - // - // // Build-Properties - // t.Run("Build time property", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/build-property-route.groovy", "--build-property", "quarkus.application.name=my-super-application").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "build-property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "build-property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "build-property-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application")) - // // Don't delete - we need it for next test execution - // }) - // - // // We need to check also that the property (which is available in the IntegrationKit) is correctly replaced and we don't reuse the same kit - // t.Run("Build time property updated", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/build-property-route.groovy", "--name", "build-property-route-updated", - // "--build-property", "quarkus.application.name=my-super-application-updated").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "build-property-route-updated"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "build-property-route-updated", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "build-property-route-updated"), TestTimeoutShort).Should(ContainSubstring("my-super-application-updated")) - // // Verify the integration kits are different - // Expect(IntegrationKit(ns, "build-property-route")).ShouldNot(Equal(IntegrationKit(ns, "build-property-route-updated"))) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // // Build-Properties file - // t.Run("Build time property file", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Build time property file with precedence", func(t *testing.T) { - // Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "quarkus.application.name=my-overridden-application", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutMedium).Should(ContainSubstring("my-overridden-application")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - - t.Run("Build time property from ConfigMap", func(t *testing.T) { - var cmData = make(map[string]string) - cmData["quarkus.application.name"] = "my-cool-application" - CreatePlainTextConfigmap(ns, "my-cm-test-build-property", cmData) - Eventually(Configmap(ns, "my-cm-test-build-property"), TestTimeoutShort).ShouldNot(BeNil()) - - Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-property").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutLong).Should(ContainSubstring("my-cool-application")) - Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) + cmData["my.properties"] = "my.message=my-configmap-property-entry" + CreatePlainTextConfigmap(ns, "my-cm-test-properties", cmData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-entry")) + }) +} + +func TestRunConfigExamplePropertySecret(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var secData = make(map[string]string) + secData["my.message"] = "my-secret-property-value" + CreatePlainTextSecret(ns, "my-sec-test-property", secData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-property").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-value")) + }) +} + +func TestRunConfigExampleSecretPropertyFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var secData = make(map[string]string) + secData["my.properties"] = "my.message=my-secret-property-entry" + CreatePlainTextSecret(ns, "my-sec-test-properties", secData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-entry")) + }) +} + +// Store a configmap on the cluster +func createConfigMap(ns string) map[string]string { + var cmData = make(map[string]string) + cmData["my-configmap-key"] = "my-configmap-content" + CreatePlainTextConfigmap(ns, "my-cm", cmData) + return cmData +} + +// Store a configmap with multiple values +func createMultiConfigMap(ns string) map[string]string { + var cmDataMulti = make(map[string]string) + cmDataMulti["my-configmap-key"] = "should-not-see-it" + cmDataMulti["my-configmap-key-2"] = "my-configmap-content-2" + CreatePlainTextConfigmap(ns, "my-cm-multi", cmDataMulti) + return cmDataMulti +} + +func TestRunConfigPropertyConfigMap(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + cmData := createConfigMap(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/config-configmap-route.groovy", "--config", "configmap:my-cm").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "config-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) + }) +} + +func TestRunConfigResourceConfigMap(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + cmData := createConfigMap(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-configmap-route.groovy", "--resource", "configmap:my-cm").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) + }) +} + +func TestRunConfigDestinationConfigMap(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + cmData := createConfigMap(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-configmap-location-route.groovy", "--resource", "configmap:my-cm@/tmp/app").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-configmap-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-configmap-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-configmap-location-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"])) + }) +} + +func TestRunConfigFilteredConfigMap(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + cmDataMulti := createMultiConfigMap(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-configmap-key-location-route.groovy", "--resource", "configmap:my-cm-multi/my-configmap-key-2@/tmp/app/test.txt").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-configmap-key-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-configmap-key-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-configmap-key-location-route"), TestTimeoutShort).ShouldNot(ContainSubstring(cmDataMulti["my-configmap-key"])) + Eventually(IntegrationLogs(ns, "resource-configmap-key-location-route"), TestTimeoutShort).Should(ContainSubstring(cmDataMulti["my-configmap-key-2"])) + }) +} + +func TestRunConfigPropertyConfigMapFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + // Store a configmap as property file + var cmDataProps = make(map[string]string) + cmDataProps["my.properties"] = "my.key.1=hello\nmy.key.2=world" + CreatePlainTextConfigmap(ns, "my-cm-properties", cmDataProps) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/config-configmap-properties-route.groovy", "--config", "configmap:my-cm-properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-configmap-properties-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "config-configmap-properties-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-configmap-properties-route"), TestTimeoutShort).Should(ContainSubstring("hello world")) + }) +} + +func createSecret(ns string) map[string]string { + // Store a secret on the cluster + var secData = make(map[string]string) + secData["my-secret-key"] = "very top secret" + CreatePlainTextSecret(ns, "my-sec", secData) + return secData +} + +func createMultiSecret(ns string) map[string]string { + // Store a secret with multi values + var secDataMulti = make(map[string]string) + secDataMulti["my-secret-key"] = "very top secret" + secDataMulti["my-secret-key-2"] = "even more secret" + CreatePlainTextSecret(ns, "my-sec-multi", secDataMulti) + return secDataMulti +} + +func TestRunConfigPropertyConfigSecret(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + secData := createSecret(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/config-secret-route.groovy", "--config", "secret:my-sec").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "config-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) + }) +} + +func TestRunConfigPropertyResourceSecret(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + secData := createSecret(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-secret-route.groovy", "--resource", "secret:my-sec").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"])) + }) +} + +func TestRunConfigSecretFilteredKey(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + secDataMulti := createMultiSecret(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/config-secret-key-route.groovy", "--config", "secret:my-sec-multi/my-secret-key-2").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-secret-key-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "config-secret-key-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-secret-key-route"), TestTimeoutShort).ShouldNot(ContainSubstring(secDataMulti["my-secret-key"])) + Eventually(IntegrationLogs(ns, "config-secret-key-route"), TestTimeoutShort).Should(ContainSubstring(secDataMulti["my-secret-key-2"])) + }) +} + +// Config File +func TestRunConfigPlainTextFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/config-file-route.groovy", "--config", "file:./files/resources-data.txt").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "config-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "config-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "config-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + }) +} + +// Resource File +func TestRunConfigResourceFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-file-route.groovy", "--resource", "file:./files/resources-data.txt").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + }) +} + +func TestRunConfigDestinationPlainTextFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-file-location-route.groovy", "--resource", "file:./files/resources-data.txt@/tmp/file.txt").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-file-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-file-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-location-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + }) +} + +func TestRunConfigZipFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), 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"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-file-binary-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-binary-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + }) +} + +func TestRunConfigBase64File(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + // We calculate the expected content + source, err := ioutil.ReadFile("./files/resources-data.txt") + assert.Nil(t, err) + expectedBytes, err := gzip.CompressBase64([]byte(source)) + assert.Nil(t, err) + + Expect(KamelRunWithID(operatorID(ns), 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"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-file-base64-encoded-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-base64-encoded-route"), TestTimeoutShort).Should(ContainSubstring(string(expectedBytes))) + }) +} + +func TestRunConfigPlainTextFileSameContent(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/resource-file-route.groovy", "--resource", "file:./files/resources-data.txt", + "--resource", "file:./files/resources-data-same.txt").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "resource-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "resource-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "resource-file-route"), TestTimeoutShort).Should(ContainSubstring("the file body")) + }) +} + +func TestRunConfigBuildProperty(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + // Build-Properties + t.Run("Build time property", func(t *testing.T) { + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-route.groovy", "--build-property", "quarkus.application.name=my-super-application").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application")) + // Don't delete - we need it for next test execution }) - t.Run("Build time property from ConfigMap as property file", func(t *testing.T) { - var cmData = make(map[string]string) - cmData["my.properties"] = "quarkus.application.name=my-super-cool-application" - CreatePlainTextConfigmap(ns, "my-cm-test-build-properties", cmData) - Eventually(Configmap(ns, "my-cm-test-build-properties"), TestTimeoutShort).ShouldNot(BeNil()) - - Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-properties").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-cool-application")) - Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) + // We need to check also that the property (which is available in the IntegrationKit) is correctly replaced and we don't reuse the same kit + t.Run("Build time property updated", func(t *testing.T) { + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-route.groovy", "--name", "build-property-route-updated", + "--build-property", "quarkus.application.name=my-super-application-updated").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-route-updated"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-route-updated", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-route-updated"), TestTimeoutShort).Should(ContainSubstring("my-super-application-updated")) + // Verify the integration kits are different + Expect(IntegrationKit(ns, "build-property-route")).ShouldNot(Equal(IntegrationKit(ns, "build-property-route-updated"))) }) - // - // t.Run("Build time property from Secret", func(t *testing.T) { - // var secData = make(map[string]string) - // secData["quarkus.application.name"] = "my-great-application" - // CreatePlainTextSecret(ns, "my-sec-test-build-property", secData) - // - // Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-property").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-great-application")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) - // - // t.Run("Build time property from Secret as property file", func(t *testing.T) { - // var secData = make(map[string]string) - // secData["my.properties"] = "quarkus.application.name=my-awsome-application" - // CreatePlainTextSecret(ns, "my-sec-test-build-properties", secData) - // - // Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-properties").Execute()).To(Succeed()) - // Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - // Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - // Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-awsome-application")) - // Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0)) - // }) + }) +} + +func TestRunConfigBuildPropertyFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + // Build-Properties file + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-file-route.groovy", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application")) + }) +} + +func TestRunConfigBuildPropertytFilePrecedence(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-file-route.groovy", "--build-property", "quarkus.application.name=my-overridden-application", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutMedium).Should(ContainSubstring("my-overridden-application")) + }) +} + +func TestRunConfigBuildPropertyConfigMap(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var cmData = make(map[string]string) + cmData["quarkus.application.name"] = "my-cool-application" + CreatePlainTextConfigmap(ns, "my-cm-test-build-property", cmData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-property").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutLong).Should(ContainSubstring("my-cool-application")) + }) +} + +func TestRunConfigBuildPropertyConfigMapFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var cmData = make(map[string]string) + cmData["my.properties"] = "quarkus.application.name=my-super-cool-application" + CreatePlainTextConfigmap(ns, "my-cm-test-build-properties", cmData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-cool-application")) + }) +} + +func TestRunConfigBuildPropertySecret(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var secData = make(map[string]string) + secData["quarkus.application.name"] = "my-great-application" + CreatePlainTextSecret(ns, "my-sec-test-build-property", secData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-property").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-great-application")) + }) +} + +func TestRunConfigBuildPropertySecretFile(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + var secData = make(map[string]string) + secData["my.properties"] = "quarkus.application.name=my-awsome-application" + CreatePlainTextSecret(ns, "my-sec-test-build-properties", secData) + + Expect(KamelRunWithID(operatorID(ns), ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-properties").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-awsome-application")) }) }
