This is an automated email from the ASF dual-hosted git repository.
ricardozanini pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-serverless-operator.git
The following commit(s) were added to refs/heads/main by this push:
new 7bfc6e51 Fix #504 - Build images before running e2e (#546)
7bfc6e51 is described below
commit 7bfc6e5198729e7aaff91fa32655b14d10619e10
Author: Ricardo Zanini <[email protected]>
AuthorDate: Fri Oct 4 09:10:58 2024 -0400
Fix #504 - Build images before running e2e (#546)
---
.ci/jenkins/Jenkinsfile.e2e.cluster | 2 +-
.github/workflows/e2e.yml | 4 +-
Makefile | 19 +--
hack/local/run-e2e.sh | 12 +-
internal/controller/platform/platformutils_test.go | 2 +-
.../platform/testdata/platformTest.Dockerfile | 2 +-
test/builder/greetings.sw.json | 67 ---------
test/e2e/clusterplatform_test.go | 53 ++++---
test/e2e/e2e_suite_test.go | 153 ++++++++++++++++++++-
test/e2e/helpers.go | 84 ++++++-----
test/e2e/platform_test.go | 59 +++++---
...ataflow-callbackstatetimeouts-persistence.yaml} | 14 +-
...1alpha08_sonataflow-callbackstatetimeouts.yaml} | 2 +
...taflow.org_v1alpha08_sonataflow-greetings.yaml} | 35 ++---
.../order-processing/01_v1_configmap_subflows.yaml | 0
.../02_appsv1_deployment_eventlistener.yaml | 0
.../order-processing/03_discovery_role.yaml | 0
.../04_v1_configmap_properties.yaml | 0
...alpha08_sonataflow_devmode_orderprocessing.yaml | 0
test/{ => e2e}/testdata/order-processing/README.md | 0
.../noservices/gitops/ephemeral}/00-broker.yaml | 0
.../gitops}/ephemeral/02-sonataflow_platform.yaml | 6 +
.../gitops/ephemeral}/kustomization.yaml | 3 +
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 6 +-
.../generic_from_platform_cr/01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../generic_from_platform_cr/kustomization.yaml | 0
.../overwritten_by_services/01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../overwritten_by_services/kustomization.yaml | 0
.../dev/ephemeral/02-sonataflow_platform.yaml | 0
.../services/dev/ephemeral/kustomization.yaml | 0
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 0
.../services/dev/postgreSQL/01-postgres.yaml | 0
.../dev/postgreSQL/02-sonataflow_platform.yaml | 0
.../services/dev/postgreSQL/kustomization.yaml | 0
.../04-sonataflow_callbackstatetimeouts.sw.yaml | 0
.../01-sonataflow_clusterplatform.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../cluster-wide-ephemeral/kustomization.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../ephemeral-data-index}/kustomization.yaml | 4 +-
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 6 +-
.../02-sonataflow_platform.yaml | 0
.../ephemeral-job-service}/kustomization.yaml | 3 +
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 6 +-
.../gitops/ephemeral-with-workflow}/00-broker.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../ephemeral-with-workflow}/kustomization.yaml | 5 +
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 6 +-
.../services/gitops/ephemeral}/00-broker.yaml | 0
.../gitops}/ephemeral/02-sonataflow_platform.yaml | 0
.../services/gitops}/ephemeral/kustomization.yaml | 2 +
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 6 +-
.../knative/platform-level-broker/01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../platform-level-broker/broker/broker.yaml | 0
.../platform-level-broker/kustomization.yaml | 4 +-
.../04-sonataflow_callbackstatetimeouts.sw.yaml | 6 +-
.../knative/service-level-broker/01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../service-level-broker/broker/00-broker.yaml | 0
.../service-level-broker}/kustomization.yaml | 2 +
.../services/gitops/postgreSQL}/00-broker.yaml | 0
.../services/gitops}/postgreSQL/01-postgres.yaml | 0
.../gitops}/postgreSQL/02-sonataflow_platform.yaml | 0
.../services/gitops}/postgreSQL/kustomization.yaml | 3 +-
.../04-sonataflow_callbackstatetimeouts.sw.yaml | 8 +-
.../01-sonataflow.org_v1alpha08_sonataflow.yaml} | 37 ++---
.../persistence/by_service/01-postgres.yaml | 0
.../by_service/02-sonataflow_platform.yaml | 0
.../03-configmap_callbackstatetimeouts-props.yaml | 4 +-
.../04-sonataflow_callbackstatetimeouts.sw.yaml | 8 +-
.../persistence/by_service/kustomization.yaml | 0
.../01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 7 +-
.../kustomization.yaml | 0
.../00-broker.yaml | 0
.../01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../03-configmap_callbackstatetimeouts-props.yaml | 4 +-
.../04-sonataflow_callbackstatetimeouts.sw.yaml | 7 +-
.../kustomization.yaml | 0
.../01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
...ow_callbackstatetimeouts-no-persistence.sw.yaml | 5 +-
.../kustomization.yaml | 0
.../01-postgres.yaml | 0
.../02-sonataflow_platform.yaml | 0
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 5 +-
.../kustomization.yaml | 0
test/e2e/workflow_test.go | 79 +++++------
.../03-sonataflow_callbackstatetimeouts.sw.yaml | 81 -----------
.../service-level-broker/kustomization.yaml | 32 -----
test/utils/utils.go | 4 +-
test/yaml.go | 22 +--
97 files changed, 486 insertions(+), 393 deletions(-)
diff --git a/.ci/jenkins/Jenkinsfile.e2e.cluster
b/.ci/jenkins/Jenkinsfile.e2e.cluster
index 6cd8bd0d..967ab0fc 100644
--- a/.ci/jenkins/Jenkinsfile.e2e.cluster
+++ b/.ci/jenkins/Jenkinsfile.e2e.cluster
@@ -40,7 +40,7 @@ pipeline {
helper.checkoutRepo()
assert getTestImage(): 'Please provide a Test image'
- container.pullImage(getTestImage()) // Verify image exists
+ container.pullImage(getTestImage()) // Verify image
namespaceExists
}
}
}
diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index f2b2cb20..ec598cc8 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -86,8 +86,8 @@ jobs:
make deploy IMG=${{ env.OPERATOR_IMAGE_NAME }}
kubectl wait pod -A -l control-plane=sonataflow-operator --for
condition=Ready
- - name: Run E2E Tests for Non-Persistent Flows
- run: make test-e2e label=flows-non-persistence
+ - name: Run E2E Tests for Ephemeral Flows
+ run: make test-e2e label=flows-ephemeral
- name: Run E2E Tests for Persistent Flows
run: make test-e2e label=flows-persistence
diff --git a/Makefile b/Makefile
index 147ec448..a768f93d 100644
--- a/Makefile
+++ b/Makefile
@@ -119,6 +119,9 @@ vet: ## Run go vet against code.
.PHONY: test
test: manifests generate envtest test-api ## Run tests.
+ @$(MAKE) addheaders
+ @$(MAKE) vet
+ @$(MAKE) fmt
@echo "๐ Running controller tests..."
@KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION)
--bin-dir $(LOCALBIN) -p path)" \
go test $(shell go list ./... | grep -v /test/) -coverprofile cover.out
> /dev/null 2>&1
@@ -399,30 +402,30 @@ generate-all: generate generate-deploy bundle
@$(MAKE) fmt
.PHONY: test-e2e # You will need to have a Minikube/Kind cluster up and
running to run this target, and run container-builder before the test
-label = "flows-non-persistence" # possible values are flows-non-persistence,
flows-persistence, platform, cluster
+label = "flows-ephemeral" # possible values are flows-ephemeral,
flows-persistence, platform, cluster
test-e2e:
ifeq ($(label), cluster)
@echo "๐ Running e2e tests for cluster..."
go test ./test/e2e/e2e_suite_test.go ./test/e2e/helpers.go
./test/e2e/clusterplatform_test.go \
-v -ginkgo.v -ginkgo.no-color -ginkgo.github-output
-ginkgo.label-filter=$(label) \
- -ginkgo.junit-report=./e2e-test-report-clusterplatform_test.xml
-timeout 60m;
+ -ginkgo.junit-report=./e2e-test-report-clusterplatform_test.xml
-timeout 60m KUSTOMIZE=$(KUSTOMIZE);
else ifeq ($(label), platform)
@echo "๐ฆ Running e2e tests for platform..."
go test ./test/e2e/e2e_suite_test.go ./test/e2e/helpers.go
./test/e2e/platform_test.go \
-v -ginkgo.v -ginkgo.no-color -ginkgo.github-output
-ginkgo.label-filter=$(label) \
- -ginkgo.junit-report=./e2e-test-report-platform_test.xml -timeout 60m;
-else ifeq ($(label), flows-non-persistence)
- @echo "๐ Running e2e tests for flows-non-persistence..."
+ -ginkgo.junit-report=./e2e-test-report-platform_test.xml -timeout 60m
KUSTOMIZE=$(KUSTOMIZE);
+else ifeq ($(label), flows-ephemeral)
+ @echo "๐ Running e2e tests for flows-ephemeral..."
go test ./test/e2e/e2e_suite_test.go ./test/e2e/helpers.go
./test/e2e/workflow_test.go \
-v -ginkgo.v -ginkgo.no-color -ginkgo.github-output
-ginkgo.label-filter=$(label) \
- -ginkgo.junit-report=./e2e-test-report-workflow_test.xml -timeout 60m;
+ -ginkgo.junit-report=./e2e-test-report-workflow_test.xml -timeout 60m
KUSTOMIZE=$(KUSTOMIZE);
else ifeq ($(label), flows-persistence)
@echo "๐ Running e2e tests for flows-persistence..."
go test ./test/e2e/e2e_suite_test.go ./test/e2e/helpers.go
./test/e2e/workflow_test.go \
-v -ginkgo.v -ginkgo.no-color -ginkgo.github-output
-ginkgo.label-filter=$(label) \
- -ginkgo.junit-report=./e2e-test-report-workflow_test.xml -timeout 60m;
+ -ginkgo.junit-report=./e2e-test-report-workflow_test.xml -timeout 60m
KUSTOMIZE=$(KUSTOMIZE);
else
- @echo "โ Invalid label. Please use one of: cluster, platform,
flows-non-persistence, flows-persistence"
+ @echo "โ Invalid label. Please use one of: cluster, platform,
flows-ephemeral, flows-persistence"
endif
diff --git a/hack/local/run-e2e.sh b/hack/local/run-e2e.sh
index 3515b6c0..94518613 100755
--- a/hack/local/run-e2e.sh
+++ b/hack/local/run-e2e.sh
@@ -20,7 +20,8 @@
# You must have minikube installed
MINIKUBE_PROFILE=${1:-minikube}
SKIP_IMG_BUILD=${2:-false}
-TEST_LABELS=${3:-"flows-non-persistence"} # possible values are
flows-non-persistence, flows-persistence, platform, cluster
+TEST_LABELS=${3:-"flows-ephemeral"} # possible values are flows-ephemeral,
flows-persistence, platform, cluster
+SKIP_UNDEPLOY=${4:-false}
# Emoticons and enhanced messages
echo "๐ Using minikube profile ${MINIKUBE_PROFILE}"
@@ -37,8 +38,13 @@ fi
# clean up previous runs, hiding logs
echo "๐งน Cleaning up previous test namespaces..."
kubectl get namespaces -o name | awk -F/ '/^namespace\/test/ {print $2}' |
xargs kubectl delete namespace &> /dev/null
-echo "๐งน Undeploying previous instances..."
-make undeploy ignore-not-found=true &> /dev/null
+
+if [ "${SKIP_UNDEPLOY}" = false ]; then
+ echo "๐งน Cleaning up previous test resources namespace..."
+ kubectl delete namespace e2e-resources &> /dev/null
+ echo "๐งน Undeploying previous instances..."
+ make undeploy ignore-not-found=true &> /dev/null
+fi
# Image build process
if [ "${SKIP_IMG_BUILD}" = "false" ]; then
diff --git a/internal/controller/platform/platformutils_test.go
b/internal/controller/platform/platformutils_test.go
index d613ffa3..d806450f 100644
--- a/internal/controller/platform/platformutils_test.go
+++ b/internal/controller/platform/platformutils_test.go
@@ -37,7 +37,7 @@ const dockerFile = "FROM
docker.io/apache/default-test-kie-sonataflow-builder:ma
func TestSonataFlowBuildController(t *testing.T) {
platform := test.GetBasePlatform()
- dockerfileBytes, err := os.ReadFile("../../../test/builder/Dockerfile")
+ dockerfileBytes, err := os.ReadFile("testdata/platformTest.Dockerfile")
if err != nil {
assert.Fail(t, "Unable to read base Dockerfile")
}
diff --git a/test/builder/Dockerfile
b/internal/controller/platform/testdata/platformTest.Dockerfile
similarity index 96%
rename from test/builder/Dockerfile
rename to internal/controller/platform/testdata/platformTest.Dockerfile
index 41dbbae3..c9b902ba 100644
--- a/test/builder/Dockerfile
+++ b/internal/controller/platform/testdata/platformTest.Dockerfile
@@ -24,7 +24,7 @@ USER 1001
WORKDIR /home/kogito/kogito-base
# Copy from build context to skeleton resources project
-COPY --chown=1001 . ./src/main/resources
+COPY --chown=1001 ../../../../test/builder ./src/main/resources
# Maven vars enhirited from the base image
RUN ${MAVEN_HOME}/bin/mvn -U -B ${MAVEN_ARGS_APPEND} -s ${MAVEN_SETTINGS_PATH}
clean install -DskipTests
diff --git a/test/builder/greetings.sw.json b/test/builder/greetings.sw.json
deleted file mode 100644
index a619b3b8..00000000
--- a/test/builder/greetings.sw.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "id": "jsongreet",
- "version": "1.0",
- "name": "Greeting workflow",
- "description": "JSON based greeting workflow",
- "start": "ChooseOnLanguage",
- "functions": [
- {
- "name": "greetFunction",
- "type": "custom",
- "operation": "sysout"
- }
- ],
- "states": [
- {
- "name": "ChooseOnLanguage",
- "type": "switch",
- "dataConditions": [
- {
- "condition": "${ .language == \"English\" }",
- "transition": "GreetInEnglish"
- },
- {
- "condition": "${ .language == \"Spanish\" }",
- "transition": "GreetInSpanish"
- }
- ],
- "defaultCondition": {
- "transition": "GreetInEnglish"
- }
- },
- {
- "name": "GreetInEnglish",
- "type": "inject",
- "data": {
- "greeting": "Hello from JSON Workflow, "
- },
- "transition": "GreetPerson"
- },
- {
- "name": "GreetInSpanish",
- "type": "inject",
- "data": {
- "greeting": "Saludos desde JSON Workflow, "
- },
- "transition": "GreetPerson"
- },
- {
- "name": "GreetPerson",
- "type": "operation",
- "actions": [
- {
- "name": "greetAction",
- "functionRef": {
- "refName": "greetFunction",
- "arguments": {
- "message": ".greeting+.name"
- }
- }
- }
- ],
- "end": {
- "terminate": true
- }
- }
- ]
-}
diff --git a/test/e2e/clusterplatform_test.go b/test/e2e/clusterplatform_test.go
index 8602afab..68bc6d06 100644
--- a/test/e2e/clusterplatform_test.go
+++ b/test/e2e/clusterplatform_test.go
@@ -73,6 +73,11 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
Expect(err).NotTo(HaveOccurred())
}
}
+
+ // Remove SonataFlowClusterPlatform created in the last run
+ cmd := exec.Command("kubectl", "delete",
"sonataflowclusterplatform", "--all", "--wait")
+ _, err := utils.Run(cmd)
+ Expect(err).NotTo(HaveOccurred())
})
var _ = Context("with supporting services enabled", func() {
DescribeTable("against a platform in a separate namespace",
func(testcaseDir string, profile string, persistenceType string, withServices
bool) {
@@ -80,8 +85,8 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
var manifests []byte
EventuallyWithOffset(1, func() error {
var err error
- cmd := exec.Command("kubectl", "kustomize",
filepath.Join(projectDir,
-
test.GetSonataFlowE2EPlatformServicesDirectory(), profile,
clusterWideEphemeral))
+ cmd := exec.Command("kubectl", "kustomize",
+
test.GetPathFromE2EDirectory("platform", "services", profile,
clusterWideEphemeral))
manifests, err = utils.Run(cmd)
return err
}, time.Minute, time.Second).Should(Succeed())
@@ -91,7 +96,7 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
_, err := utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
- By("Wait for SonatatFlowPlatform CR in " +
targetNamespace + " to be ready")
+ By("Wait for SonataFlowPlatform CR in " +
targetNamespace + " to be ready")
// wait for platform to be ready
EventuallyWithOffset(1, func() error {
cmd = exec.Command("kubectl", "wait",
"sfplatform", "-n", targetNamespace, "sonataflow-platform", "--for",
"condition=Succeed", "--timeout=5s")
@@ -116,7 +121,7 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
}, 20*time.Minute, 5).Should(Succeed())
if withServices {
- By("Deploy SonatatFlowPlatform CR with services
configured in " + targetNamespace2)
+ By("Deploy SonataFlowPlatform CR with services
configured in " + targetNamespace2)
EventuallyWithOffset(1, func() error {
var err error
cmd := exec.Command("kubectl",
"kustomize", filepath.Join(projectDir,
@@ -148,18 +153,24 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
return returnedValue
}, 20*time.Minute,
5).Should(Equal([]byte("''")))
+ By("Replacing the image with a prebuilt one and
rollout")
+ EventuallyWithOffset(1, func() error {
+ return
kubectlPatchSonataFlowImageAndRollout(targetNamespace2,
prebuiltWorkflows.CallBack.Name, prebuiltWorkflows.CallBack.Tag)
+ }, 3*time.Minute, time.Second).Should(Succeed())
+
+ By("Waiting for Data Index and Jobs Service
URLs")
dataIndexServiceUrl :=
services.GenerateServiceURL(constants.DefaultHTTPProtocol, targetNamespace2,
"sonataflow-platform-"+constants.DataIndexServiceName)
jobServiceUrl :=
services.GenerateServiceURL(constants.DefaultHTTPProtocol, targetNamespace2,
"sonataflow-platform-"+constants.JobServiceName)
EventuallyWithOffset(1, func() []byte {
- cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, "callbackstatetimeouts", "-o",
"jsonpath='{.status.services.dataIndexRef.url}'")
+ cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, prebuiltWorkflows.CallBack.Name, "-o",
"jsonpath='{.status.services.dataIndexRef.url}'")
returnedValue, _ := utils.Run(cmd)
return returnedValue
- }, 20*time.Minute, 5).Should(Equal([]byte("'" +
dataIndexServiceUrl + "'")))
+ }, 3*time.Minute, 5).Should(Equal([]byte("'" +
dataIndexServiceUrl + "'")))
EventuallyWithOffset(1, func() []byte {
- cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, "callbackstatetimeouts", "-o",
"jsonpath='{.status.services.jobServiceRef.url}'")
+ cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, prebuiltWorkflows.CallBack.Name, "-o",
"jsonpath='{.status.services.jobServiceRef.url}'")
returnedValue, _ := utils.Run(cmd)
return returnedValue
- }, 20*time.Minute, 5).Should(Equal([]byte("'" +
jobServiceUrl + "'")))
+ }, 3*time.Minute, 5).Should(Equal([]byte("'" +
jobServiceUrl + "'")))
} else {
EventuallyWithOffset(1, func() error {
var err error
@@ -193,23 +204,30 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
returnedValue, _ := utils.Run(cmd)
return returnedValue
}, 20*time.Minute, 5).Should(Equal([]byte("'" +
jobServiceUrl + "'")))
+
+ By("Replacing the image with a prebuilt one and
rollout")
+ EventuallyWithOffset(1, func() error {
+ return
kubectlPatchSonataFlowImageAndRollout(targetNamespace2,
prebuiltWorkflows.CallBack.Name, prebuiltWorkflows.CallBack.Tag)
+ }, 3*time.Minute, time.Second).Should(Succeed())
+
+ By("Waiting for Data Index and Jobs Service
URLs")
EventuallyWithOffset(1, func() []byte {
- cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, "callbackstatetimeouts", "-o",
"jsonpath='{.status.services.dataIndexRef.url}'")
+ cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, prebuiltWorkflows.CallBack.Name, "-o",
"jsonpath='{.status.services.dataIndexRef.url}'")
returnedValue, _ := utils.Run(cmd)
return returnedValue
- }, 20*time.Minute, 5).Should(Equal([]byte("'" +
dataIndexServiceUrl + "'")))
+ }, 3*time.Minute, 5).Should(Equal([]byte("'" +
dataIndexServiceUrl + "'")))
EventuallyWithOffset(1, func() []byte {
- cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, "callbackstatetimeouts", "-o",
"jsonpath='{.status.services.jobServiceRef.url}'")
+ cmd = exec.Command("kubectl", "get",
"sf", "-n", targetNamespace2, prebuiltWorkflows.CallBack.Name, "-o",
"jsonpath='{.status.services.jobServiceRef.url}'")
returnedValue, _ := utils.Run(cmd)
return returnedValue
- }, 20*time.Minute, 5).Should(Equal([]byte("'" +
jobServiceUrl + "'")))
+ }, 3*time.Minute, 5).Should(Equal([]byte("'" +
jobServiceUrl + "'")))
}
cmd = exec.Command("kubectl", "delete",
"SonataFlowClusterPlatform", "cluster", "--wait")
_, err = utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
},
- Entry("without services configured",
test.GetSonataFlowE2EPlatformNoServicesDirectory(),
metadata.PreviewProfile.String(), ephemeral, false),
- Entry("with services configured",
test.GetSonataFlowE2EPlatformServicesDirectory(),
metadata.PreviewProfile.String(), "ephemeral-with-workflow", true),
+ Entry("without services configured",
test.GetPathFromE2EDirectory("platform", "noservices"),
metadata.GitOpsProfile.String(), ephemeral, false),
+ Entry("with services configured",
test.GetPathFromE2EDirectory("platform", "services"),
metadata.GitOpsProfile.String(), "ephemeral-with-workflow", true),
)
DescribeTable("against a platform in a separate namespace",
func(testcaseDir string, profile string, persistenceType string) {
@@ -217,8 +235,7 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
var manifests []byte
EventuallyWithOffset(1, func() error {
var err error
- cmd := exec.Command("kubectl", "kustomize",
filepath.Join(projectDir,
-
test.GetSonataFlowE2EPlatformServicesDirectory(), profile,
clusterWideEphemeral))
+ cmd := exec.Command("kubectl", "kustomize",
test.GetPathFromE2EDirectory("platform", "services", profile,
clusterWideEphemeral))
manifests, err = utils.Run(cmd)
return err
}, time.Minute, time.Second).Should(Succeed())
@@ -287,8 +304,8 @@ var _ = Describe("Cluster Platform Use Cases :: ",
Label("cluster"), Ordered, fu
_, err = utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
},
- Entry("with only Data Index configured",
test.GetSonataFlowE2EPlatformServicesDirectory(),
metadata.PreviewProfile.String(), ephemeralDataIndex),
- Entry("with only Job Service configured",
test.GetSonataFlowE2EPlatformServicesDirectory(),
metadata.PreviewProfile.String(), ephemeralJobService),
+ Entry("with only Data Index configured",
test.GetPathFromE2EDirectory("platform", "services"),
metadata.GitOpsProfile.String(), ephemeralDataIndex),
+ Entry("with only Job Service configured",
test.GetPathFromE2EDirectory("platform", "services"),
metadata.GitOpsProfile.String(), ephemeralJobService),
)
})
})
diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go
index 25113c8f..e249d399 100644
--- a/test/e2e/e2e_suite_test.go
+++ b/test/e2e/e2e_suite_test.go
@@ -20,8 +20,14 @@
package e2e
import (
+ "context"
"fmt"
+ "os/exec"
"testing"
+ "time"
+
+ "github.com/apache/incubator-kie-kogito-serverless-operator/test"
+ "github.com/apache/incubator-kie-kogito-serverless-operator/test/utils"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
@@ -30,6 +36,149 @@ import (
// Run e2e tests using the Ginkgo runner.
func TestE2E(t *testing.T) {
RegisterFailHandler(Fail)
- fmt.Fprintf(GinkgoWriter, "Starting SonataFlow Operator suite\n")
- RunSpecs(t, "SonataFlow e2e suite")
+ GinkgoWriter.Println("Starting SonataFlow Operator suite")
+ RunSpecs(t, "SonataFlow Operator e2e suite")
+}
+
+// prebuiltWorkflows global accessor for the prebuilt workflows
+var prebuiltWorkflows E2EWorkflows
+
+const (
+ // resourcesNamespace is the global namespace used to deploy e2e
resources
+ resourcesNamespace = "e2e-resources"
+ // waitForBuildTimeout is the time we should wait for the workflows to
be deployed
+ waitForBuildTimeout = 15 * time.Minute
+
+ flowCallbackPersistenceName = "callbackstatetimeouts-persistence"
+ flowCallbackName = "callbackstatetimeouts"
+ flowGreetingsName = "greetings"
+)
+
+type E2EWorkflowEntry struct {
+ Name string
+ Tag string
+}
+
+func (e *E2EWorkflowEntry) String() string {
+ return fmt.Sprintf("%s: %s", e.Name, e.Tag)
+}
+
+type E2EWorkflows struct {
+ // CallBackPersistence is the prebuilt workflow to use on every use
case that requires persistence
+ CallBackPersistence E2EWorkflowEntry
+ // CallBack is the prebuilt workflow to use on every use case that
requires events or jobs services integration
+ CallBack E2EWorkflowEntry
+ // Greetings is the general usage image to use on any use case that
requires a SonataFlow deployment
+ Greetings E2EWorkflowEntry
+}
+
+func (e *E2EWorkflows) String() string {
+ return fmt.Sprintf("%s \n %s \n %s", e.CallBack, e.CallBackPersistence,
e.Greetings)
+}
+
+type DeployedWorkflow struct {
+ YAMLFile string
+ ImageTag string
+}
+
+var _ = BeforeSuite(func() {
+ GinkgoWriter.Print("Checking if resources namespace is available\n")
+ namespaceExists, err := kubectlNamespaceExists(resourcesNamespace)
+ Expect(err).NotTo(HaveOccurred())
+
+ workflows := make(map[string]*DeployedWorkflow, 2)
+ workflows[flowCallbackName] = &DeployedWorkflow{YAMLFile:
test.GetPathFromE2EDirectory("before-suite",
"sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts.yaml")}
+ workflows[flowCallbackPersistenceName] = &DeployedWorkflow{YAMLFile:
test.GetPathFromE2EDirectory("before-suite",
"sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts-persistence.yaml")}
+ workflows[flowGreetingsName] = &DeployedWorkflow{YAMLFile:
test.GetPathFromE2EDirectory("before-suite",
"sonataflow.org_v1alpha08_sonataflow-greetings.yaml")}
+ if !namespaceExists {
+ GinkgoWriter.Println("Creating the resources namespace")
+ err = kubectlCreateNamespace(resourcesNamespace)
+ Expect(err).NotTo(HaveOccurred())
+
+ GinkgoWriter.Println("Pre-built workflows within the cluster")
+ err = deployWorkflowsAndWaitForBuild(workflows)
+ Expect(err).NotTo(HaveOccurred())
+ } else {
+ GinkgoWriter.Println("Fetch pre-built workflows images in the
cluster")
+ err = fetchImageTagsBuiltWorkflows(workflows)
+ Expect(err).NotTo(HaveOccurred())
+ }
+
+ // Convert to a simpler structure
+ prebuiltWorkflows.CallBack.Tag = workflows[flowCallbackName].ImageTag
+ prebuiltWorkflows.CallBack.Name = flowCallbackName
+ prebuiltWorkflows.CallBackPersistence.Tag =
workflows[flowCallbackPersistenceName].ImageTag
+ prebuiltWorkflows.CallBackPersistence.Name = flowCallbackPersistenceName
+ prebuiltWorkflows.Greetings.Tag = workflows[flowGreetingsName].ImageTag
+ prebuiltWorkflows.Greetings.Name = flowGreetingsName
+ GinkgoWriter.Println("Images are ready for upcoming tests")
+
+ // Delete the workflows since we already have the images in the
internal registry, all gucci
+ for name := range workflows {
+ err = kubectlPatchSonataFlowScaleDown(resourcesNamespace, name)
+ Expect(err).NotTo(HaveOccurred())
+ }
+})
+
+func deployWorkflows(workflows map[string]*DeployedWorkflow) error {
+ for _, workflow := range workflows {
+ if err := kubectlApplyFileOnCluster(workflow.YAMLFile,
resourcesNamespace); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func fetchImageTagsBuiltWorkflows(workflows map[string]*DeployedWorkflow)
error {
+ ctx, cancel := context.WithTimeout(context.Background(),
waitForBuildTimeout)
+ defer cancel()
+
+ statusChan := make(chan error, len(workflows))
+ for name, workflow := range workflows {
+ go func(w *DeployedWorkflow) {
+ ticker := time.NewTicker(10 * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ statusChan <- fmt.Errorf("timeout
reached: workflow %s in namespace %s did not reach running state", name,
resourcesNamespace)
+ return
+ case <-ticker.C:
+ if len(workflow.ImageTag) == 0 {
+ cmd := exec.Command("kubectl",
"get", "sonataflowbuild", name, "-n", resourcesNamespace, "-o",
"jsonpath={.status.imageTag}")
+ response, err := utils.Run(cmd)
+ if err != nil {
+
GinkgoWriter.Println(fmt.Errorf("failed to check the workflow image tag: %v",
err))
+ statusChan <- err
+ }
+ if len(response) > 0 {
+
GinkgoWriter.Printf("Got response: %s \n", response)
+ workflow.ImageTag =
string(response)
+ statusChan <- nil
+ }
+ }
+ }
+ }
+ }(workflow)
+ }
+
+ // Wait for all workflows to be in a running state or for errors to
occur
+ for i := 0; i < len(workflows); i++ {
+ if err := <-statusChan; err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func deployWorkflowsAndWaitForBuild(workflows map[string]*DeployedWorkflow)
error {
+ if err := deployWorkflows(workflows); err != nil {
+ return err
+ }
+ if err := fetchImageTagsBuiltWorkflows(workflows); err != nil {
+ return err
+ }
+ return nil
}
diff --git a/test/e2e/helpers.go b/test/e2e/helpers.go
index 83394d4f..e6e2faca 100644
--- a/test/e2e/helpers.go
+++ b/test/e2e/helpers.go
@@ -61,6 +61,55 @@ var (
upStatus string = "UP"
)
+func kubectlApplyFileOnCluster(file, namespace string) error {
+ cmd := exec.Command("kubectl", "apply", "-f", file, "-n", namespace)
+ _, err := utils.Run(cmd)
+ return err
+}
+
+func kubectlDeleteFileOnCluster(file, namespace string) error {
+ cmd := exec.Command("kubectl", "delete", "-f", file, "-n", namespace)
+ _, err := utils.Run(cmd)
+ return err
+}
+
+func kubectlCreateNamespace(namespace string) error {
+ cmd := exec.Command("kubectl", "create", "namespace", namespace)
+ _, err := utils.Run(cmd)
+ return err
+}
+
+func kubectlNamespaceExists(namespace string) (bool, error) {
+ cmd := exec.Command("kubectl", "get", "namespace", "-o",
fmt.Sprintf(`jsonpath={.items[?(@.metadata.name=="%s")].metadata.name}`,
namespace))
+ output, err := utils.Run(cmd)
+ if err != nil {
+ return false, err
+ }
+ return len(output) > 0, nil
+}
+
+func kubectlDeleteNamespace(namespace string) error {
+ cmd := exec.Command("kubectl", "delete", "namespace", namespace)
+ _, err := utils.Run(cmd)
+ return err
+}
+
+func kubectlPatchSonataFlowImageAndRollout(namespace, workflowName, image
string) error {
+ cmd := exec.Command("kubectl", "patch", "sonataflow", workflowName,
+ "--type", "json", "-n", namespace,
+ "-p", fmt.Sprintf(`[{"op": "replace", "path":
"/spec/podTemplate/container/image", "value": "%s"}, {"op": "replace", "path":
"/spec/podTemplate/replicas", "value": 1}]`, image))
+ _, err := utils.Run(cmd)
+ return err
+}
+
+func kubectlPatchSonataFlowScaleDown(namespace, workflowName string) error {
+ cmd := exec.Command("kubectl", "patch", "sonataflow", workflowName,
+ "--type", "json", "-n", namespace,
+ "-p", `[{"op": "replace", "path": "/spec/podTemplate/replicas",
"value": 0}]`)
+ _, err := utils.Run(cmd)
+ return err
+}
+
func getHealthFromPod(name, namespace string) (*health, error) {
// iterate over all containers to find the one that responds to the
HTTP health endpoint
Expect(name).NotTo(BeEmpty(), "pod name is empty")
@@ -127,7 +176,7 @@ func getHealthStatusInContainer(podName string,
containerName string, ns string)
return &h, nil
}
-func verifyWorkflowIsInRunningStateInNamespace(workflowName string, ns string)
bool {
+func verifyWorkflowIsInRunningState(workflowName string, ns string) bool {
cmd := exec.Command("kubectl", "get", "workflow", workflowName, "-n",
ns, "-o", "jsonpath={.status.conditions[?(@.type=='Running')].status}")
response, err := utils.Run(cmd)
if err != nil {
@@ -148,10 +197,6 @@ func
verifyWorkflowIsInRunningStateInNamespace(workflowName string, ns string) b
return status
}
-func verifyWorkflowIsInRunningState(workflowName string, targetNamespace
string) bool {
- return verifyWorkflowIsInRunningStateInNamespace(workflowName,
targetNamespace)
-}
-
func verifyWorkflowIsAddressable(workflowName string, targetNamespace string)
bool {
cmd := exec.Command("kubectl", "get", "workflow", workflowName, "-n",
targetNamespace, "-ojsonpath={.status.address.url}")
if response, err := utils.Run(cmd); err != nil {
@@ -193,35 +238,6 @@ func verifySchemaMigration(data, name string) bool {
strings.Contains(data, fmt.Sprintf("Schema \"%s\" is up
to date. No migration necessary", name)))
}
-func verifyKSinkInjection(label, ns string) bool {
- cmd := exec.Command("kubectl", "get", "pod", "-n", ns, "-l", label,
"-o", "jsonpath={.items[*].metadata.name}")
- out, err := utils.Run(cmd)
- if err != nil {
- GinkgoWriter.Println(fmt.Errorf("failed to get pods: %v", err))
- return false
- }
- podNames := strings.Fields(string(out))
- if len(podNames) == 0 {
- GinkgoWriter.Println("no pods found to check K_SINK")
- return false // pods haven't created yet
- }
- GinkgoWriter.Println(fmt.Sprintf("pods found: %s", podNames))
- for _, pod := range podNames {
- cmd = exec.Command("kubectl", "get", "pod", pod, "-n", ns,
"-o", "json")
- out, err := utils.Run(cmd)
- if err != nil {
- GinkgoWriter.Println(fmt.Errorf("failed to get pod:
%v", err))
- return false
- }
- GinkgoWriter.Println(string(out))
- if !strings.Contains(string(out), "K_SINK") { // The pod does
not have K_SINK injected
- GinkgoWriter.Println(fmt.Sprintf("Pod does not have
K_SINK injected: %s", string(out)))
- return false
- }
- }
- return true
-}
-
func waitForPodRestartCompletion(label, ns string) {
EventuallyWithOffset(1, func() bool {
cmd := exec.Command("kubectl", "get", "pod", "-n", ns, "-l",
label, "-o", "jsonpath={.items[*].metadata.name}")
diff --git a/test/e2e/platform_test.go b/test/e2e/platform_test.go
index d34e7cc7..6e75934d 100644
--- a/test/e2e/platform_test.go
+++ b/test/e2e/platform_test.go
@@ -76,13 +76,13 @@ var _ = Describe("Platform Use Cases :: ",
Label("platform"), Ordered, func() {
})
var _ = Context("with platform services", func() {
- DescribeTable("when creating a simple workflow",
func(testcaseDir string, profile string, persistenceType string) {
+ DescribeTable("when creating a simple workflow",
func(testcaseDir string, profile metadata.ProfileType, persistenceType string) {
By("Deploy the SonataFlowPlatform CR")
var manifests []byte
EventuallyWithOffset(1, func() error {
var err error
cmd := exec.Command("kubectl", "kustomize",
filepath.Join(projectDir,
- testcaseDir, profile, persistenceType))
+ testcaseDir, profile.String(),
persistenceType))
manifests, err = utils.Run(cmd)
return err
}, time.Minute, time.Second).Should(Succeed())
@@ -98,7 +98,7 @@ var _ = Describe("Platform Use Cases :: ", Label("platform"),
Ordered, func() {
if err != nil {
return false
}
- if profile == metadata.PreviewProfile.String() {
+ if profile == metadata.GitOpsProfile {
GinkgoWriter.Println("waitForPodRestartCompletion")
waitForPodRestartCompletion("app.kubernetes.io/name=jobs-service",
targetNamespace)
GinkgoWriter.Println("waitForPodRestartCompletion done")
@@ -116,7 +116,7 @@ var _ = Describe("Platform Use Cases :: ",
Label("platform"), Ordered, func() {
}
By("Deploy the SonataFlow CR")
cmd = exec.Command("kubectl", "create", "-n",
targetNamespace, "-f", filepath.Join(projectDir,
- testcaseDir, profile, persistenceType,
"sonataflow"))
+ testcaseDir, profile.String(), persistenceType,
"sonataflow"))
manifests, err = utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
@@ -126,18 +126,29 @@ var _ = Describe("Platform Use Cases :: ",
Label("platform"), Ordered, func() {
Expect(err).NotTo(HaveOccurred())
sfNames := strings.TrimRight(string(output), " ")
+ if profile == metadata.GitOpsProfile {
+ workflowTag := prebuiltWorkflows.CallBack.Tag
+ if persistenceType == postgreSQL {
+ workflowTag =
prebuiltWorkflows.CallBackPersistence.Tag
+ }
+ By("Replacing the image with a prebuilt one and
rollout")
+ EventuallyWithOffset(1, func() error {
+ return
kubectlPatchSonataFlowImageAndRollout(targetNamespace, sfNames, workflowTag)
+ }, 3*time.Minute, time.Second).Should(Succeed())
+ }
+
By("Evaluate status of SonataFlow CR")
- for _, sf := range strings.Split(string(sfNames), " ") {
+ for _, sf := range strings.Split(sfNames, " ") {
Expect(sf).NotTo(BeEmpty(), "sonataflow name is
empty")
EventuallyWithOffset(1, func() bool {
- return
verifyWorkflowIsInRunningStateInNamespace(sf, targetNamespace)
- }, 15*time.Minute,
1*time.Minute).Should(BeTrue())
+ return
verifyWorkflowIsInRunningState(sf, targetNamespace)
+ }, 10*time.Minute,
5*time.Second).Should(BeTrue())
}
},
- Entry("with both Job Service and Data Index and
ephemeral persistence and the workflow in a dev profile",
test.GetSonataFlowE2EPlatformServicesDirectory(), metadata.DevProfile.String(),
ephemeral),
- Entry("with both Job Service and Data Index and
ephemeral persistence and the workflow in a preview profile",
test.GetSonataFlowE2EPlatformServicesDirectory(),
metadata.PreviewProfile.String(), ephemeral),
- Entry("with both Job Service and Data Index and
postgreSQL persistence and the workflow in a dev profile",
test.GetSonataFlowE2EPlatformServicesDirectory(), metadata.DevProfile.String(),
postgreSQL),
- Entry("with both Job Service and Data Index and
postgreSQL persistence and the workflow in a preview profile",
test.GetSonataFlowE2EPlatformServicesDirectory(),
metadata.PreviewProfile.String(), postgreSQL),
+ Entry("with both Job Service and Data Index and
ephemeral persistence and the workflow in a dev profile",
test.GetPathFromE2EDirectory("platform", "services"), metadata.DevProfile,
ephemeral),
+ Entry("with both Job Service and Data Index and
ephemeral persistence and the workflow in a gitops profile",
test.GetPathFromE2EDirectory("platform", "services"), metadata.GitOpsProfile,
ephemeral),
+ Entry("with both Job Service and Data Index and
postgreSQL persistence and the workflow in a dev profile",
test.GetPathFromE2EDirectory("platform", "services"), metadata.DevProfile,
postgreSQL),
+ Entry("with both Job Service and Data Index and
postgreSQL persistence and the workflow in a gitops profile",
test.GetPathFromE2EDirectory("platform", "services"), metadata.GitOpsProfile,
postgreSQL),
)
})
@@ -170,8 +181,8 @@ var _ = Describe("Platform Use Cases :: ",
Label("platform"), Ordered, func() {
verifyHealthStatusInPod(pn, targetNamespace)
}
},
- Entry("and both Job Service and Data Index using the
persistence from platform CR",
test.GetSonataFlowE2EPlatformPersistenceSampleDataDirectory("generic_from_platform_cr")),
- Entry("and both Job Service and Data Index using the one
defined in each service, discarding the one from the platform CR",
test.GetSonataFlowE2EPlatformPersistenceSampleDataDirectory("overwritten_by_services")),
+ Entry("and both Job Service and Data Index using the
persistence from platform CR", test.GetPathFromE2EDirectory("platform",
"persistence", "generic_from_platform_cr")),
+ Entry("and both Job Service and Data Index using the one
defined in each service, discarding the one from the platform CR",
test.GetPathFromE2EDirectory("platform", "persistence",
"overwritten_by_services")),
)
DescribeTable("when deploying a SonataFlowPlatform CR with brokers",
func(testcaseDir string) {
@@ -237,7 +248,7 @@ var _ = Describe("Platform Use Cases :: ",
Label("platform"), Ordered, func() {
Expect(verifyTrigger(triggers, "jobs-service-delete-job-",
constants.JobServiceJobEventsPath, targetNamespace,
"js-source")).NotTo(HaveOccurred())
Expect(verifySinkBinding("sonataflow-platform-jobs-service-sb",
targetNamespace, "js-sink")).NotTo(HaveOccurred())
},
- Entry("and both Job Service and Data Index have service level
brokers",
test.GetSonataFlowE2EPlatformServicesKnativeDirectory("service-level-broker")),
+ Entry("and both Job Service and Data Index have service level
brokers", test.GetPathFromE2EDirectory("platform", "services", "gitops",
"knative", "service-level-broker")),
)
DescribeTable("when deploying a SonataFlowPlatform CR with platform
broker", func(testcaseDir string, brokerInAnotherNamespace bool) {
@@ -317,22 +328,26 @@ var _ = Describe("Platform Use Cases :: ",
Label("platform"), Ordered, func() {
manifests, err = utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
- sfName := "callbackstatetimeouts"
+ By("Replacing the image with a prebuilt one and rollout")
+ EventuallyWithOffset(1, func() error {
+ return
kubectlPatchSonataFlowImageAndRollout(targetNamespace,
prebuiltWorkflows.CallBack.Name, prebuiltWorkflows.CallBack.Tag)
+ }, 3*time.Minute, time.Second).Should(Succeed())
+
By("Evaluate status of SonataFlow CR")
EventuallyWithOffset(1, func() bool {
- return
verifyWorkflowIsInRunningStateInNamespace(sfName, targetNamespace)
- }, 10*time.Minute, 5).Should(BeTrue())
+ return
verifyWorkflowIsInRunningState(prebuiltWorkflows.CallBack.Name, targetNamespace)
+ }, 5*time.Minute, 5).Should(BeTrue())
By("Evaluate triggers and sinkbindings for the workflow")
- cmd = exec.Command("kubectl", "get", "sonataflow", sfName,
"-n", targetNamespace, "-ojsonpath={.status.triggers}")
+ cmd = exec.Command("kubectl", "get", "sonataflow",
prebuiltWorkflows.CallBack.Name, "-n", targetNamespace,
"-ojsonpath={.status.triggers}")
output, err = utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
err = json.Unmarshal(output, &triggers)
Expect(err).NotTo(HaveOccurred())
- Expect(verifyTrigger(triggers, sfName, "", brokerNamespace,
brokerName)).NotTo(HaveOccurred())
- Expect(verifySinkBinding(fmt.Sprintf("%s-sb", sfName),
targetNamespace, brokerName)).NotTo(HaveOccurred())
+ Expect(verifyTrigger(triggers, prebuiltWorkflows.CallBack.Name,
"", brokerNamespace, brokerName)).NotTo(HaveOccurred())
+ Expect(verifySinkBinding(fmt.Sprintf("%s-sb",
prebuiltWorkflows.CallBack.Name), targetNamespace,
brokerName)).NotTo(HaveOccurred())
},
- Entry("and with broker and platform in the same namespace",
test.GetSonataFlowE2EPlatformServicesKnativeDirectory("platform-level-broker"),
false),
- Entry("and with broker and platform in a separate namespace",
test.GetSonataFlowE2EPlatformServicesKnativeDirectory("platform-level-broker"),
true),
+ Entry("and with broker and platform in the same namespace",
test.GetPathFromE2EDirectory("platform", "services", "gitops", "knative",
"platform-level-broker"), false),
+ Entry("and with broker and platform in a separate namespace",
test.GetPathFromE2EDirectory("platform", "services", "gitops", "knative",
"platform-level-broker"), true),
)
})
diff --git
a/test/testdata/workflow/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts-persistence.yaml
similarity index 86%
copy from
test/testdata/workflow/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
copy to
test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts-persistence.yaml
index ec738e94..0bf25971 100644
---
a/test/testdata/workflow/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts-persistence.yaml
@@ -15,11 +15,15 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts
+ name: callbackstatetimeouts-persistence
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: preview
spec:
+ podTemplate:
+ replicas: 0
+ # We need the persistence entry to build this image with the right extensions
persistence:
postgresql:
secretRef:
@@ -30,13 +34,7 @@ spec:
name: postgres
port: 5432
databaseName: sonataflow
- databaseSchema: callbackstatetimeouts
- podTemplate:
- initContainers:
- - name: init-postgres
- image: registry.access.redhat.com/ubi9/ubi-micro:latest
- imagePullPolicy: IfNotPresent
- command: [ 'sh', '-c', 'until (echo 1 > /dev/tcp/postgres.$(cat
/var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local/5432)
>/dev/null 2>&1; do echo "Waiting for postgres server"; sleep 3; done;' ]
+ databaseSchema: callbackstatetimeouts-persistence
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/services/preview/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts.yaml
similarity index 98%
rename from
test/testdata/platform/services/preview/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts.yaml
index a76ac23f..35fc887f 100644
---
a/test/testdata/platform/services/preview/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-callbackstatetimeouts.yaml
@@ -21,6 +21,8 @@ metadata:
sonataflow.org/version: 0.0.1
sonataflow.org/profile: preview
spec:
+ podTemplate:
+ replicas: 0
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
b/test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-greetings.yaml
similarity index 57%
copy from
test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
copy to
test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-greetings.yaml
index c8da7e8b..417963fc 100644
--- a/test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
+++
b/test/e2e/testdata/before-suite/sonataflow.org_v1alpha08_sonataflow-greetings.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Apache Software Foundation (ASF)
+# Copyright 2023 Red Hat, Inc. and/or its affiliates
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,20 +13,23 @@
# limitations under the License.
apiVersion: sonataflow.org/v1alpha08
-kind: SonataFlowPlatform
+kind: SonataFlow
metadata:
- name: sonataflow-platform
+ name: greetings
+ annotations:
+ sonataflow.org/description: Greetings example on k8s!
+ sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: preview
+ labels:
+ test: test
spec:
- build:
- template:
- buildArgs:
- - name: QUARKUS_EXTENSION
- value:
org.kie.kogito:kogito-addons-quarkus-jobs-knative-eventing:999-20240912-SNAPSHOT
- config:
- strategyOptions:
- KanikoBuildCacheEnabled: "true"
- services:
- dataIndex:
- enabled: false
- jobService:
- enabled: false
+ podTemplate:
+ replicas: 0
+ flow:
+ start: HelloWorld
+ states:
+ - name: HelloWorld
+ type: inject
+ data:
+ message: Hello World
+ end: true
diff --git a/test/testdata/order-processing/01_v1_configmap_subflows.yaml
b/test/e2e/testdata/order-processing/01_v1_configmap_subflows.yaml
similarity index 100%
rename from test/testdata/order-processing/01_v1_configmap_subflows.yaml
rename to test/e2e/testdata/order-processing/01_v1_configmap_subflows.yaml
diff --git
a/test/testdata/order-processing/02_appsv1_deployment_eventlistener.yaml
b/test/e2e/testdata/order-processing/02_appsv1_deployment_eventlistener.yaml
similarity index 100%
rename from
test/testdata/order-processing/02_appsv1_deployment_eventlistener.yaml
rename to
test/e2e/testdata/order-processing/02_appsv1_deployment_eventlistener.yaml
diff --git a/test/testdata/order-processing/03_discovery_role.yaml
b/test/e2e/testdata/order-processing/03_discovery_role.yaml
similarity index 100%
rename from test/testdata/order-processing/03_discovery_role.yaml
rename to test/e2e/testdata/order-processing/03_discovery_role.yaml
diff --git a/test/testdata/order-processing/04_v1_configmap_properties.yaml
b/test/e2e/testdata/order-processing/04_v1_configmap_properties.yaml
similarity index 100%
rename from test/testdata/order-processing/04_v1_configmap_properties.yaml
rename to test/e2e/testdata/order-processing/04_v1_configmap_properties.yaml
diff --git
a/test/testdata/order-processing/05_sonataflow.org_v1alpha08_sonataflow_devmode_orderprocessing.yaml
b/test/e2e/testdata/order-processing/05_sonataflow.org_v1alpha08_sonataflow_devmode_orderprocessing.yaml
similarity index 100%
rename from
test/testdata/order-processing/05_sonataflow.org_v1alpha08_sonataflow_devmode_orderprocessing.yaml
rename to
test/e2e/testdata/order-processing/05_sonataflow.org_v1alpha08_sonataflow_devmode_orderprocessing.yaml
diff --git a/test/testdata/order-processing/README.md
b/test/e2e/testdata/order-processing/README.md
similarity index 100%
rename from test/testdata/order-processing/README.md
rename to test/e2e/testdata/order-processing/README.md
diff --git
a/test/testdata/platform/services/preview/ephemeral-with-workflow/00-broker.yaml
b/test/e2e/testdata/platform/noservices/gitops/ephemeral/00-broker.yaml
similarity index 100%
copy from
test/testdata/platform/services/preview/ephemeral-with-workflow/00-broker.yaml
copy to test/e2e/testdata/platform/noservices/gitops/ephemeral/00-broker.yaml
diff --git
a/test/testdata/platform/noservices/preview/ephemeral/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/noservices/gitops/ephemeral/02-sonataflow_platform.yaml
similarity index 88%
rename from
test/testdata/platform/noservices/preview/ephemeral/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/noservices/gitops/ephemeral/02-sonataflow_platform.yaml
index 07f94ba3..f004aea7 100644
---
a/test/testdata/platform/noservices/preview/ephemeral/02-sonataflow_platform.yaml
+++
b/test/e2e/testdata/platform/noservices/gitops/ephemeral/02-sonataflow_platform.yaml
@@ -17,6 +17,12 @@ kind: SonataFlowPlatform
metadata:
name: sonataflow-platform
spec:
+ eventing:
+ broker:
+ ref:
+ apiVersion: eventing.knative.dev/v1
+ kind: Broker
+ name: default
build:
template:
buildArgs:
diff --git
a/test/testdata/platform/services/preview/ephemeral-with-workflow/kustomization.yaml
b/test/e2e/testdata/platform/noservices/gitops/ephemeral/kustomization.yaml
similarity index 91%
rename from
test/testdata/platform/services/preview/ephemeral-with-workflow/kustomization.yaml
rename to
test/e2e/testdata/platform/noservices/gitops/ephemeral/kustomization.yaml
index a3a9c95f..9d2b6d49 100644
---
a/test/testdata/platform/services/preview/ephemeral-with-workflow/kustomization.yaml
+++ b/test/e2e/testdata/platform/noservices/gitops/ephemeral/kustomization.yaml
@@ -12,6 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
resources:
- 00-broker.yaml
- 02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/noservices/gitops/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
copy from
test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
copy to
test/e2e/testdata/platform/noservices/gitops/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
index 249ee2c1..5eb6e23c 100644
---
a/test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/noservices/gitops/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -19,8 +19,12 @@ metadata:
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: prod
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/persistence/generic_from_platform_cr/01-postgres.yaml
b/test/e2e/testdata/platform/persistence/generic_from_platform_cr/01-postgres.yaml
similarity index 100%
rename from
test/testdata/platform/persistence/generic_from_platform_cr/01-postgres.yaml
rename to
test/e2e/testdata/platform/persistence/generic_from_platform_cr/01-postgres.yaml
diff --git
a/test/testdata/platform/persistence/generic_from_platform_cr/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/persistence/generic_from_platform_cr/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/persistence/generic_from_platform_cr/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/persistence/generic_from_platform_cr/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/persistence/generic_from_platform_cr/kustomization.yaml
b/test/e2e/testdata/platform/persistence/generic_from_platform_cr/kustomization.yaml
similarity index 100%
rename from
test/testdata/platform/persistence/generic_from_platform_cr/kustomization.yaml
rename to
test/e2e/testdata/platform/persistence/generic_from_platform_cr/kustomization.yaml
diff --git
a/test/testdata/platform/persistence/overwritten_by_services/01-postgres.yaml
b/test/e2e/testdata/platform/persistence/overwritten_by_services/01-postgres.yaml
similarity index 100%
rename from
test/testdata/platform/persistence/overwritten_by_services/01-postgres.yaml
rename to
test/e2e/testdata/platform/persistence/overwritten_by_services/01-postgres.yaml
diff --git
a/test/testdata/platform/persistence/overwritten_by_services/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/persistence/overwritten_by_services/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/persistence/overwritten_by_services/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/persistence/overwritten_by_services/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
b/test/e2e/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
similarity index 100%
copy from
test/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
copy to
test/e2e/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
diff --git
a/test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
similarity index 100%
copy from
test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
copy to
test/e2e/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
diff --git a/test/testdata/platform/services/dev/ephemeral/kustomization.yaml
b/test/e2e/testdata/platform/services/dev/ephemeral/kustomization.yaml
similarity index 100%
rename from test/testdata/platform/services/dev/ephemeral/kustomization.yaml
rename to test/e2e/testdata/platform/services/dev/ephemeral/kustomization.yaml
diff --git
a/test/testdata/platform/services/dev/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/dev/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 100%
rename from
test/testdata/platform/services/dev/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/dev/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
diff --git a/test/testdata/platform/services/dev/postgreSQL/01-postgres.yaml
b/test/e2e/testdata/platform/services/dev/postgreSQL/01-postgres.yaml
similarity index 100%
rename from test/testdata/platform/services/dev/postgreSQL/01-postgres.yaml
rename to test/e2e/testdata/platform/services/dev/postgreSQL/01-postgres.yaml
diff --git
a/test/testdata/platform/services/dev/postgreSQL/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/dev/postgreSQL/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/dev/postgreSQL/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/dev/postgreSQL/02-sonataflow_platform.yaml
diff --git a/test/testdata/platform/services/dev/postgreSQL/kustomization.yaml
b/test/e2e/testdata/platform/services/dev/postgreSQL/kustomization.yaml
similarity index 100%
rename from test/testdata/platform/services/dev/postgreSQL/kustomization.yaml
rename to test/e2e/testdata/platform/services/dev/postgreSQL/kustomization.yaml
diff --git
a/test/testdata/platform/services/dev/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/dev/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 100%
rename from
test/testdata/platform/services/dev/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/dev/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
diff --git
a/test/testdata/platform/services/preview/cluster-wide-ephemeral/01-sonataflow_clusterplatform.yaml
b/test/e2e/testdata/platform/services/gitops/cluster-wide-ephemeral/01-sonataflow_clusterplatform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/cluster-wide-ephemeral/01-sonataflow_clusterplatform.yaml
rename to
test/e2e/testdata/platform/services/gitops/cluster-wide-ephemeral/01-sonataflow_clusterplatform.yaml
diff --git
a/test/testdata/platform/services/preview/cluster-wide-ephemeral/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/cluster-wide-ephemeral/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/cluster-wide-ephemeral/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/cluster-wide-ephemeral/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/cluster-wide-ephemeral/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/cluster-wide-ephemeral/kustomization.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/cluster-wide-ephemeral/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/cluster-wide-ephemeral/kustomization.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-data-index/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-data-index/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/ephemeral-data-index/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-data-index/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-job-service/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-data-index/kustomization.yaml
similarity index 91%
rename from
test/testdata/platform/services/preview/ephemeral-job-service/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-data-index/kustomization.yaml
index 20286ada..dddcd9ea 100644
---
a/test/testdata/platform/services/preview/ephemeral-job-service/kustomization.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral-data-index/kustomization.yaml
@@ -12,10 +12,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
resources:
- 02-sonataflow_platform.yaml
- sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
sortOptions:
order: fifo
-
diff --git
a/test/testdata/platform/noservices/preview/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-data-index/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
rename from
test/testdata/platform/noservices/preview/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-data-index/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
index a76ac23f..5eb6e23c 100644
---
a/test/testdata/platform/noservices/preview/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral-data-index/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -19,8 +19,12 @@ metadata:
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: preview
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/services/preview/ephemeral-job-service/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-job-service/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/ephemeral-job-service/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-job-service/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/noservices/preview/ephemeral/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-job-service/kustomization.yaml
similarity index 91%
rename from
test/testdata/platform/noservices/preview/ephemeral/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-job-service/kustomization.yaml
index 20286ada..c17b7dd4 100644
--- a/test/testdata/platform/noservices/preview/ephemeral/kustomization.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral-job-service/kustomization.yaml
@@ -12,6 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
resources:
- 02-sonataflow_platform.yaml
- sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-data-index/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
rename from
test/testdata/platform/services/preview/ephemeral-data-index/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
index 249ee2c1..5eb6e23c 100644
---
a/test/testdata/platform/services/preview/ephemeral-data-index/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -19,8 +19,12 @@ metadata:
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: prod
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git a/test/testdata/platform/services/preview/ephemeral/00-broker.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/00-broker.yaml
similarity index 100%
rename from test/testdata/platform/services/preview/ephemeral/00-broker.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/00-broker.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-with-workflow/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/ephemeral-with-workflow/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-data-index/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/kustomization.yaml
similarity index 89%
rename from
test/testdata/platform/services/preview/ephemeral-data-index/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/kustomization.yaml
index a6807fcf..9d2b6d49 100644
---
a/test/testdata/platform/services/preview/ephemeral-data-index/kustomization.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/kustomization.yaml
@@ -12,9 +12,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
resources:
+- 00-broker.yaml
- 02-sonataflow_platform.yaml
- sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
sortOptions:
order: fifo
+
diff --git
a/test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
copy from
test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
copy to
test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
index 249ee2c1..5eb6e23c 100644
---
a/test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral-with-workflow/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -19,8 +19,12 @@ metadata:
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: prod
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git a/test/testdata/platform/services/preview/postgreSQL/00-broker.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral/00-broker.yaml
similarity index 100%
rename from test/testdata/platform/services/preview/postgreSQL/00-broker.yaml
rename to test/e2e/testdata/platform/services/gitops/ephemeral/00-broker.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/ephemeral/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral/kustomization.yaml
similarity index 91%
rename from test/testdata/platform/services/preview/ephemeral/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral/kustomization.yaml
index bb1fcd0e..d890becb 100644
--- a/test/testdata/platform/services/preview/ephemeral/kustomization.yaml
+++ b/test/e2e/testdata/platform/services/gitops/ephemeral/kustomization.yaml
@@ -11,6 +11,8 @@
# 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.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
resources:
- 00-broker.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/gitops/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
rename from
test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/gitops/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
index 249ee2c1..5eb6e23c 100644
---
a/test/testdata/platform/services/preview/ephemeral-job-service/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/services/gitops/ephemeral/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -19,8 +19,12 @@ metadata:
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: prod
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/services/preview/knative/platform-level-broker/01-postgres.yaml
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/01-postgres.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/knative/platform-level-broker/01-postgres.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/01-postgres.yaml
diff --git
a/test/testdata/platform/services/preview/knative/platform-level-broker/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/knative/platform-level-broker/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/knative/platform-level-broker/broker/broker.yaml
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/broker/broker.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/knative/platform-level-broker/broker/broker.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/broker/broker.yaml
diff --git
a/test/testdata/platform/services/preview/knative/platform-level-broker/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/kustomization.yaml
similarity index 93%
rename from
test/testdata/platform/services/preview/knative/platform-level-broker/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/kustomization.yaml
index d3fd127c..75c71d15 100644
---
a/test/testdata/platform/services/preview/knative/platform-level-broker/kustomization.yaml
+++
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/kustomization.yaml
@@ -12,6 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
resources:
- 01-postgres.yaml
- 02-sonataflow_platform.yaml
@@ -29,4 +32,3 @@ secretGenerator:
sortOptions:
order: fifo
-
diff --git
a/test/testdata/platform/services/preview/knative/platform-level-broker/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
rename from
test/testdata/platform/services/preview/knative/platform-level-broker/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
index a76ac23f..5eb6e23c 100644
---
a/test/testdata/platform/services/preview/knative/platform-level-broker/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/services/gitops/knative/platform-level-broker/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
@@ -19,8 +19,12 @@ metadata:
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: preview
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/services/preview/knative/service-level-broker/01-postgres.yaml
b/test/e2e/testdata/platform/services/gitops/knative/service-level-broker/01-postgres.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/knative/service-level-broker/01-postgres.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/service-level-broker/01-postgres.yaml
diff --git
a/test/testdata/platform/services/preview/knative/service-level-broker/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/knative/service-level-broker/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/knative/service-level-broker/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/service-level-broker/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/knative/service-level-broker/broker/00-broker.yaml
b/test/e2e/testdata/platform/services/gitops/knative/service-level-broker/broker/00-broker.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/knative/service-level-broker/broker/00-broker.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/service-level-broker/broker/00-broker.yaml
diff --git
a/test/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/knative/service-level-broker/kustomization.yaml
similarity index 93%
rename from
test/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/knative/service-level-broker/kustomization.yaml
index d3fd127c..803d201c 100644
---
a/test/testdata/platform/persistence/overwritten_by_services/kustomization.yaml
+++
b/test/e2e/testdata/platform/services/gitops/knative/service-level-broker/kustomization.yaml
@@ -11,6 +11,8 @@
# 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.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
resources:
- 01-postgres.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/00-broker.yaml
b/test/e2e/testdata/platform/services/gitops/postgreSQL/00-broker.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_di_and_js_services/00-broker.yaml
rename to test/e2e/testdata/platform/services/gitops/postgreSQL/00-broker.yaml
diff --git
a/test/testdata/platform/services/preview/postgreSQL/01-postgres.yaml
b/test/e2e/testdata/platform/services/gitops/postgreSQL/01-postgres.yaml
similarity index 100%
rename from test/testdata/platform/services/preview/postgreSQL/01-postgres.yaml
rename to test/e2e/testdata/platform/services/gitops/postgreSQL/01-postgres.yaml
diff --git
a/test/testdata/platform/services/preview/postgreSQL/02-sonataflow_platform.yaml
b/test/e2e/testdata/platform/services/gitops/postgreSQL/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/postgreSQL/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/platform/services/gitops/postgreSQL/02-sonataflow_platform.yaml
diff --git
a/test/testdata/platform/services/preview/postgreSQL/kustomization.yaml
b/test/e2e/testdata/platform/services/gitops/postgreSQL/kustomization.yaml
similarity index 93%
rename from
test/testdata/platform/services/preview/postgreSQL/kustomization.yaml
rename to
test/e2e/testdata/platform/services/gitops/postgreSQL/kustomization.yaml
index cb33c50a..6f0c7bec 100644
--- a/test/testdata/platform/services/preview/postgreSQL/kustomization.yaml
+++ b/test/e2e/testdata/platform/services/gitops/postgreSQL/kustomization.yaml
@@ -11,6 +11,8 @@
# 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.
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
resources:
- 00-broker.yaml
@@ -30,4 +32,3 @@ secretGenerator:
sortOptions:
order: fifo
-
diff --git
a/test/testdata/platform/services/preview/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/platform/services/gitops/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 94%
rename from
test/testdata/platform/services/preview/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/platform/services/gitops/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
index a76ac23f..a2de416a 100644
---
a/test/testdata/platform/services/preview/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/platform/services/gitops/postgreSQL/sonataflow/04-sonataflow_callbackstatetimeouts.sw.yaml
@@ -15,12 +15,16 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts
+ name: callbackstatetimeouts-persistence
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
- sonataflow.org/profile: preview
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
b/test/e2e/testdata/workflows/greetings/01-sonataflow.org_v1alpha08_sonataflow.yaml
similarity index 55%
rename from
test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/workflows/greetings/01-sonataflow.org_v1alpha08_sonataflow.yaml
index c8da7e8b..31c5096d 100644
--- a/test/testdata/platform/services/dev/ephemeral/02-sonataflow_platform.yaml
+++
b/test/e2e/testdata/workflows/greetings/01-sonataflow.org_v1alpha08_sonataflow.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Apache Software Foundation (ASF)
+# Copyright 2023 Red Hat, Inc. and/or its affiliates
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,20 +13,25 @@
# limitations under the License.
apiVersion: sonataflow.org/v1alpha08
-kind: SonataFlowPlatform
+kind: SonataFlow
metadata:
- name: sonataflow-platform
+ name: greetings
+ annotations:
+ sonataflow.org/description: Greetings example on k8s!
+ sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: gitops
+ labels:
+ test: test
spec:
- build:
- template:
- buildArgs:
- - name: QUARKUS_EXTENSION
- value:
org.kie.kogito:kogito-addons-quarkus-jobs-knative-eventing:999-20240912-SNAPSHOT
- config:
- strategyOptions:
- KanikoBuildCacheEnabled: "true"
- services:
- dataIndex:
- enabled: false
- jobService:
- enabled: false
+ podTemplate:
+ replicas: 0
+ container:
+ image: replaceme
+ flow:
+ start: HelloWorld
+ states:
+ - name: HelloWorld
+ type: inject
+ data:
+ message: Hello World
+ end: true
diff --git a/test/testdata/workflow/persistence/by_service/01-postgres.yaml
b/test/e2e/testdata/workflows/persistence/by_service/01-postgres.yaml
similarity index 100%
rename from test/testdata/workflow/persistence/by_service/01-postgres.yaml
rename to test/e2e/testdata/workflows/persistence/by_service/01-postgres.yaml
diff --git
a/test/testdata/workflow/persistence/by_service/02-sonataflow_platform.yaml
b/test/e2e/testdata/workflows/persistence/by_service/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/by_service/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/workflows/persistence/by_service/02-sonataflow_platform.yaml
diff --git
a/test/testdata/workflow/persistence/by_service/03-configmap_callbackstatetimeouts-props.yaml
b/test/e2e/testdata/workflows/persistence/by_service/03-configmap_callbackstatetimeouts-props.yaml
similarity index 89%
rename from
test/testdata/workflow/persistence/by_service/03-configmap_callbackstatetimeouts-props.yaml
rename to
test/e2e/testdata/workflows/persistence/by_service/03-configmap_callbackstatetimeouts-props.yaml
index 85d3ac6a..358fda63 100644
---
a/test/testdata/workflow/persistence/by_service/03-configmap_callbackstatetimeouts-props.yaml
+++
b/test/e2e/testdata/workflows/persistence/by_service/03-configmap_callbackstatetimeouts-props.yaml
@@ -20,5 +20,5 @@ data:
kind: ConfigMap
metadata:
labels:
- app: callbackstatetimeouts
- name: callbackstatetimeouts-props
+ app: callbackstatetimeouts-persistence
+ name: callbackstatetimeouts-persistence-props
diff --git
a/test/testdata/workflow/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/workflows/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 94%
rename from
test/testdata/workflow/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/workflows/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
index ec738e94..528be97c 100644
---
a/test/testdata/workflow/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/workflows/persistence/by_service/04-sonataflow_callbackstatetimeouts.sw.yaml
@@ -15,10 +15,11 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts
+ name: callbackstatetimeouts-persistence
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: gitops
spec:
persistence:
postgresql:
@@ -30,8 +31,11 @@ spec:
name: postgres
port: 5432
databaseName: sonataflow
- databaseSchema: callbackstatetimeouts
+ databaseSchema: callbackstatetimeouts-persistence
podTemplate:
+ container:
+ image: replaceme
+ replicas: 0
initContainers:
- name: init-postgres
image: registry.access.redhat.com/ubi9/ubi-micro:latest
diff --git a/test/testdata/workflow/persistence/by_service/kustomization.yaml
b/test/e2e/testdata/workflows/persistence/by_service/kustomization.yaml
similarity index 100%
rename from test/testdata/workflow/persistence/by_service/kustomization.yaml
rename to test/e2e/testdata/workflows/persistence/by_service/kustomization.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_overwritten_by_service/01-postgres.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/01-postgres.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_overwritten_by_service/01-postgres.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/01-postgres.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_overwritten_by_service/02-sonataflow_platform.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_overwritten_by_service/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/02-sonataflow_platform.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_overwritten_by_service/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 95%
rename from
test/testdata/workflow/persistence/from_platform_overwritten_by_service/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/03-sonataflow_callbackstatetimeouts.sw.yaml
index fb696bff..ae3fc977 100644
---
a/test/testdata/workflow/persistence/from_platform_overwritten_by_service/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -15,10 +15,11 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts
+ name: callbackstatetimeouts-persistence
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: gitops
spec:
persistence:
postgresql:
@@ -30,9 +31,11 @@ spec:
name: postgres
port: 5432
databaseName: sonataflow
- databaseSchema: callbackstatetimeouts
+ databaseSchema: callbackstatetimeouts-persistence
podTemplate:
+ replicas: 0
container:
+ image: replaceme
env:
# set the flyway initialization in the WF container env
- name: QUARKUS_FLYWAY_MIGRATE_AT_START
diff --git
a/test/testdata/workflow/persistence/from_platform_overwritten_by_service/kustomization.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/kustomization.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_overwritten_by_service/kustomization.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_overwritten_by_service/kustomization.yaml
diff --git
a/test/testdata/platform/services/preview/ephemeral-with-workflow/00-broker.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/00-broker.yaml
similarity index 100%
rename from
test/testdata/platform/services/preview/ephemeral-with-workflow/00-broker.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/00-broker.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/01-postgres.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/01-postgres.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_di_and_js_services/01-postgres.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/01-postgres.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/02-sonataflow_platform.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_di_and_js_services/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/02-sonataflow_platform.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/03-configmap_callbackstatetimeouts-props.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/03-configmap_callbackstatetimeouts-props.yaml
similarity index 89%
rename from
test/testdata/workflow/persistence/from_platform_with_di_and_js_services/03-configmap_callbackstatetimeouts-props.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/03-configmap_callbackstatetimeouts-props.yaml
index d866ff7c..c823ae22 100644
---
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/03-configmap_callbackstatetimeouts-props.yaml
+++
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/03-configmap_callbackstatetimeouts-props.yaml
@@ -20,5 +20,5 @@ data:
kind: ConfigMap
metadata:
labels:
- app: callbackstatetimeouts
- name: callbackstatetimeouts-props
+ app: callbackstatetimeouts-persistence
+ name: callbackstatetimeouts-persistence-props
diff --git
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/04-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/04-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 94%
rename from
test/testdata/workflow/persistence/from_platform_with_di_and_js_services/04-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/04-sonataflow_callbackstatetimeouts.sw.yaml
index b1d3f5ef..b564f0aa 100644
---
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/04-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/04-sonataflow_callbackstatetimeouts.sw.yaml
@@ -15,11 +15,16 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts
+ name: callbackstatetimeouts-persistence
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: gitops
spec:
+ podTemplate:
+ container:
+ image: replaceme
+ replicas: 0
flow:
start: PrintStartMessage
events:
diff --git
a/test/testdata/workflow/persistence/from_platform_with_di_and_js_services/kustomization.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/kustomization.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_di_and_js_services/kustomization.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_di_and_js_services/kustomization.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_no_persistence_required/01-postgres.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/01-postgres.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_no_persistence_required/01-postgres.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/01-postgres.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_no_persistence_required/02-sonataflow_platform.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_no_persistence_required/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/02-sonataflow_platform.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_with_no_persistence_required/03-sonataflow_callbackstatetimeouts-no-persistence.sw.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/03-sonataflow_callbackstatetimeouts-no-persistence.sw.yaml
similarity index 96%
rename from
test/testdata/workflow/persistence/from_platform_with_no_persistence_required/03-sonataflow_callbackstatetimeouts-no-persistence.sw.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/03-sonataflow_callbackstatetimeouts-no-persistence.sw.yaml
index f7f4720f..98bb7d5c 100644
---
a/test/testdata/workflow/persistence/from_platform_with_no_persistence_required/03-sonataflow_callbackstatetimeouts-no-persistence.sw.yaml
+++
b/test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/03-sonataflow_callbackstatetimeouts-no-persistence.sw.yaml
@@ -15,16 +15,19 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts-no-persistence
+ name: callbackstatetimeouts
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: gitops
spec:
persistence: {
migrateDBOnStartUp: true
}
podTemplate:
+ replicas: 0
container:
+ image: replaceme
env:
- name: QUARKUS_FLYWAY_MIGRATE_AT_START
value: "true"
diff --git
a/test/testdata/workflow/persistence/from_platform_with_no_persistence_required/kustomization.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/kustomization.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_with_no_persistence_required/kustomization.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_with_no_persistence_required/kustomization.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_without_di_and_js_services/01-postgres.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/01-postgres.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_without_di_and_js_services/01-postgres.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/01-postgres.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_without_di_and_js_services/02-sonataflow_platform.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/02-sonataflow_platform.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_without_di_and_js_services/02-sonataflow_platform.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/02-sonataflow_platform.yaml
diff --git
a/test/testdata/workflow/persistence/from_platform_without_di_and_js_services/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/03-sonataflow_callbackstatetimeouts.sw.yaml
similarity index 96%
rename from
test/testdata/workflow/persistence/from_platform_without_di_and_js_services/03-sonataflow_callbackstatetimeouts.sw.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/03-sonataflow_callbackstatetimeouts.sw.yaml
index 307f85b6..36cf3942 100644
---
a/test/testdata/workflow/persistence/from_platform_without_di_and_js_services/03-sonataflow_callbackstatetimeouts.sw.yaml
+++
b/test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/03-sonataflow_callbackstatetimeouts.sw.yaml
@@ -15,13 +15,16 @@
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
- name: callbackstatetimeouts
+ name: callbackstatetimeouts-persistence
annotations:
sonataflow.org/description: Callback State Timeouts Example k8s
sonataflow.org/version: 0.0.1
+ sonataflow.org/profile: gitops
spec:
podTemplate:
+ replicas: 0
container:
+ image: replaceme
env:
# set the flyway initialization in the WF container env
- name: QUARKUS_FLYWAY_MIGRATE_AT_START
diff --git
a/test/testdata/workflow/persistence/from_platform_without_di_and_js_services/kustomization.yaml
b/test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/kustomization.yaml
similarity index 100%
rename from
test/testdata/workflow/persistence/from_platform_without_di_and_js_services/kustomization.yaml
rename to
test/e2e/testdata/workflows/persistence/from_platform_without_di_and_js_services/kustomization.yaml
diff --git a/test/e2e/workflow_test.go b/test/e2e/workflow_test.go
index 9d7b5c93..e7e0a1aa 100644
--- a/test/e2e/workflow_test.go
+++ b/test/e2e/workflow_test.go
@@ -24,7 +24,6 @@ import (
"fmt"
"math/rand"
"os/exec"
- "path/filepath"
"strings"
"time"
@@ -44,13 +43,12 @@ const (
workflowAppLabel = "sonataflow.org/workflow-app"
)
-var _ = Describe("Workflow Non-Persistence Use Cases :: ",
Label("flows-non-persistence"), Ordered, func() {
+var _ = Describe("Workflow Non-Persistence Use Cases :: ",
Label("flows-ephemeral"), Ordered, func() {
var targetNamespace string
BeforeEach(func() {
targetNamespace = fmt.Sprintf("test-%d",
rand.Intn(randomIntRange)+1)
- cmd := exec.Command("kubectl", "create", "namespace",
targetNamespace)
- _, err := utils.Run(cmd)
+ err := kubectlCreateNamespace(targetNamespace)
Expect(err).NotTo(HaveOccurred())
})
AfterEach(func() {
@@ -59,48 +57,45 @@ var _ = Describe("Workflow Non-Persistence Use Cases :: ",
Label("flows-non-pers
cmd := exec.Command("kubectl", "delete", "sonataflow",
"--all", "-n", targetNamespace, "--wait")
_, err := utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
- cmd = exec.Command("kubectl", "delete", "namespace",
targetNamespace, "--wait")
- _, err = utils.Run(cmd)
+ err = kubectlDeleteNamespace(targetNamespace)
Expect(err).NotTo(HaveOccurred())
}
})
- Describe("ensure basic workflow deployments", func() {
- projectDir, _ := utils.GetProjectDir()
+ Describe("Ensure basic workflow deployments", func() {
- It("should successfully deploy the Simple Workflow in GitOps
mode and verify if it's running", func() {
+ It("should successfully deploy the Simple Workflow in GitOps
profile and verify if it's running", func() {
By("creating an instance of the SonataFlow Operand(CR)")
+ sonataFlowCrFile :=
test.GetPathFromE2EDirectory("workflows", prebuiltWorkflows.Greetings.Name,
"01-sonataflow.org_v1alpha08_sonataflow.yaml")
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "apply", "-f",
filepath.Join(projectDir,
-
"test/testdata/"+test.SonataFlowSimpleOpsYamlCR), "-n", targetNamespace)
- _, err := utils.Run(cmd)
- return err
+ return
kubectlApplyFileOnCluster(sonataFlowCrFile, targetNamespace)
+ }, 3*time.Minute, time.Second).Should(Succeed())
+
+ By("Replacing the image with a prebuilt one and
rollout")
+ EventuallyWithOffset(1, func() error {
+ return
kubectlPatchSonataFlowImageAndRollout(targetNamespace,
prebuiltWorkflows.Greetings.Name, prebuiltWorkflows.Greetings.Tag)
}, 3*time.Minute, time.Second).Should(Succeed())
By("check the workflow is in running state")
- EventuallyWithOffset(1, func() bool { return
verifyWorkflowIsInRunningState("simple", targetNamespace) }, 15*time.Minute,
30*time.Second).Should(BeTrue())
+ EventuallyWithOffset(1, func() bool { return
verifyWorkflowIsInRunningState(prebuiltWorkflows.Greetings.Name,
targetNamespace) }, 15*time.Minute, 30*time.Second).Should(BeTrue())
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "delete", "-f",
filepath.Join(projectDir,
-
"test/testdata/"+test.SonataFlowSimpleOpsYamlCR), "-n", targetNamespace)
- _, err := utils.Run(cmd)
- return err
+ return
kubectlDeleteFileOnCluster(sonataFlowCrFile, targetNamespace)
}, 3*time.Minute, time.Second).Should(Succeed())
})
- It("should successfully deploy the Greeting Workflow in preview
mode and verify if it's running", func() {
+ It("should successfully deploy the Greeting Workflow in preview
profile and verify if it's running", func() {
By("creating external resources DataInputSchema
configMap")
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "apply", "-f",
filepath.Join(projectDir,
-
"test/testdata/"+test.SonataFlowGreetingsDataInputSchemaConfig), "-n",
targetNamespace)
+ cmd := exec.Command("kubectl", "apply", "-f",
test.GetPathFromDataDirectory(test.SonataFlowGreetingsDataInputSchemaConfig),
"-n", targetNamespace)
_, err := utils.Run(cmd)
return err
}, 3*time.Minute, time.Second).Should(Succeed())
+ sonataFlowYaml :=
test.GetPathFromDataDirectory(test.SonataFlowGreetingsWithDataInputSchemaCR)
By("creating an instance of the SonataFlow Operand(CR)")
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "apply", "-f",
filepath.Join(projectDir,
-
"test/testdata/"+test.SonataFlowGreetingsWithDataInputSchemaCR), "-n",
targetNamespace)
+ cmd := exec.Command("kubectl", "apply", "-f",
sonataFlowYaml, "-n", targetNamespace)
_, err := utils.Run(cmd)
return err
}, 3*time.Minute, time.Second).Should(Succeed())
@@ -109,19 +104,17 @@ var _ = Describe("Workflow Non-Persistence Use Cases ::
", Label("flows-non-pers
EventuallyWithOffset(1, func() bool { return
verifyWorkflowIsInRunningState("greeting", targetNamespace) }, 15*time.Minute,
30*time.Second).Should(BeTrue())
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "delete", "-f",
filepath.Join(projectDir,
-
"test/testdata/"+test.SonataFlowGreetingsWithDataInputSchemaCR), "-n",
targetNamespace)
+ cmd := exec.Command("kubectl", "delete", "-f",
sonataFlowYaml, "-n", targetNamespace)
_, err := utils.Run(cmd)
return err
}, 3*time.Minute, time.Second).Should(Succeed())
})
It("should successfully deploy the orderprocessing workflow in
devmode and verify if it's running", func() {
-
+ orderProcessingFolder :=
test.GetPathFromE2EDirectory("order-processing")
By("creating an instance of the SonataFlow Workflow in
DevMode")
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "apply", "-f",
filepath.Join(projectDir,
-
test.GetSonataFlowE2eOrderProcessingFolder()), "-n", targetNamespace)
+ cmd := exec.Command("kubectl", "apply", "-f",
orderProcessingFolder, "-n", targetNamespace)
_, err := utils.Run(cmd)
return err
}, 3*time.Minute, time.Second).Should(Succeed())
@@ -138,8 +131,7 @@ var _ = Describe("Workflow Non-Persistence Use Cases :: ",
Label("flows-non-pers
EventuallyWithOffset(1, func() bool { return
verifyWorkflowIsAddressable("orderprocessing", targetNamespace) },
10*time.Minute, 30*time.Second).Should(BeTrue())
EventuallyWithOffset(1, func() error {
- cmd := exec.Command("kubectl", "delete", "-f",
filepath.Join(projectDir,
-
test.GetSonataFlowE2eOrderProcessingFolder()), "-n", targetNamespace)
+ cmd := exec.Command("kubectl", "delete", "-f",
orderProcessingFolder, "-n", targetNamespace)
_, err := utils.Run(cmd)
return err
}, 3*time.Minute, time.Second).Should(Succeed())
@@ -190,7 +182,16 @@ var _ = Describe("Workflow Persistence Use Cases :: ",
Label("flows-persistence"
cmd.Stdin = bytes.NewBuffer(manifests)
_, err := utils.Run(cmd)
Expect(err).NotTo(HaveOccurred())
- By("Wait for SonatatFlow CR to complete deployment")
+
+ By("Replacing the image with a prebuilt one and rollout")
+ EventuallyWithOffset(1, func() error {
+ if withPersistence {
+ return
kubectlPatchSonataFlowImageAndRollout(ns,
prebuiltWorkflows.CallBackPersistence.Name,
prebuiltWorkflows.CallBackPersistence.Tag)
+ }
+ return kubectlPatchSonataFlowImageAndRollout(ns,
prebuiltWorkflows.CallBack.Name, prebuiltWorkflows.CallBack.Tag)
+ }, 3*time.Minute, time.Second).Should(Succeed())
+
+ By("Wait for SonataFlow CR to complete deployment")
// wait for service deployments to be ready
EventuallyWithOffset(1, func() bool {
cmd = exec.Command("kubectl", "wait", "pod", "-n", ns,
"-l", workflowAppLabel, "--for", "condition=Ready", "--timeout=5s")
@@ -206,7 +207,7 @@ var _ = Describe("Workflow Persistence Use Cases :: ",
Label("flows-persistence"
waitForPodRestartCompletion(workflowAppLabel, ns)
GinkgoWriter.Println("waitForPodRestartCompletion done")
return true
- }, 25*time.Minute, 5).Should(BeTrue())
+ }, 5*time.Minute, 5*time.Second).Should(BeTrue())
By("Evaluate status of the workflow's pod database connection
health endpoint")
cmd = exec.Command("kubectl", "get", "pod", "-l",
workflowAppLabel, "-n", ns, "-ojsonpath={.items[*].metadata.name}")
@@ -256,22 +257,22 @@ var _ = Describe("Workflow Persistence Use Cases :: ",
Label("flows-persistence"
By("Validate that the workflow persistence was properly
initialized")
Expect(logs).Should(ContainSubstring("Flyway Community
Edition"))
Expect(logs).Should(ContainSubstring("Database:
jdbc:postgresql://postgres.%s:5432", ns))
- result := verifySchemaMigration(logs,
"callbackstatetimeouts")
+ result := verifySchemaMigration(logs,
prebuiltWorkflows.CallBackPersistence.Name)
GinkgoWriter.Println(fmt.Sprintf("verifySchemaMigration: %v", result))
Expect(result).Should(BeTrue())
Expect(logs).Should(ContainSubstring("Profile prod
activated"))
} else {
By("Validate that the workflow has no persistence")
Expect(logs).ShouldNot(ContainSubstring("Flyway
Community Edition"))
- Expect(logs).ShouldNot(ContainSubstring("Creating
schema \"callbackstatetimeouts\""))
+
Expect(logs).ShouldNot(ContainSubstring(fmt.Sprintf(`Creating schema "%s"`,
prebuiltWorkflows.CallBack.Name)))
Expect(logs).Should(ContainSubstring("Profile prod
activated"))
}
},
- Entry("defined in the workflow from an existing kubernetes
service as a reference",
test.GetSonataFlowE2EWorkflowPersistenceSampleDataDirectory("by_service"),
true, false),
- Entry("defined in the workflow and from the sonataflow
platform",
test.GetSonataFlowE2EWorkflowPersistenceSampleDataDirectory("from_platform_overwritten_by_service"),
true, false),
- Entry("defined from the sonataflow platform as reference and
with DI and JS",
test.GetSonataFlowE2EWorkflowPersistenceSampleDataDirectory("from_platform_with_di_and_js_services"),
true, true),
- Entry("defined from the sonataflow platform as reference and
without DI and JS",
test.GetSonataFlowE2EWorkflowPersistenceSampleDataDirectory("from_platform_without_di_and_js_services"),
true, false),
- Entry("defined from the sonataflow platform as reference but
not required by the workflow",
test.GetSonataFlowE2EWorkflowPersistenceSampleDataDirectory("from_platform_with_no_persistence_required"),
false, false),
+ Entry("defined in the workflow from an existing kubernetes
service as a reference", test.GetPathFromE2EDirectory("workflows",
"persistence", "by_service"), true, false),
+ Entry("defined in the workflow and from the sonataflow
platform", test.GetPathFromE2EDirectory("workflows", "persistence",
"from_platform_overwritten_by_service"), true, false),
+ Entry("defined from the sonataflow platform as reference and
with DI and JS", test.GetPathFromE2EDirectory("workflows", "persistence",
"from_platform_with_di_and_js_services"), true, true),
+ Entry("defined from the sonataflow platform as reference and
without DI and JS", test.GetPathFromE2EDirectory("workflows", "persistence",
"from_platform_without_di_and_js_services"), true, false),
+ Entry("defined from the sonataflow platform as reference but
not required by the workflow", test.GetPathFromE2EDirectory("workflows",
"persistence", "from_platform_with_no_persistence_required"), false, false),
)
})
diff --git
a/test/testdata/platform/services/preview/ephemeral-with-workflow/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
b/test/testdata/platform/services/preview/ephemeral-with-workflow/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
deleted file mode 100644
index 249ee2c1..00000000
---
a/test/testdata/platform/services/preview/ephemeral-with-workflow/sonataflow/03-sonataflow_callbackstatetimeouts.sw.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 2024 Apache Software Foundation (ASF)
-#
-# Licensed 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.
-
-apiVersion: sonataflow.org/v1alpha08
-kind: SonataFlow
-metadata:
- name: callbackstatetimeouts
- annotations:
- sonataflow.org/description: Callback State Timeouts Example k8s
- sonataflow.org/version: 0.0.1
- sonataflow.org/profile: prod
-spec:
- flow:
- start: PrintStartMessage
- events:
- - name: callbackEvent
- source: ''
- type: callback_event_type
- functions:
- - name: systemOut
- type: custom
- operation: sysout
- states:
- - name: PrintStartMessage
- type: operation
- actions:
- - name: printSystemOut
- functionRef:
- refName: systemOut
- arguments:
- message: "${\"callback-state-timeouts: \" +
$WORKFLOW.instanceId + \" has started.\"}"
- transition: CallbackState
- - name: CallbackState
- type: callback
- action:
- name: callbackAction
- functionRef:
- refName: systemOut
- arguments:
- message: "${\"callback-state-timeouts: \" + $WORKFLOW.instanceId
+ \" has executed the callbackFunction.\"}"
- eventRef: callbackEvent
- transition: CheckEventArrival
- timeouts:
- eventTimeout: PT30S
- - name: CheckEventArrival
- type: switch
- dataConditions:
- - condition: "${ .eventData != null }"
- transition: EventArrived
- defaultCondition:
- transition: EventNotArrived
- - name: EventArrived
- type: inject
- data:
- exitMessage: "The callback event has arrived."
- transition: PrintExitMessage
- - name: EventNotArrived
- type: inject
- data:
- exitMessage: "The callback event has not arrived, and the timeout
has overdue."
- transition: PrintExitMessage
- - name: PrintExitMessage
- type: operation
- actions:
- - name: printSystemOut
- functionRef:
- refName: systemOut
- arguments:
- message: "${\"callback-state-timeouts: \" +
$WORKFLOW.instanceId + \" has finalized. \" + .exitMessage + \" eventData: \" +
.eventData}"
- end: true
diff --git
a/test/testdata/platform/services/preview/knative/service-level-broker/kustomization.yaml
b/test/testdata/platform/services/preview/knative/service-level-broker/kustomization.yaml
deleted file mode 100644
index d3fd127c..00000000
---
a/test/testdata/platform/services/preview/knative/service-level-broker/kustomization.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2024 Apache Software Foundation (ASF)
-#
-# Licensed 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.
-
-resources:
-- 01-postgres.yaml
-- 02-sonataflow_platform.yaml
-
-generatorOptions:
- disableNameSuffixHash: true
-
-secretGenerator:
- - name: postgres-secrets
- literals:
- - POSTGRES_USER=sonataflow
- - POSTGRES_PASSWORD=sonataflow
- - POSTGRES_DATABASE=sonataflow
- - PGDATA=/var/lib/pgsql/data/userdata
-
-sortOptions:
- order: fifo
-
diff --git a/test/utils/utils.go b/test/utils/utils.go
index 25a58df0..90e7dfec 100644
--- a/test/utils/utils.go
+++ b/test/utils/utils.go
@@ -59,17 +59,15 @@ func OutputDeployment(namespace, deployName string) error {
func Run(cmd *exec.Cmd) ([]byte, error) {
dir, _ := GetProjectDir()
cmd.Dir = dir
- fmt.Fprintf(GinkgoWriter, "running dir: %s\n", cmd.Dir)
// To allow make commands be executed from the project directory which
is subdir on SDK repo
// TODO:(user) You might does not need the following code
if err := os.Chdir(cmd.Dir); err != nil {
- fmt.Fprintf(GinkgoWriter, "chdir dir: %s\n", err)
+ GinkgoWriter.Printf("chdir dir: %s\n", err)
}
cmd.Env = append(os.Environ(), "GO111MODULE=on")
command := strings.Join(cmd.Args, " ")
- fmt.Fprintf(GinkgoWriter, "running: %s\n", command)
output, err := cmd.CombinedOutput()
if err != nil {
return output, fmt.Errorf("%s failed with error: (%v) %s",
command, err, string(output))
diff --git a/test/yaml.go b/test/yaml.go
index a0fbd8bb..276f9b9b 100644
--- a/test/yaml.go
+++ b/test/yaml.go
@@ -278,27 +278,15 @@ func GetPlatformOpenshiftE2eTest() string {
}
func GetSonataFlowE2eOrderProcessingFolder() string {
- return e2eSamples + sonataFlowOrderProcessingFolder
+ return GetPathFromE2EDirectory("order-processing")
}
-func GetSonataFlowE2EPlatformServicesDirectory() string {
- return filepath.Join(getTestDataDir(), "platform", "services")
+func GetPathFromDataDirectory(join ...string) string {
+ return filepath.Join(append([]string{getTestDataDir()}, join...)...)
}
-func GetSonataFlowE2EPlatformServicesKnativeDirectory(subdir string) string {
- return filepath.Join(getTestDataDir(), "platform", "services",
"preview", "knative", subdir)
-}
-
-func GetSonataFlowE2EPlatformNoServicesDirectory() string {
- return filepath.Join(getTestDataDir(), "platform", "noservices")
-}
-
-func GetSonataFlowE2EPlatformPersistenceSampleDataDirectory(subdir string)
string {
- return filepath.Join(getTestDataDir(), "platform", "persistence",
subdir)
-}
-
-func GetSonataFlowE2EWorkflowPersistenceSampleDataDirectory(subdir string)
string {
- return filepath.Join(getTestDataDir(), "workflow", "persistence",
subdir)
+func GetPathFromE2EDirectory(join ...string) string {
+ return filepath.Join(append([]string{getProjectDir(), "test", "e2e",
"testdata"}, join...)...)
}
// getTestDataDir gets the testdata directory containing every sample out
there from test/testdata.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]