From d03aaf8ca1c9a51a6aba68f9c2db9f8552a6079e Mon Sep 17 00:00:00 2001 From: Ricardo Zanini Date: Wed, 26 Jun 2024 19:03:18 -0300 Subject: [PATCH] Spliting e2e tests; add custom config to use quay Signed-off-by: Ricardo Zanini --- .github/workflows/e2e.yml | 20 ++- Makefile | 3 +- ...rator-controllers-config_v1_configmap.yaml | 15 +- config/manager/controllers_cfg.yaml | 15 +- controllers/platform/platformutils.go | 11 +- hack/local/run-e2e.sh | 16 +- operator.yaml | 15 +- .../kogito_serverless_operator_pipeline.yaml | 63 -------- ...gito_serverless_operator_pipeline_run.yaml | 26 --- tekton/role/cluster_role.yaml | 152 ------------------ tekton/role/cluster_role_binding.yaml | 12 -- tekton/task/show_workspace_content.yaml | 23 --- tekton/trigger/trigger_binding.yaml | 13 -- tekton/trigger/trigger_event_listener.yaml | 13 -- tekton/trigger/trigger_resource.yaml | 11 -- tekton/trigger/trigger_template.yaml | 42 ----- .../trigger/webhook_event_listener_route.yaml | 14 -- tekton/volume/persistent_volume.yaml | 10 -- test/cfg.go | 2 +- test/e2e/platform_test.go | 2 +- test/e2e/workflow_test.go | 7 +- test/testdata/controllers-cfg-default.yaml | 23 +++ 22 files changed, 92 insertions(+), 416 deletions(-) delete mode 100644 tekton/pipeline/kogito_serverless_operator_pipeline.yaml delete mode 100644 tekton/pipeline/kogito_serverless_operator_pipeline_run.yaml delete mode 100644 tekton/role/cluster_role.yaml delete mode 100644 tekton/role/cluster_role_binding.yaml delete mode 100644 tekton/task/show_workspace_content.yaml delete mode 100644 tekton/trigger/trigger_binding.yaml delete mode 100644 tekton/trigger/trigger_event_listener.yaml delete mode 100644 tekton/trigger/trigger_resource.yaml delete mode 100644 tekton/trigger/trigger_template.yaml delete mode 100644 tekton/trigger/webhook_event_listener_route.yaml delete mode 100644 tekton/volume/persistent_volume.yaml create mode 100644 test/testdata/controllers-cfg-default.yaml diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 491b9ca37..c6be3f39e 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -80,8 +80,24 @@ jobs: make deploy IMG=${{ env.OPERATOR_IMAGE_NAME }} kubectl wait pod -A -l control-plane=sonataflow-operator --for condition=Ready - - name: Run tests - run: make test-e2e + - name: Run tests for workflows without persistence + run: make test-e2e label=flows-non-persistence + + - name: Retrieve cluster events and list pods + if: failure() + run: | + kubectl get events + kubectl get pod -A + - name: Run tests for workflows with persistence + run: make test-e2e label=flows-persistence + + - name: Retrieve cluster events and list pods + if: failure() + run: | + kubectl get events + kubectl get pod -A + - name: Run tests for platform use cases + run: make test-e2e label=platform - name: Retrieve cluster events and list pods if: failure() diff --git a/Makefile b/Makefile index 81eb50597..977440172 100644 --- a/Makefile +++ b/Makefile @@ -337,8 +337,9 @@ addheaders: generate-all: generate generate-deploy bundle addheaders vet fmt .PHONY: test-e2e # You will need to have a Minikube/Kind cluster up in 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 test-e2e: - go test ./test/e2e/* -v -ginkgo.v -ginkgo.no-color -ginkgo.junit-report=./e2e-test-report.xml -timeout 60m + go test ./test/e2e/* -v -ginkgo.v -ginkgo.no-color -ginkgo.label-filter=$(label) -ginkgo.junit-report=./e2e-test-report.xml -timeout 60m .PHONY: before-pr before-pr: test generate-all diff --git a/bundle/manifests/sonataflow-operator-controllers-config_v1_configmap.yaml b/bundle/manifests/sonataflow-operator-controllers-config_v1_configmap.yaml index 4d26bda68..46bd3cbae 100644 --- a/bundle/manifests/sonataflow-operator-controllers-config_v1_configmap.yaml +++ b/bundle/manifests/sonataflow-operator-controllers-config_v1_configmap.yaml @@ -10,12 +10,15 @@ data: kanikoDefaultWarmerImageTag: gcr.io/kaniko-project/warmer:v1.9.0 # Default image used internally by the Operator Managed Kaniko builder to create the executor pods kanikoExecutorImageTag: gcr.io/kaniko-project/executor:v1.9.0 + + # TODO: Temporary use the images from quay, once we have the dockerhub images we can revert this back: https://github.com/apache/incubator-kie-kogito-serverless-operator/issues/498 + # The Jobs Service image to use, if empty the operator will use the default Apache Community one based on the current operator's version - jobsServicePostgreSQLImageTag: "" - jobsServiceEphemeralImageTag: "" + jobsServicePostgreSQLImageTag: quay.io/kiegroup/kogito-jobs-service-postgresql:weekly-latest + jobsServiceEphemeralImageTag: quay.io/kiegroup/kogito-jobs-service-ephemeral:weekly-latest # The Data Index image to use, if empty the operator will use the default Apache Community one based on the current operator's version - dataIndexPostgreSQLImageTag: "" - dataIndexEphemeralImageTag: "" + dataIndexPostgreSQLImageTag: quay.io/kiegroup/kogito-data-index-postgresql:weekly-latest + dataIndexEphemeralImageTag: quay.io/kiegroup/kogito-data-index-ephemeral:weekly-latest # SonataFlow base builder image used in the internal Dockerfile to build workflow applications in preview profile # Order of precedence is: # 1. SonataFlowPlatform in the given namespace @@ -23,10 +26,10 @@ data: # 3. The FROM in the Dockerfile in the operator's namespace "sonataflow-operator-builder-config" configMap. # If 1 or 2, the FROM tag will be replaced by the tag se there. # If empty the operator will use the default Apache Community one based on the current operator's version. - sonataFlowBaseBuilderImageTag: "" + sonataFlowBaseBuilderImageTag: quay.io/kiegroup/kogito-swf-builder-nightly:latest # The image to use to deploy SonataFlow workflow images in devmode profile. # If empty the operator will use the default Apache Community one based on the current operator's version. - sonataFlowDevModeImageTag: "" + sonataFlowDevModeImageTag: quay.io/kiegroup/kogito-swf-devmode-nightly:latest # The default name of the builder configMap in the operator's namespace builderConfigMapName: "sonataflow-operator-builder-config" # Quarkus extensions required for workflows persistence. These extensions are used by the SonataFlow build system, diff --git a/config/manager/controllers_cfg.yaml b/config/manager/controllers_cfg.yaml index f9f76a958..011fca096 100644 --- a/config/manager/controllers_cfg.yaml +++ b/config/manager/controllers_cfg.yaml @@ -7,12 +7,15 @@ healthFailureThresholdDevMode: 50 kanikoDefaultWarmerImageTag: gcr.io/kaniko-project/warmer:v1.9.0 # Default image used internally by the Operator Managed Kaniko builder to create the executor pods kanikoExecutorImageTag: gcr.io/kaniko-project/executor:v1.9.0 + +# TODO: Temporary use the images from quay, once we have the dockerhub images we can revert this back: https://github.com/apache/incubator-kie-kogito-serverless-operator/issues/498 + # The Jobs Service image to use, if empty the operator will use the default Apache Community one based on the current operator's version -jobsServicePostgreSQLImageTag: "" -jobsServiceEphemeralImageTag: "" +jobsServicePostgreSQLImageTag: quay.io/kiegroup/kogito-jobs-service-postgresql:weekly-latest +jobsServiceEphemeralImageTag: quay.io/kiegroup/kogito-jobs-service-ephemeral:weekly-latest # The Data Index image to use, if empty the operator will use the default Apache Community one based on the current operator's version -dataIndexPostgreSQLImageTag: "" -dataIndexEphemeralImageTag: "" +dataIndexPostgreSQLImageTag: quay.io/kiegroup/kogito-data-index-postgresql:weekly-latest +dataIndexEphemeralImageTag: quay.io/kiegroup/kogito-data-index-ephemeral:weekly-latest # SonataFlow base builder image used in the internal Dockerfile to build workflow applications in preview profile # Order of precedence is: # 1. SonataFlowPlatform in the given namespace @@ -20,10 +23,10 @@ dataIndexEphemeralImageTag: "" # 3. The FROM in the Dockerfile in the operator's namespace "sonataflow-operator-builder-config" configMap. # If 1 or 2, the FROM tag will be replaced by the tag se there. # If empty the operator will use the default Apache Community one based on the current operator's version. -sonataFlowBaseBuilderImageTag: "" +sonataFlowBaseBuilderImageTag: quay.io/kiegroup/kogito-swf-builder-nightly:latest # The image to use to deploy SonataFlow workflow images in devmode profile. # If empty the operator will use the default Apache Community one based on the current operator's version. -sonataFlowDevModeImageTag: "" +sonataFlowDevModeImageTag: quay.io/kiegroup/kogito-swf-devmode-nightly:latest # The default name of the builder configMap in the operator's namespace builderConfigMapName: "sonataflow-operator-builder-config" # Quarkus extensions required for workflows persistence. These extensions are used by the SonataFlow build system, diff --git a/controllers/platform/platformutils.go b/controllers/platform/platformutils.go index 0b4105497..9a63cb19c 100644 --- a/controllers/platform/platformutils.go +++ b/controllers/platform/platformutils.go @@ -26,6 +26,7 @@ import ( "strings" "time" + "github.com/apache/incubator-kie-kogito-serverless-operator/controllers/workflowdef" corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -33,8 +34,6 @@ import ( ctrl "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" - "github.com/apache/incubator-kie-kogito-serverless-operator/controllers/workflowdef" - "github.com/apache/incubator-kie-kogito-serverless-operator/container-builder/client" "github.com/apache/incubator-kie-kogito-serverless-operator/log" @@ -93,9 +92,10 @@ func setPlatformDefaults(p *operatorapi.SonataFlowPlatform, verbose bool) error if p.Spec.Build.Config.IsStrategyOptionEnabled(kanikoBuildCacheEnabled) { p.Spec.Build.Config.BuildStrategyOptions[kanikoPVCName] = p.Name - if len(p.Spec.Build.Config.BaseImage) == 0 { - p.Spec.Build.Config.BaseImage = workflowdef.GetDefaultWorkflowBuilderImageTag() - } + } + + if len(p.Spec.Build.Config.BaseImage) == 0 { + p.Spec.Build.Config.BaseImage = workflowdef.GetDefaultWorkflowBuilderImageTag() } if p.Spec.Build.Config.BuildStrategy == operatorapi.OperatorBuildStrategy && !p.Spec.Build.Config.IsStrategyOptionEnabled(kanikoBuildCacheEnabled) { @@ -161,6 +161,7 @@ func GetRegistryAddress(ctx context.Context, c client.Client) (*string, error) { // GetCustomizedBuilderDockerfile gets the Dockerfile as defined in the default platform ConfigMap, apply any custom requirements and return. func GetCustomizedBuilderDockerfile(dockerfile string, platform operatorapi.SonataFlowPlatform) string { if len(platform.Spec.Build.Config.BaseImage) > 0 { + klog.V(log.D).InfoS("Using Custom Dockerfile", "base image", platform.Spec.Build.Config.BaseImage) dockerfile = strings.Replace(dockerfile, GetFromImageTagDockerfile(dockerfile), platform.Spec.Build.Config.BaseImage, 1) } return dockerfile diff --git a/hack/local/run-e2e.sh b/hack/local/run-e2e.sh index 334190f93..bc4a1bbf7 100755 --- a/hack/local/run-e2e.sh +++ b/hack/local/run-e2e.sh @@ -19,19 +19,23 @@ # runs the e2e locally # You must have minikube installed MINIKUBE_PROFILE=${1:-minikube} +SKIP_IMG_BUILD=${2:-0} +TEST_LABELS=${3:-"flows-non-persistence"} # possible values are flows-non-persistence, flows-persistence, platform + echo "Using minikube profile ${MINIKUBE_PROFILE}" export OPERATOR_IMAGE_NAME=localhost/kogito-serverless-operator:0.0.1 # clean up previous runs kubectl get namespaces -o name | awk -F/ '/^namespace\/test/ {print $2}' | xargs kubectl delete namespace make undeploy ignore-not-found=true -make deploy IMG="${OPERATOR_IMAGE_NAME}" -eval "$(minikube -p "${MINIKUBE_PROFILE}" docker-env)" -if ! make container-build BUILDER=docker IMG="${OPERATOR_IMAGE_NAME}"; then - echo "Failure: Failed to build image, exiting " >&2 - exit 1 +if [ "${SKIP_IMG_BUILD}" = "0" ]; then + eval "$(minikube -p "${MINIKUBE_PROFILE}" docker-env)" + if ! make container-build BUILDER=docker IMG="${OPERATOR_IMAGE_NAME}"; then + echo "Failure: Failed to build image, exiting " >&2 + exit 1 + fi fi make deploy IMG="${OPERATOR_IMAGE_NAME}" -make test-e2e +make test-e2e label="${TEST_LABELS}" diff --git a/operator.yaml b/operator.yaml index 325d30cc5..ae15505ea 100644 --- a/operator.yaml +++ b/operator.yaml @@ -27020,12 +27020,15 @@ data: kanikoDefaultWarmerImageTag: gcr.io/kaniko-project/warmer:v1.9.0 # Default image used internally by the Operator Managed Kaniko builder to create the executor pods kanikoExecutorImageTag: gcr.io/kaniko-project/executor:v1.9.0 + + # TODO: Temporary use the images from quay, once we have the dockerhub images we can revert this back: https://github.com/apache/incubator-kie-kogito-serverless-operator/issues/498 + # The Jobs Service image to use, if empty the operator will use the default Apache Community one based on the current operator's version - jobsServicePostgreSQLImageTag: "" - jobsServiceEphemeralImageTag: "" + jobsServicePostgreSQLImageTag: quay.io/kiegroup/kogito-jobs-service-postgresql:weekly-latest + jobsServiceEphemeralImageTag: quay.io/kiegroup/kogito-jobs-service-ephemeral:weekly-latest # The Data Index image to use, if empty the operator will use the default Apache Community one based on the current operator's version - dataIndexPostgreSQLImageTag: "" - dataIndexEphemeralImageTag: "" + dataIndexPostgreSQLImageTag: quay.io/kiegroup/kogito-data-index-postgresql:weekly-latest + dataIndexEphemeralImageTag: quay.io/kiegroup/kogito-data-index-ephemeral:weekly-latest # SonataFlow base builder image used in the internal Dockerfile to build workflow applications in preview profile # Order of precedence is: # 1. SonataFlowPlatform in the given namespace @@ -27033,10 +27036,10 @@ data: # 3. The FROM in the Dockerfile in the operator's namespace "sonataflow-operator-builder-config" configMap. # If 1 or 2, the FROM tag will be replaced by the tag se there. # If empty the operator will use the default Apache Community one based on the current operator's version. - sonataFlowBaseBuilderImageTag: "" + sonataFlowBaseBuilderImageTag: quay.io/kiegroup/kogito-swf-builder-nightly:latest # The image to use to deploy SonataFlow workflow images in devmode profile. # If empty the operator will use the default Apache Community one based on the current operator's version. - sonataFlowDevModeImageTag: "" + sonataFlowDevModeImageTag: quay.io/kiegroup/kogito-swf-devmode-nightly:latest # The default name of the builder configMap in the operator's namespace builderConfigMapName: "sonataflow-operator-builder-config" # Quarkus extensions required for workflows persistence. These extensions are used by the SonataFlow build system, diff --git a/tekton/pipeline/kogito_serverless_operator_pipeline.yaml b/tekton/pipeline/kogito_serverless_operator_pipeline.yaml deleted file mode 100644 index 60c28c1f9..000000000 --- a/tekton/pipeline/kogito_serverless_operator_pipeline.yaml +++ /dev/null @@ -1,63 +0,0 @@ -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: kogito-serverless-operator-pipeline - namespace: sonataflow-operator-system -spec: - params: - - description: name of the deployment to be patched - name: deployment-name - type: string - - description: url of the git repo for the code of deployment - name: git-url - type: string - - default: pipelines-1.9 - description: revision to be used from repo of the code for deployment - name: git-revision - type: string - - description: image to be built from the code - name: IMAGE - type: string - tasks: - - name: fetch-repository - params: - - name: url - value: $(params.git-url) - - name: subdirectory - value: '' - - name: deleteExisting - value: 'true' - - name: revision - value: $(params.git-revision) - taskRef: - kind: ClusterTask - name: git-clone - workspaces: - - name: output - workspace: shared-workspace - - name: build-image - params: - - name: IMAGE - value: $(params.IMAGE) - - name: TLSVERIFY - value: 'false' - runAfter: - - fetch-repository - taskRef: - kind: ClusterTask - name: buildah - workspaces: - - name: source - workspace: shared-workspace - - name: deploy-image - params: - - name: script - value: > - curl https://raw.githubusercontent.com/apache/incubator-kie-kogito-serverless-operator/main/operator.yaml | sed -E 's|image: docker.io/apache/incubator-kie.*|image: image-registry.openshift-image-registry.svc:5000/sonataflow-operator-system/kogito-serverless-operator:latest|g' | kubectl apply -f - - runAfter: - - build-image - taskRef: - kind: Task - name: kubernetes-actions - workspaces: - - name: shared-workspace diff --git a/tekton/pipeline/kogito_serverless_operator_pipeline_run.yaml b/tekton/pipeline/kogito_serverless_operator_pipeline_run.yaml deleted file mode 100644 index 3e1d3ed28..000000000 --- a/tekton/pipeline/kogito_serverless_operator_pipeline_run.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - namespace: sonataflow-operator-system - generateName: kogito-serverless-operator-pipeline-run -spec: - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 500Mi - params: - - name: deployment-name - value: kogito-serverless-operator - - name: git-url - value: https://github.com/apache/incubator-kie-kogito-serverless-operator.git - - name: git-revision - value: "main" - - name: IMAGE - value: "image-registry.openshift-image-registry.svc:5000/sonataflow-operator-system/kogito-serverless-operator:latest" - pipelineRef: - name: kogito-serverless-operator-pipeline \ No newline at end of file diff --git a/tekton/role/cluster_role.yaml b/tekton/role/cluster_role.yaml deleted file mode 100644 index ff0ba7507..000000000 --- a/tekton/role/cluster_role.yaml +++ /dev/null @@ -1,152 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: tekton-clustermanger-role -rules: -- apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterroles - - clusterrolebindings - - roles - - rolebindings - - customresourcedefinitions - - configmaps - - deployments - - events - - namespaces - - nodes - - persistentvolumeclaims - - pods - - pods/exec - - secrets - - serviceaccounts - - services - - services/finalizers - - pods - - subjectaccessreviews - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -- apiGroups: - - apiextensions.k8s.io - resources: - - clusterroles - - clusterrolebindings - - roles - - rolebindings - - customresourcedefinitions - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -- apiGroups: - - sonataflow.org - resources: - - sonataflowbuilds - - sonataflowbuilds/status - - sonataflowplatforms - - sonataflowplatforms/finalizers - - sonataflowplatforms/status - - sonataflows - - sonataflows/finalizers - - sonataflows/status - - pods - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -- apiGroups: - - apps - resources: - - configmaps - - deployments - - events - - namespaces - - nodes - - persistentvolumeclaims - - pods - - pods/exec - - secrets - - serviceaccounts - - services - - services/finalizers - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -- apiGroups: - - "*" - resources: - - configmaps - - deployments - - events - - namespaces - - nodes - - persistentvolumeclaims - - pods - - pods/exec - - secrets - - serviceaccounts - - services - - services/finalizers - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -- apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch -- apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create -- apiGroups: - - authorization.k8s.io - resources: - - tokenreviews - - subjectaccessreviews - verbs: - - create -- nonResourceURLs: - - /metrics - verbs: - - get \ No newline at end of file diff --git a/tekton/role/cluster_role_binding.yaml b/tekton/role/cluster_role_binding.yaml deleted file mode 100644 index d670bcee5..000000000 --- a/tekton/role/cluster_role_binding.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: tekton-clustermanger-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: tekton-clustermanger-role -subjects: -- kind: ServiceAccount - name: pipeline - namespace: sonataflow-operator-system \ No newline at end of file diff --git a/tekton/task/show_workspace_content.yaml b/tekton/task/show_workspace_content.yaml deleted file mode 100644 index c6072f9b6..000000000 --- a/tekton/task/show_workspace_content.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: show-workspace -spec: - params: - - default: /workspace/source - description: The directory in source that contains yaml manifests - name: source - type: string - steps: - - args: - - '-c' - - | - set -ex - find /workspace - command: - - /bin/sh - image: alpine - name: dump-directory - resources: {} - workspaces: - - name: source diff --git a/tekton/trigger/trigger_binding.yaml b/tekton/trigger/trigger_binding.yaml deleted file mode 100644 index 7aa1b1497..000000000 --- a/tekton/trigger/trigger_binding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: triggers.tekton.dev/v1beta1 -kind: TriggerBinding -metadata: - name: kogito-serverless-operator-trigger-binding - namespace: sonataflow-operator-system -spec: - params: - - name: git-repo-url - value: $(body.repository.url) - - name: git-repo-name - value: $(body.repository.name) - - name: git-revision - value: $(body.head_commit.id) \ No newline at end of file diff --git a/tekton/trigger/trigger_event_listener.yaml b/tekton/trigger/trigger_event_listener.yaml deleted file mode 100644 index 26c696c5c..000000000 --- a/tekton/trigger/trigger_event_listener.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: triggers.tekton.dev/v1alpha1 -kind: EventListener -metadata: - name: kogito-serverless-operator-webhook - namespace: sonataflow-operator-system -spec: - serviceAccountName: pipeline - triggers: - - name: kogito-serverless-operator-trigger-webhook - bindings: - - ref: kogito-serverless-operator-trigger-binding - template: - ref: kogito-serverless-operator-trigger-template \ No newline at end of file diff --git a/tekton/trigger/trigger_resource.yaml b/tekton/trigger/trigger_resource.yaml deleted file mode 100644 index 8ada7ff2d..000000000 --- a/tekton/trigger/trigger_resource.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: triggers.tekton.dev/v1beta1 -kind: Trigger -metadata: - name: kogito-serverless-operator-trigger - namespace: sonataflow-operator-system -spec: - serviceAccountName: pipeline - bindings: - - ref: kogito-serverless-operator-trigger-binding - template: - ref: kogito-serverless-operator-trigger-template \ No newline at end of file diff --git a/tekton/trigger/trigger_template.yaml b/tekton/trigger/trigger_template.yaml deleted file mode 100644 index 0ce8de922..000000000 --- a/tekton/trigger/trigger_template.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: triggers.tekton.dev/v1beta1 -kind: TriggerTemplate -metadata: - name: kogito-serverless-operator-trigger-template - namespace: sonataflow-operator-system -spec: - params: - - name: git-repo-url - description: The git repository url - - name: git-revision - description: The git revision - default: pipelines-1.9 - - name: git-repo-name - description: The name of the deployment to be created / patched - - resourcetemplates: - - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: build-deploy-$(tt.params.git-repo-name)- - spec: - serviceAccountName: pipeline - pipelineRef: - name: build-and-deploy - params: - - name: deployment-name - value: $(tt.params.git-repo-name) - - name: git-url - value: $(tt.params.git-repo-url) - - name: git-revision - value: $(tt.params.git-revision) - - name: IMAGE - value: image-registry.openshift-image-registry.svc:5000/sonataflow-operator-system/$(tt.params.git-repo-name) - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 500Mi \ No newline at end of file diff --git a/tekton/trigger/webhook_event_listener_route.yaml b/tekton/trigger/webhook_event_listener_route.yaml deleted file mode 100644 index 092d06234..000000000 --- a/tekton/trigger/webhook_event_listener_route.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: route.openshift.io/v1 -kind: Route -metadata: - name: kogito-serverless-operator-webhook-event-listener-route - namespace: sonataflow-operator-system -spec: - host: "" - port: - targetPort: 8080 - to: - kind: Service - name: el-kogito-serverless-operator-webhook - weight: 100 - wildcardPolicy: None \ No newline at end of file diff --git a/tekton/volume/persistent_volume.yaml b/tekton/volume/persistent_volume.yaml deleted file mode 100644 index ecaad9142..000000000 --- a/tekton/volume/persistent_volume.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: source-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 500Mi diff --git a/test/cfg.go b/test/cfg.go index c581ed8ba..a0e4803eb 100644 --- a/test/cfg.go +++ b/test/cfg.go @@ -25,6 +25,6 @@ import ( // a particular test must populate it with values form a given file. As part of the given test finalization we can // invoke this function to restore the global configuration. func RestoreControllersConfig(t *testing.T) { - _, err := cfg.InitializeControllersCfgAt(getProjectDir() + "/config/manager/controllers_cfg.yaml") + _, err := cfg.InitializeControllersCfgAt(getProjectDir() + "/test/testdata/controllers-cfg-default.yaml") assert.NoError(t, err) } diff --git a/test/e2e/platform_test.go b/test/e2e/platform_test.go index c2c86d082..e7a1dfa06 100644 --- a/test/e2e/platform_test.go +++ b/test/e2e/platform_test.go @@ -44,7 +44,7 @@ const ( ephemeralJobService = "ephemeral-job-service" ) -var _ = Describe("Validate the persistence", Ordered, func() { +var _ = Describe("Platform Use Cases :: ", Label("platform"), Ordered, func() { var ( projectDir string diff --git a/test/e2e/workflow_test.go b/test/e2e/workflow_test.go index ed8f95c4e..01e73f7d7 100644 --- a/test/e2e/workflow_test.go +++ b/test/e2e/workflow_test.go @@ -40,7 +40,7 @@ import ( . "github.com/onsi/gomega" ) -var _ = Describe("SonataFlow Operator", Ordered, func() { +var _ = Describe("Workflow Non-Persistence Use Cases :: ", Label("flows-non-persistence"), Ordered, func() { var targetNamespace string BeforeEach(func() { @@ -58,10 +58,11 @@ var _ = Describe("SonataFlow Operator", Ordered, func() { } }) - Describe("ensure that Operator and Operand(s) can run in restricted namespaces", func() { + Describe("ensure basic workflow deployments", func() { projectDir, _ := utils.GetProjectDir() It("should successfully deploy the Simple Workflow in GitOps mode and verify if it's running", func() { + Skip("Image unavailable at Dockerhub, skipping test: https://github.com/apache/incubator-kie-kogito-serverless-operator/issues/498") By("creating an instance of the SonataFlow Operand(CR)") EventuallyWithOffset(1, func() error { cmd := exec.Command("kubectl", "apply", "-f", filepath.Join(projectDir, @@ -142,7 +143,7 @@ var _ = Describe("SonataFlow Operator", Ordered, func() { }) -var _ = Describe("Validate the persistence ", Ordered, func() { +var _ = Describe("Workflow Persistence Use Cases :: ", Label("flows-persistence"), Ordered, func() { const ( dbConnectionName = "Database connections health check" diff --git a/test/testdata/controllers-cfg-default.yaml b/test/testdata/controllers-cfg-default.yaml new file mode 100644 index 000000000..e0b5e450f --- /dev/null +++ b/test/testdata/controllers-cfg-default.yaml @@ -0,0 +1,23 @@ +# 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. + +# The default size of Kaniko PVC when using the internal operator builder manager +defaultPvcKanikoSize: +healthFailureThresholdDevMode: +kanikoDefaultWarmerImageTag: +kanikoExecutorImageTag: +jobsServicePostgreSQLImageTag: +dataIndexPostgreSQLImageTag: +sonataFlowBaseBuilderImageTag: +sonataFlowDevModeImageTag: