diff --git a/.ci/jenkins/Jenkinsfile.e2e.cluster b/.ci/jenkins/Jenkinsfile.e2e.cluster
index d1ffd38..6cd8bd0 100644
--- a/.ci/jenkins/Jenkinsfile.e2e.cluster
+++ b/.ci/jenkins/Jenkinsfile.e2e.cluster
@@ -92,11 +92,11 @@
                     def platformCR = readYaml(file: platformCRFilepath)
 
                     platformCR.spec.devMode = platformCR.spec.devMode ?: [:]
-                    platformCR.spec.devMode.baseImage = "quay.io/kiegroup/kogito-swf-devmode-nightly:${majorMinor}"
+                    platformCR.spec.devMode.baseImage = "docker.io/apache/incubator-kie-sonataflow-devmode:${majorMinor}"
 
                     platformCR.spec.build = platformCR.spec.build ?: [:]
                     platformCR.spec.build.config = platformCR.spec.build.config ?: [:]
-                    platformCR.spec.build.config.baseImage = "quay.io/kiegroup/kogito-swf-builder-nightly:${majorMinor}"
+                    platformCR.spec.build.config.baseImage = "docker.io/apache/incubator-kie-sonataflow-builder:${majorMinor}"
                     writeYaml(file: platformCRFilepath, data: platformCR, overwrite: true)
                 }
             }
diff --git a/Makefile b/Makefile
index d8349ff..81eb505 100644
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@
 #
 # For example, running 'make bundle-build bundle-push catalog-build catalog-push' will build and push both
 # kiegroup.org/kogito-serverless-operator-bundle:$VERSION and kiegroup.org/kogito-serverless-operator-catalog:$VERSION.
-IMAGE_TAG_BASE ?= quay.io/kiegroup/kogito-serverless-operator-nightly
+IMAGE_TAG_BASE ?= docker.io/apache/incubator-kie-sonataflow-operator
 
 # BUNDLE_IMG defines the image:tag used for the bundle.
 # You can use it as an arg. (E.g make bundle-build BUNDLE_IMG=<some-registry>/<project-name-bundle>:<tag>)
diff --git a/bddframework/pkg/api/app/v1beta1/kogitoservices.go b/bddframework/pkg/api/app/v1beta1/kogitoservices.go
index 1d64688..2bdfa14 100644
--- a/bddframework/pkg/api/app/v1beta1/kogitoservices.go
+++ b/bddframework/pkg/api/app/v1beta1/kogitoservices.go
@@ -201,7 +201,7 @@
 	Env []corev1.EnvVar `json:"env,omitempty"`
 
 	// +optional
-	// Image definition for the service. Example: "quay.io/kiegroup/kogito-service:latest".
+	// Image definition for the service. Example: "docker.io/apache/incubator-kie-kogito-service:latest".
 	//
 	// On OpenShift an ImageStream will be created in the current namespace pointing to the given image.
 	// +operator-sdk:csv:customresourcedefinitions:type=spec
diff --git a/bddframework/pkg/framework/util.go b/bddframework/pkg/framework/util.go
index 2e93a1f..3c4e529 100644
--- a/bddframework/pkg/framework/util.go
+++ b/bddframework/pkg/framework/util.go
@@ -292,7 +292,7 @@
 	}
 
 	if len(image.Tag) == 0 {
-		image.Tag = GetKogitoImageVersion(version.OperatorVersion)
+		image.Tag = GetKogitoImageVersion(version.GetTagVersion())
 	}
 }
 
diff --git a/bundle/manifests/sonataflow-operator-builder-config_v1_configmap.yaml b/bundle/manifests/sonataflow-operator-builder-config_v1_configmap.yaml
index d04b6b6..425a812 100644
--- a/bundle/manifests/sonataflow-operator-builder-config_v1_configmap.yaml
+++ b/bundle/manifests/sonataflow-operator-builder-config_v1_configmap.yaml
@@ -1,16 +1,16 @@
 apiVersion: v1
 data:
   DEFAULT_WORKFLOW_EXTENSION: .sw.json
-  Dockerfile: "FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder\n\n#
+  Dockerfile: "FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder\n\n#
     variables that can be overridden by the builder\n# To add a Quarkus extension
     to your application\nARG QUARKUS_EXTENSIONS\n# Args to pass to the Quarkus CLI
     add extension command\nARG QUARKUS_ADD_EXTENSION_ARGS\n# Additional java/mvn arguments
     to pass to the builder\nARG MAVEN_ARGS_APPEND\n\n# Copy from build context to
     skeleton resources project\nCOPY --chown=1001 . ./resources\n\nRUN /home/kogito/launch/build-app.sh
     ./resources\n  \n#=============================\n# Runtime Run\n#=============================\nFROM
-    registry.access.redhat.com/ubi9/openjdk-17:latest\n\nENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'\n
-    \ \n# We make four distinct layers so if there are application changes the library
-    layers can be re-used\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/
+    registry.access.redhat.com/ubi9/openjdk-17-runtime:latest\n\nENV LANG='en_US.UTF-8'
+    LANGUAGE='en_US:en'\n  \n# We make four distinct layers so if there are application
+    changes the library layers can be re-used\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/
     /deployments/lib/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/*.jar
     /deployments/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/app/
     /deployments/app/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/quarkus/
diff --git a/bundle/manifests/sonataflow-operator.clusterserviceversion.yaml b/bundle/manifests/sonataflow-operator.clusterserviceversion.yaml
index c9a617e..37ca5da 100644
--- a/bundle/manifests/sonataflow-operator.clusterserviceversion.yaml
+++ b/bundle/manifests/sonataflow-operator.clusterserviceversion.yaml
@@ -119,7 +119,7 @@
       ]
     capabilities: Basic Install
     categories: Application Runtime
-    containerImage: quay.io/kiegroup/kogito-serverless-operator-nightly:latest
+    containerImage: docker.io/apache/incubator-kie-sonataflow-operator:main
     description: SonataFlow Kubernetes Operator for deploying workflow applications
       based on the CNCF Serverless Workflow specification
     operators.operatorframework.io/builder: operator-sdk-v1.25.0
@@ -761,7 +761,7 @@
                   valueFrom:
                     fieldRef:
                       fieldPath: metadata.namespace
-                image: quay.io/kiegroup/kogito-serverless-operator-nightly:latest
+                image: docker.io/apache/incubator-kie-sonataflow-operator:latest
                 livenessProbe:
                   httpGet:
                     path: /healthz
diff --git a/config/manager/SonataFlow-Builder.containerfile b/config/manager/SonataFlow-Builder.containerfile
index d95cbf0..892d1bd 100644
--- a/config/manager/SonataFlow-Builder.containerfile
+++ b/config/manager/SonataFlow-Builder.containerfile
@@ -1,4 +1,4 @@
-FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder
+FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder
 
 # variables that can be overridden by the builder
 # To add a Quarkus extension to your application
@@ -16,7 +16,7 @@
 #=============================
 # Runtime Run
 #=============================
-FROM registry.access.redhat.com/ubi9/openjdk-17:latest
+FROM registry.access.redhat.com/ubi9/openjdk-17-runtime:latest
 
 ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
   
diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml
index 3cc8cc8..fb3d741 100644
--- a/config/manager/kustomization.yaml
+++ b/config/manager/kustomization.yaml
@@ -21,7 +21,7 @@
 kind: Kustomization
 images:
 - name: controller
-  newName: quay.io/kiegroup/kogito-serverless-operator-nightly
+  newName: docker.io/apache/incubator-kie-sonataflow-operator
   newTag: latest
 # Patching the manager deployment file to add an env var with the operator namespace in
 patchesJson6902:
diff --git a/config/manifests/bases/sonataflow-operator.clusterserviceversion.yaml b/config/manifests/bases/sonataflow-operator.clusterserviceversion.yaml
index 8bdae52..094fbfa 100644
--- a/config/manifests/bases/sonataflow-operator.clusterserviceversion.yaml
+++ b/config/manifests/bases/sonataflow-operator.clusterserviceversion.yaml
@@ -5,7 +5,7 @@
     alm-examples: '[]'
     capabilities: Basic Install
     categories: Application Runtime
-    containerImage: quay.io/kiegroup/kogito-serverless-operator-nightly:latest
+    containerImage: docker.io/apache/incubator-kie-sonataflow-operator:main
     description: SonataFlow Kubernetes Operator for deploying workflow applications
       based on the CNCF Serverless Workflow specification
     operators.operatorframework.io/internal-objects: '["sonataflowbuilds.sonataflow.org"]'
diff --git a/container-builder/builder/kubernetes/builder_kaniko_test.go b/container-builder/builder/kubernetes/builder_kaniko_test.go
index 8603c37..9391700 100644
--- a/container-builder/builder/kubernetes/builder_kaniko_test.go
+++ b/container-builder/builder/kubernetes/builder_kaniko_test.go
@@ -68,7 +68,7 @@
 	addFlags[0] = "--use-new-run=true"
 
 	// create the new build, schedule with cache enabled, a specific set of resources and additional flags
-	build, err := NewBuild(ContainerBuilderInfo{FinalImageName: "quay.io/kiegroup/buildexample:latest", BuildUniqueName: "build1", Platform: platform}).
+	build, err := NewBuild(ContainerBuilderInfo{FinalImageName: "docker.io/apache/incubator-kie-buildexample:latest", BuildUniqueName: "build1", Platform: platform}).
 		AddResource("Dockerfile", dockerFile).
 		AddResource("greetings.sw.json", workflowDefinition).
 		WithClient(c).
@@ -134,7 +134,7 @@
 		},
 	}
 
-	build, err := NewBuild(ContainerBuilderInfo{FinalImageName: "quay.io/kiegroup/buildexample:latest", BuildUniqueName: "build1", Platform: platform}).
+	build, err := NewBuild(ContainerBuilderInfo{FinalImageName: "docker.io/apache/incubator-kie-buildexample:latest", BuildUniqueName: "build1", Platform: platform}).
 		AddResource("Dockerfile", dockerFile).
 		AddResource("greetings.sw.json", workflowDefinition).
 		WithClient(c).
diff --git a/container-builder/builder/kubernetes/builder_test.go b/container-builder/builder/kubernetes/builder_test.go
index a54201f..70fe527 100644
--- a/container-builder/builder/kubernetes/builder_test.go
+++ b/container-builder/builder/kubernetes/builder_test.go
@@ -57,7 +57,7 @@
 		},
 	}
 	// create the new build, schedule
-	build, err := NewBuild(ContainerBuilderInfo{FinalImageName: "quay.io/kiegroup/buildexample:latest", BuildUniqueName: "build1", Platform: platform}).
+	build, err := NewBuild(ContainerBuilderInfo{FinalImageName: "docker.io/apache/incubator-kie-buildexample:latest", BuildUniqueName: "build1", Platform: platform}).
 		WithClient(c).
 		AddResource("Dockerfile", dockerFile).
 		AddResource("greetings.sw.json", workflowDefinition).
diff --git a/container-builder/builder/kubernetes/testdata/Dockerfile b/container-builder/builder/kubernetes/testdata/Dockerfile
index 80d51e1..89f941b 100644
--- a/container-builder/builder/kubernetes/testdata/Dockerfile
+++ b/container-builder/builder/kubernetes/testdata/Dockerfile
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder
+FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder
 
 # Kogito User
 USER 1001
diff --git a/container-builder/examples/api/PlatformBuild_usingKanikowithCache.yaml b/container-builder/examples/api/PlatformBuild_usingKanikowithCache.yaml
index 788da52..5efeea8 100644
--- a/container-builder/examples/api/PlatformBuild_usingKanikowithCache.yaml
+++ b/container-builder/examples/api/PlatformBuild_usingKanikowithCache.yaml
@@ -1,7 +1,7 @@
 name: platform-kaniko-using-cache
 spec:
   publishStrategy: "Kaniko"
-  baseImage: quay.io/kiegroup/kogito-swf-builder-nightly:latest
+  baseImage: docker.io/apache/incubator-kie-sonataflow-builder:main
   registry:
     address: quay.io/kiegroup
     secret: regcred
diff --git a/container-builder/examples/dockerfiles/SonataFlow.dockerfile b/container-builder/examples/dockerfiles/SonataFlow.dockerfile
index 6ca872b..82d94ab 100644
--- a/container-builder/examples/dockerfiles/SonataFlow.dockerfile
+++ b/container-builder/examples/dockerfiles/SonataFlow.dockerfile
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder
+FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder
 
 # Kogito User
 USER 1001
diff --git a/controllers/builder/openshiftbuilder_test.go b/controllers/builder/openshiftbuilder_test.go
index 48b6ef3..9a74016 100644
--- a/controllers/builder/openshiftbuilder_test.go
+++ b/controllers/builder/openshiftbuilder_test.go
@@ -23,6 +23,7 @@
 	"context"
 	"testing"
 
+	"github.com/apache/incubator-kie-kogito-serverless-operator/controllers/platform"
 	buildv1 "github.com/openshift/api/build/v1"
 	imgv1 "github.com/openshift/api/image/v1"
 	buildfake "github.com/openshift/client-go/build/clientset/versioned/fake"
@@ -142,15 +143,19 @@
 	// Setup
 	ns := t.Name()
 	workflow := test.GetBaseSonataFlow(ns)
-	platform := test.GetBasePlatformInReadyPhase(t.Name())
+	pl := test.GetBasePlatformInReadyPhase(t.Name())
 	config := test.GetSonataFlowBuilderConfig(ns)
+
+	dockerFile := config.Data[defaultBuilderResourceName]
+	config.Data[defaultBuilderResourceName] = platform.ReplaceFromImageTagDockerfile(dockerFile, "FROM image:latest AS builder")
+
 	namespacedName := types.NamespacedName{Namespace: workflow.Namespace, Name: workflow.Name}
-	client := test.NewKogitoClientBuilderWithOpenShift().WithRuntimeObjects(workflow, platform, config).Build()
+	client := test.NewKogitoClientBuilderWithOpenShift().WithRuntimeObjects(workflow, pl, config).Build()
 	buildClient := buildfake.NewSimpleClientset().BuildV1()
 	managerContext := buildManagerContext{
 		ctx:              context.TODO(),
 		client:           client,
-		platform:         platform,
+		platform:         pl,
 		builderConfigMap: config,
 	}
 
diff --git a/controllers/platform/platformutils.go b/controllers/platform/platformutils.go
index f3978b7..0b41054 100644
--- a/controllers/platform/platformutils.go
+++ b/controllers/platform/platformutils.go
@@ -170,3 +170,9 @@
 	res := builderDockerfileFromRE.FindAllStringSubmatch(dockerfile, 1)
 	return strings.Trim(res[0][1], " ")
 }
+
+// ReplaceFromImageTagDockerfile replaces the "FROM" clause from the given dockerfile with the given fromReplacement.
+// For example: "FROM myimage:latest AS builder"
+func ReplaceFromImageTagDockerfile(dockerfile string, fromReplacement string) string {
+	return string(builderDockerfileFromRE.ReplaceAll([]byte(dockerfile), []byte(fromReplacement)))
+}
diff --git a/controllers/platform/platformutils_test.go b/controllers/platform/platformutils_test.go
index f111903..d0bcf2c 100644
--- a/controllers/platform/platformutils_test.go
+++ b/controllers/platform/platformutils_test.go
@@ -36,9 +36,9 @@
 		assert.Fail(t, "Unable to read base Dockerfile")
 	}
 	dockerfile := string(dockerfileBytes)
-	// 1 - Let's verify that the default image is used (for this unit test is quay.io/kiegroup/kogito-swf-builder-nightly:latest)
+	// 1 - Let's verify that the default image is used (for this unit test is docker.io/apache/incubator-kie-sonataflow-builder:main)
 	resDefault := GetCustomizedBuilderDockerfile(dockerfile, *platform)
-	foundDefault, err := regexp.MatchString("FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder", resDefault)
+	foundDefault, err := regexp.MatchString("FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder", resDefault)
 	assert.NoError(t, err)
 	assert.True(t, foundDefault)
 
diff --git a/controllers/platform/services/services.go b/controllers/platform/services/services.go
index aead391..50baa84 100644
--- a/controllers/platform/services/services.go
+++ b/controllers/platform/services/services.go
@@ -110,15 +110,8 @@
 	if persistenceType == constants.PersistenceTypeEphemeral && len(cfg.GetCfg().DataIndexEphemeralImageTag) > 0 {
 		return cfg.GetCfg().DataIndexEphemeralImageTag
 	}
-	var tag = version.GetMajorMinor()
-	var suffix = ""
-	if version.IsSnapshot() {
-		tag = "latest"
-		//TODO, remove
-		suffix = constants.ImageNameNightlySuffix
-	}
-	// returns "quay.io/kiegroup/kogito-data-index-<persistence_layer>:<tag>"
-	return fmt.Sprintf("%s-%s-%s:%s", constants.ImageNamePrefix, constants.DataIndexName, persistenceType.String()+suffix, tag)
+	// returns "docker.io/apache/incubator-kie-kogito-data-index-<persistence_layer>:<tag>"
+	return fmt.Sprintf("%s-%s-%s:%s", constants.ImageNamePrefix, constants.DataIndexName, persistenceType.String(), version.GetTagVersion())
 }
 
 func (d DataIndexHandler) GetServiceName() string {
@@ -279,15 +272,8 @@
 	if persistenceType == constants.PersistenceTypeEphemeral && len(cfg.GetCfg().JobsServiceEphemeralImageTag) > 0 {
 		return cfg.GetCfg().JobsServiceEphemeralImageTag
 	}
-	var tag = version.GetMajorMinor()
-	var suffix = ""
-	if version.IsSnapshot() {
-		tag = "latest"
-		//TODO remove
-		suffix = constants.ImageNameNightlySuffix
-	}
-	// returns "quay.io/kiegroup/kogito-jobs-service-<persistece_layer>:<tag>"
-	return fmt.Sprintf("%s-%s-%s:%s", constants.ImageNamePrefix, constants.JobServiceName, persistenceType.String()+suffix, tag)
+	// returns "docker.io/apache/incubator-kie-kogito-jobs-service-<persistece_layer>:<tag>"
+	return fmt.Sprintf("%s-%s-%s:%s", constants.ImageNamePrefix, constants.JobServiceName, persistenceType.String(), version.GetTagVersion())
 }
 
 func (j JobServiceHandler) GetServiceName() string {
diff --git a/controllers/profiles/common/constants/platform_services.go b/controllers/profiles/common/constants/platform_services.go
index 30b25fb..4065d9e 100644
--- a/controllers/profiles/common/constants/platform_services.go
+++ b/controllers/profiles/common/constants/platform_services.go
@@ -57,12 +57,8 @@
 
 	DataIndexServiceName = "data-index-service"
 	JobServiceName       = "jobs-service"
-	ImageNamePrefix      = "quay.io/kiegroup/kogito"
-	//TODO, the usage of this constant was temporary introduced since only the nightly images are being updated for the
-	//data-index and jobs-service. And this is causing issues at the time of using the workflows integrated with these, etc.
-	//This will be removed when the CI is fixed.
-	ImageNameNightlySuffix = "-nightly"
-	DataIndexName          = "data-index"
+	ImageNamePrefix      = "docker.io/apache/incubator-kie-kogito"
+	DataIndexName        = "data-index"
 
 	DefaultDatabaseName   string = "sonataflow"
 	DefaultPostgreSQLPort int    = 5432
diff --git a/controllers/workflowdef/image.go b/controllers/workflowdef/image.go
index 220aa20..0174a92 100644
--- a/controllers/workflowdef/image.go
+++ b/controllers/workflowdef/image.go
@@ -20,6 +20,8 @@
 package workflowdef
 
 import (
+	"fmt"
+
 	"github.com/apache/incubator-kie-kogito-serverless-operator/api/v1alpha08"
 	"github.com/apache/incubator-kie-kogito-serverless-operator/controllers/cfg"
 	"github.com/apache/incubator-kie-kogito-serverless-operator/version"
@@ -27,9 +29,8 @@
 
 const (
 	latestImageTag              = "latest"
-	nightlySuffix               = "nightly"
-	defaultWorkflowDevModeImage = "quay.io/kiegroup/kogito-swf-devmode"
-	defaultWorkflowBuilderImage = "quay.io/kiegroup/kogito-swf-builder"
+	defaultWorkflowDevModeImage = "docker.io/apache/incubator-kie-sonataflow-devmode"
+	defaultWorkflowBuilderImage = "docker.io/apache/incubator-kie-sonataflow-builder"
 )
 
 // GetWorkflowAppImageNameTag returns the image name with tag to use for the image to be produced for a given workflow.
@@ -63,14 +64,5 @@
 }
 
 func GetDefaultImageTag(imgTag string) string {
-	if version.IsSnapshot() {
-		imgTag += "-" + nightlySuffix
-	}
-	imgTag += ":"
-	if version.IsLatestVersion() {
-		imgTag += latestImageTag
-	} else {
-		imgTag += version.GetMajorMinor()
-	}
-	return imgTag
+	return fmt.Sprintf("%s:%s", imgTag, version.GetTagVersion())
 }
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 2112d86..14dd27e 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -175,7 +175,7 @@
 
 At the startup a [Dockerfile](../config/manager/SonataFlow-Builder.containerfile) is placed in a configmap. This
 Dockerfile uses a base image
-called [kogito-swf-builder](https://github.com/kiegroup/kogito-images/tree/master/modules/kogito-swf-builder) with:
+called [sonataflow-builder](https://github.com/kiegroup/kogito-images/tree/master/modules/sonataflow-builder) with:
 
 - openjdk 11+
 - maven 3.8.6+
diff --git a/hack/bump-version.sh b/hack/bump-version.sh
index d74fd88..d2791f0 100755
--- a/hack/bump-version.sh
+++ b/hack/bump-version.sh
@@ -20,10 +20,9 @@
 script_dir_path=$(dirname "${BASH_SOURCE[0]}")
 source "${script_dir_path}"/env.sh
 
-imageTag='quay.io/kiegroup/kogito-serverless-operator'
+imageTag='docker.io/apache/incubator-kie-sonataflow-operator'
 # shellcheck disable=SC2034
-old_version=$(getOperatorVersion)
-latest_version=$(getOperatorLatestVersion)
+old_version=$(getImageTagVersion)
 new_version=$1
 
 if [ -z "${new_version}" ]; then
@@ -31,18 +30,10 @@
   exit 1
 fi
 
-imageSuffix=$(if [[ "${new_version}" == *snapshot ]]; then echo '-nightly'; else echo ''; fi)
-
 oldMajorMinorVersion=${old_version%.*}
 newMajorMinorVersion=${new_version%.*}
-if [ "${old_version}" = "${latest_version}" ]; then
-  oldMajorMinorVersion='latest'
-fi
-if [ "${new_version}" = "${latest_version}" ]; then
-  newMajorMinorVersion='latest'
-fi
 
-echo "Set new version to ${new_version} (img_suffix = '${imageSuffix}', majorMinor = ${newMajorMinorVersion})"
+echo "Set new version to ${new_version} (majorMinor = ${newMajorMinorVersion})"
 
 sed -i "s|version: ${old_version}|version: ${new_version}|g" image.yaml
 
@@ -50,19 +41,19 @@
 sed -i "s|^REDUCED_VERSION ?=.*|REDUCED_VERSION ?= ${newMajorMinorVersion}|g" Makefile
 sed -i "s|newTag:.*|newTag: ${new_version}|g" config/manager/kustomization.yaml
 
-sed -i "s|IMAGE_TAG_BASE ?=.*|IMAGE_TAG_BASE ?= ${imageTag}${imageSuffix}|g" Makefile
-sed -i "s|newName:.*|newName: ${imageTag}${imageSuffix}|g" config/manager/kustomization.yaml
+sed -i "s|IMAGE_TAG_BASE ?=.*|IMAGE_TAG_BASE ?= ${imageTag}|g" Makefile
+sed -i "s|newName:.*|newName: ${imageTag}|g" config/manager/kustomization.yaml
 
-# Update kogito-swf-* images
-find . -name "*.yaml" -exec sed -i "s|quay.io/kiegroup/kogito-swf-builder.*:${oldMajorMinorVersion}|quay.io/kiegroup/kogito-swf-builder${imageSuffix}:${newMajorMinorVersion}|" {} +
-sed -i "s|quay.io/kiegroup/kogito-swf-builder.*:${oldMajorMinorVersion}|quay.io/kiegroup/kogito-swf-builder${imageSuffix}:${newMajorMinorVersion}|" Dockerfile
+# Update sonataflow-* images
+find . -name "*.yaml" -exec sed -i "s|docker.io/apache/incubator-kie-sonataflow-builder.*:${oldMajorMinorVersion}|docker.io/apache/incubator-kie-sonataflow-builder:${newMajorMinorVersion}|" {} +
+sed -i "s|docker.io/apache/incubator-kie-sonataflow-builder.*:${oldMajorMinorVersion}|docker.io/apache/incubator-kie-sonataflow-builder:${newMajorMinorVersion}|" Dockerfile
 
-find . -name "*.yaml" -exec sed -i "s|quay.io/kiegroup/kogito-swf-devmode.*:${oldMajorMinorVersion}|quay.io/kiegroup/kogito-swf-devmode${imageSuffix}:${newMajorMinorVersion}|" {} +
-sed -i "s|quay.io/kiegroup/kogito-swf-devmode.*:${oldMajorMinorVersion}|quay.io/kiegroup/kogito-swf-devmode${imageSuffix}:${newMajorMinorVersion}|" Dockerfile
+find . -name "*.yaml" -exec sed -i "s|docker.io/apache/incubator-kie-sonataflow-devmode.*:${oldMajorMinorVersion}|docker.io/apache/incubator-kie-sonataflow-devmode:${newMajorMinorVersion}|" {} +
+sed -i "s|docker.io/apache/incubator-kie-sonataflow-devmode.*:${oldMajorMinorVersion}|docker.io/apache/incubator-kie-sonataflow-devmode:${newMajorMinorVersion}|" Dockerfile
 
-sed -i -r "s|OperatorVersion =.*|OperatorVersion = \"${new_version}\"|g" version/version.go
+sed -i -r "s|operatorVersion =.*|operatorVersion = \"${new_version}\"|g" version/version.go
 
-sed -i "s|containerImage:.*|containerImage: ${imageTag}${imageSuffix}:${newMajorMinorVersion}|g" $(getCsvFile)
+sed -i "s|containerImage:.*|containerImage: ${imageTag}:${newMajorMinorVersion}|g" $(getCsvFile)
 
 make generate-all
 make vet
diff --git a/hack/env.sh b/hack/env.sh
index 945175d..c463d26 100755
--- a/hack/env.sh
+++ b/hack/env.sh
@@ -20,13 +20,13 @@
 BUNDLE_DIR="bundle/manifests"
 
 getOperatorVersion() {
-  local version=$(grep -m 1 'OperatorVersion' version/version.go | awk -F\" '{print $2}')
+  local version=$(grep -m 1 'operatorVersion = ' version/version.go | awk -F\" '{print $2}')
   echo "${version}"
 }
 
-getOperatorLatestVersion() {
-  local version=$(grep -m 1 'latestVersion' version/version.go | awk -F\" '{print $2}')
-  echo "${version}"
+getImageTagVersion() {
+  local tag_version=$(grep -m 1 'tagVersion = ' version/version.go | awk -F\" '{print $2}')
+  echo "${tag_version}"
 }
 
 getOperatorImageName() {
diff --git a/hack/local/build-simple-workflow.sh b/hack/local/build-simple-workflow.sh
index c0886e4..e008e39 100755
--- a/hack/local/build-simple-workflow.sh
+++ b/hack/local/build-simple-workflow.sh
@@ -17,4 +17,4 @@
 cp ./config/manager/sonataflow_builder_dockerfile.yaml /tmp/simpleworkflow/Dockerfile
 cp ./workflowproj/testdata/workflows/workflow-minimal.sw.json /tmp/simpleworkflow/workflow-minimal.sw.json
 
-docker build -t quay.io/kiegroup/sonataflow-minimal-example:latest /tmp/simpleworkflow/
+docker build -t docker.io/apache/incubator-kie-sonataflow-minimal-example:latest /tmp/simpleworkflow/
diff --git a/main.go b/main.go
index e0265ed..dc290e0 100644
--- a/main.go
+++ b/main.go
@@ -24,6 +24,7 @@
 	"os"
 
 	"github.com/apache/incubator-kie-kogito-serverless-operator/controllers/cfg"
+	"github.com/apache/incubator-kie-kogito-serverless-operator/version"
 	eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
 	sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
 	servingv1 "knative.dev/serving/pkg/apis/serving/v1"
@@ -158,7 +159,7 @@
 		os.Exit(1)
 	}
 
-	klog.V(log.I).InfoS("starting manager")
+	klog.V(log.I).InfoS("starting manager", "version:", version.GetOperatorVersion())
 	if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
 		klog.V(log.E).ErrorS(err, "problem running manager")
 		os.Exit(1)
diff --git a/operator.yaml b/operator.yaml
index f7d0931..325d30c 100644
--- a/operator.yaml
+++ b/operator.yaml
@@ -26988,16 +26988,16 @@
 apiVersion: v1
 data:
   DEFAULT_WORKFLOW_EXTENSION: .sw.json
-  Dockerfile: "FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder\n\n#
+  Dockerfile: "FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder\n\n#
     variables that can be overridden by the builder\n# To add a Quarkus extension
     to your application\nARG QUARKUS_EXTENSIONS\n# Args to pass to the Quarkus CLI
     add extension command\nARG QUARKUS_ADD_EXTENSION_ARGS\n# Additional java/mvn arguments
     to pass to the builder\nARG MAVEN_ARGS_APPEND\n\n# Copy from build context to
     skeleton resources project\nCOPY --chown=1001 . ./resources\n\nRUN /home/kogito/launch/build-app.sh
     ./resources\n  \n#=============================\n# Runtime Run\n#=============================\nFROM
-    registry.access.redhat.com/ubi9/openjdk-17:latest\n\nENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'\n
-    \ \n# We make four distinct layers so if there are application changes the library
-    layers can be re-used\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/
+    registry.access.redhat.com/ubi9/openjdk-17-runtime:latest\n\nENV LANG='en_US.UTF-8'
+    LANGUAGE='en_US:en'\n  \n# We make four distinct layers so if there are application
+    changes the library layers can be re-used\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/
     /deployments/lib/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/*.jar
     /deployments/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/app/
     /deployments/app/\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/quarkus/
@@ -27104,7 +27104,7 @@
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
-        image: quay.io/kiegroup/kogito-serverless-operator-nightly:latest
+        image: docker.io/apache/incubator-kie-sonataflow-operator:latest
         livenessProbe:
           httpGet:
             path: /healthz
diff --git a/tekton/pipeline/kogito_serverless_operator_pipeline.yaml b/tekton/pipeline/kogito_serverless_operator_pipeline.yaml
index 4cff773..60c28c1 100644
--- a/tekton/pipeline/kogito_serverless_operator_pipeline.yaml
+++ b/tekton/pipeline/kogito_serverless_operator_pipeline.yaml
@@ -53,7 +53,7 @@
       params:
         - name: script
           value: >
-            curl https://raw.githubusercontent.com/apache/incubator-kie-kogito-serverless-operator/main/operator.yaml | sed -E 's|image: quay.io/kiegroup/.*|image: image-registry.openshift-image-registry.svc:5000/sonataflow-operator-system/kogito-serverless-operator:latest|g' | kubectl apply -f -
+            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:
diff --git a/test/builder/Dockerfile b/test/builder/Dockerfile
index fac640c..41dbbae 100644
--- a/test/builder/Dockerfile
+++ b/test/builder/Dockerfile
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder
+FROM docker.io/apache/incubator-kie-sonataflow-builder:main AS builder
 
 # Kogito User
 USER 1001
diff --git a/test/testdata/sonataflow.org_v1alpha08_sonataflow-simpleops.yaml b/test/testdata/sonataflow.org_v1alpha08_sonataflow-simpleops.yaml
index d55f427..8c8de2a 100644
--- a/test/testdata/sonataflow.org_v1alpha08_sonataflow-simpleops.yaml
+++ b/test/testdata/sonataflow.org_v1alpha08_sonataflow-simpleops.yaml
@@ -25,7 +25,7 @@
 spec:
   podTemplate:
     container:
-      image: quay.io/kiegroup/sonataflow-minimal-example:latest
+      image: docker.io/apache/incubator-kie-sonataflow-minimal-example:latest
   flow:
     start: HelloWorld
     states:
diff --git a/test/testdata/sonataflow.org_v1alpha08_sonataflowplatform_withCache_minikube.yaml b/test/testdata/sonataflow.org_v1alpha08_sonataflowplatform_withCache_minikube.yaml
index 76a1e02..adb4de8 100644
--- a/test/testdata/sonataflow.org_v1alpha08_sonataflowplatform_withCache_minikube.yaml
+++ b/test/testdata/sonataflow.org_v1alpha08_sonataflowplatform_withCache_minikube.yaml
@@ -22,6 +22,6 @@
 spec:
   build:
     config:
-      baseImage: quay.io/kiegroup/kogito-swf-builder-nightly:latest
+      baseImage: docker.io/apache/incubator-kie-sonataflow-builder:main
       strategyOptions:
         KanikoBuildCacheEnabled: "true"
diff --git a/testbdd/README.md b/testbdd/README.md
index cd31d60..00cc330 100644
--- a/testbdd/README.md
+++ b/testbdd/README.md
@@ -88,9 +88,9 @@
 ```
 $ make
 $ make container-build
-$ podman tag quay.io/kiegroup/kogito-serverless-operator-nightly:latest quay.io/{USERNAME}/kogito-serverless-operator-nightly:latest
-$ podman push quay.io/{USERNAME}/kogito-serverless-operator-nightly:latest
-$ make run-tests cr_deployment_only=true local_cluster=true operator_image_tag=quay.io/{USERNAME}/kogito-serverless-operator-nightly:latest
+$ podman tag docker.io/apache/incubator-kie-sonataflow-operator:main quay.io/{USERNAME}/incubator-kie-sonataflow-operator:latest
+$ podman push quay.io/{USERNAME}/incubator-kie-sonataflow-operator:latest
+$ make run-tests cr_deployment_only=true local_cluster=true operator_image_tag=quay.io/{USERNAME}/incubator-kie-sonataflow-operator:latest
 ```
 
 **NOTE:** Replace {USERNAME} with the username/group you want to push to. Podman needs to be logged in to quay.io and be able to push to your username/group. If you want to use docker, just append `BUILDER=docker` to the `make container-build` command.
@@ -108,7 +108,7 @@
 
 #### Running devMode tests
 ```bash
-make run-tests cr_deployment_only=true local_cluster=true show_scenarios=true tags=devMode  namespace_name=my-namespace operator_image_tag=quay.io/kiegroup/kogito-serverless-operator-nightly:latest
+make run-tests cr_deployment_only=true local_cluster=true show_scenarios=true tags=devMode  namespace_name=my-namespace operator_image_tag=docker.io/apache/incubator-kie-sonataflow-operator:latest
 ```
 
 If you want to have a more readable format, you can specify the `format=pretty` parameter. You can also specify your own operator image. Namespace is always created automatically, however, you can provide its name as in the command above, otherwise it will be automatically generated.
diff --git a/testbdd/installers/sonataflow_installer.go b/testbdd/installers/sonataflow_installer.go
index 1b528bc..aa27415 100644
--- a/testbdd/installers/sonataflow_installer.go
+++ b/testbdd/installers/sonataflow_installer.go
@@ -33,7 +33,7 @@
 	srvframework "github.com/apache/incubator-kie-kogito-serverless-operator/testbdd/framework"
 )
 
-const defaultOperatorImage = "quay.io/kiegroup/kogito-serverless-operator"
+const defaultOperatorImage = "docker.io/apache/incubator-kie-sonataflow-operator"
 
 var (
 	// sonataFlowYamlClusterInstaller installs SonataFlow operator cluster wide using YAMLs
diff --git a/version/version.go b/version/version.go
index 942dc66..7321fb2 100644
--- a/version/version.go
+++ b/version/version.go
@@ -19,28 +19,26 @@
 
 package version
 
-import (
-	"strings"
-)
-
 const (
-	// Current version
-	OperatorVersion = "999.0.0-snapshot"
+	// Use the script /hack/ci/bump-version.sh to update these constants. DO NOT UPDATE THEM MANUALLY!
 
-	// Should not be changed
-	snapshotSuffix = "snapshot"
-	latestVersion  = "999.0.0-snapshot"
+	// operatorVersion is the current BINARY version of the operator, not the image tag.
+	operatorVersion = "999.0.0"
+	// tagVersion is the images version tag.
+	// For example, docker.io/apache/incubator-kie-sonataflow-operator:main
+	//
+	// This tag must reflect an existing tag in the registry. In development, must follow the git branch naming.
+	// When released, this version should reflect the `major.minor` version in the registry.
+	// For example, docker.io/apache/incubator-kie-sonataflow-operator:10.0
+	tagVersion = "main"
 )
 
-func IsSnapshot() bool {
-	return strings.HasSuffix(OperatorVersion, snapshotSuffix)
+// GetOperatorVersion gets the current binary version of the operator. Do not use it to compose image tags!
+func GetOperatorVersion() string {
+	return operatorVersion
 }
 
-func IsLatestVersion() bool {
-	return latestVersion == OperatorVersion
-}
-
-func GetMajorMinor() string {
-	v := strings.Split(OperatorVersion, ".")
-	return v[0] + "." + v[1]
+// GetTagVersion gets the current tag version for the operator and platform images.
+func GetTagVersion() string {
+	return tagVersion
 }
