diff --git a/src/main/java/net/geant/nmaas/externalservices/kubernetes/RemoteClusterManager.java b/src/main/java/net/geant/nmaas/externalservices/kubernetes/RemoteClusterManager.java
index 1ce39f84be89c9de640fbd791ff103417be68e18..7ab5cf48dd4a9f2d50d2f5cffecf48911b8649e8 100644
--- a/src/main/java/net/geant/nmaas/externalservices/kubernetes/RemoteClusterManager.java
+++ b/src/main/java/net/geant/nmaas/externalservices/kubernetes/RemoteClusterManager.java
@@ -349,4 +349,8 @@ public class RemoteClusterManager implements ClusterMonitoringService {
 
     }
 
+    public boolean clusterExist(Long id) {
+        return clusterRepository.existsById(id);
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java
index 1cb6ce71487bd05b78fbade29f70dae91319b9af..b4668e77e24b3174555110a00f1175ec6229f886 100644
--- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java
+++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java
@@ -4,6 +4,7 @@ import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import net.geant.nmaas.externalservices.kubernetes.KubernetesClusterIngressManager;
+import net.geant.nmaas.externalservices.kubernetes.RemoteClusterManager;
 import net.geant.nmaas.externalservices.kubernetes.entities.IngressControllerConfigOption;
 import net.geant.nmaas.gitlab.GitLabManager;
 import net.geant.nmaas.gitlab.exceptions.GitLabInvalidConfigurationException;
@@ -81,6 +82,7 @@ public class KubernetesManager implements ContainerOrchestrator {
     private final KubernetesClusterIngressManager ingressManager;
     private final GitLabManager gitLabManager;
     private final JanitorService janitorService;
+    private final RemoteClusterManager remoteClusterManager;
 
     @Override
     @Loggable(LogLevel.INFO)
@@ -97,12 +99,25 @@ public class KubernetesManager implements ContainerOrchestrator {
             throw new NmServiceRequestVerificationException(iae.getMessage());
         }
 
-        KubernetesNmServiceInfo serviceInfo = new KubernetesNmServiceInfo(
-                deploymentId,
-                appDeployment.getDeploymentName(),
-                appDeployment.getDomain(),
-                appDeployment.getDescriptiveDeploymentId()
-        );
+        KubernetesNmServiceInfo serviceInfo;
+        //verify cluster
+        if(remoteClusterManager.clusterExist(appDeployment.getRemoteClusterId())) {
+            serviceInfo = new KubernetesNmServiceInfo(
+                    deploymentId,
+                    appDeployment.getDeploymentName(),
+                    appDeployment.getDomain(),
+                    appDeployment.getDescriptiveDeploymentId(),
+                    remoteClusterManager.getCluster(appDeployment.getRemoteClusterId()));
+        } else {
+            serviceInfo = new KubernetesNmServiceInfo(
+                    deploymentId,
+                    appDeployment.getDeploymentName(),
+                    appDeployment.getDomain(),
+                    appDeployment.getDescriptiveDeploymentId()
+            );
+        }
+
+
         serviceInfo.setKubernetesTemplate(KubernetesTemplate.copy(appDeploymentSpec.getKubernetesTemplate()));
         serviceInfo.setStorageVolumes(generateTemplateStorageVolumes(appDeploymentSpec.getStorageVolumes()));
         serviceInfo.setAccessMethods(generateTemplateAccessMethods(appDeploymentSpec.getAccessMethods()));
diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/entities/KubernetesNmServiceInfo.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/entities/KubernetesNmServiceInfo.java
index e2f56ccb6d5a2c1c28894c21616ad0fec369d6bf..7c77eb8654a021dc403df24eec1052bda5bc8075 100644
--- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/entities/KubernetesNmServiceInfo.java
+++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/entities/KubernetesNmServiceInfo.java
@@ -2,6 +2,7 @@ package net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.e
 
 import lombok.Getter;
 import lombok.Setter;
+import net.geant.nmaas.externalservices.kubernetes.entities.KCluster;
 import net.geant.nmaas.nmservice.deployment.entities.NmServiceInfo;
 import net.geant.nmaas.orchestration.Identifier;
 
@@ -38,6 +39,8 @@ public class KubernetesNmServiceInfo extends NmServiceInfo {
     @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
     private Set<ServiceAccessMethod> accessMethods;
 
+    private KCluster remoteCluster;
+
     public KubernetesNmServiceInfo () {
         super();
     }
@@ -46,4 +49,9 @@ public class KubernetesNmServiceInfo extends NmServiceInfo {
         super(deploymentId, deploymentName, domain, descriptiveDeploymentId);
     }
 
+    public KubernetesNmServiceInfo(Identifier deploymentId, String deploymentName, String domain, Identifier descriptiveDeploymentId, KCluster kCluster) {
+        super(deploymentId, deploymentName, domain, descriptiveDeploymentId);
+        this.remoteCluster = kCluster;
+    }
+
 }
diff --git a/src/main/java/net/geant/nmaas/orchestration/entities/AppDeployment.java b/src/main/java/net/geant/nmaas/orchestration/entities/AppDeployment.java
index 73173f116825dda60fe71b772bb9897e0b37927f..6593de17059fffb3ba403dc82acdda17ed701325 100644
--- a/src/main/java/net/geant/nmaas/orchestration/entities/AppDeployment.java
+++ b/src/main/java/net/geant/nmaas/orchestration/entities/AppDeployment.java
@@ -127,6 +127,8 @@ public class AppDeployment {
 
     private Long instanceId;
 
+    private Long remoteClusterId;
+
     /**
      * Globally unique descriptive application deployment identifier
      */
diff --git a/src/main/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTask.java b/src/main/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTask.java
index 3810ab4bbcf8f45dd015521e01b508f0d0dbd047..f7d1e2993767b4072f66086eae00a2cf6f0b13d0 100644
--- a/src/main/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTask.java
+++ b/src/main/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTask.java
@@ -2,6 +2,7 @@ package net.geant.nmaas.orchestration.tasks.app;
 
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import net.geant.nmaas.externalservices.kubernetes.RemoteClusterManager;
 import net.geant.nmaas.nmservice.deployment.NmServiceDeploymentProvider;
 import net.geant.nmaas.orchestration.Identifier;
 import net.geant.nmaas.orchestration.entities.AppDeployment;
@@ -29,6 +30,8 @@ public class AppRequestVerificationTask {
     private AppDeploymentRepository repository;
     private ApplicationRepository appRepository;
 
+    private RemoteClusterManager remoteClusterManager;
+
     @EventListener
     @Loggable(LogLevel.INFO)
     @Transactional(propagation = Propagation.REQUIRES_NEW)
@@ -39,6 +42,9 @@ public class AppRequestVerificationTask {
             final AppDeployment appDeployment = repository.findByDeploymentId(deploymentId).orElseThrow(() -> new InvalidDeploymentIdException(deploymentId));
             final Application application = appRepository.findById(Long.valueOf(appDeployment.getApplicationId().getValue())).orElseThrow(() ->
                     new InvalidApplicationIdException("Application for deployment " + deploymentId + " does not exist in repository"));
+            if(!remoteClusterManager.clusterExist(appDeployment.getRemoteClusterId())) {
+                throw new InvalidDeploymentIdException("Wrong remote cluster Id");
+            }
             serviceDeployment.verifyRequest(
                     deploymentId,
                     appDeployment,
diff --git a/src/main/java/net/geant/nmaas/portal/api/market/AppInstanceController.java b/src/main/java/net/geant/nmaas/portal/api/market/AppInstanceController.java
index 81365d8a6ed7c899f34f4ee9eeff9ac7f03351a2..0a2f7e395efbcbc596163f69b7c6ffceeacc5919 100644
--- a/src/main/java/net/geant/nmaas/portal/api/market/AppInstanceController.java
+++ b/src/main/java/net/geant/nmaas/portal/api/market/AppInstanceController.java
@@ -297,6 +297,7 @@ public class AppInstanceController extends AppBaseController {
                 .owner(principal.getName())
                 .appName(app.getName())
                 .descriptiveDeploymentId(createDescriptiveDeploymentId(domain.getCodename(), app.getName(), appInstance.getId()))
+                .remoteClusterId(clusterId)
                 .build();
 
         Identifier internalId = appLifecycleManager.deployApplication(appDeployment);
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
index 5af2eeecbe42cc13ec5cc9c2f262f5fa23aa1f98..88cad0edcb8ff7dbb96d52536d6d811a61bb258d 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
@@ -200,7 +200,7 @@ public class DomainServiceImpl implements DomainService {
                 eventPublisher.publishEvent(new DomainCreatedEvent(this, new DomainCreatedEvent.DomainSpec(saved.getId(), saved.getName(), saved.getCodename(), request.getAnnotations())));
             }
             //call existing webhooks
-            webhookEventRepository.findIdByEventType(WebhookEventType.DOMAIN_CREATION).forEach(id -> scheduleManager.createOneTimeJob(DomainCreationJob.class, "DomainCreation_" + id + "_" + saved.getId(), Map.of("webhookId", id, "domainId", saved.getId())));
+//            webhookEventRepository.findIdByEventType(WebhookEventType.DOMAIN_CREATION).forEach(id -> scheduleManager.createOneTimeJob(DomainCreationJob.class, "DomainCreation_" + id + "_" + saved.getId(), Map.of("webhookId", id, "domainId", saved.getId())));
             return saved;
         } catch (Exception ex) {
             throw new ProcessingException("Unable to create new domain with given name or codename.");
diff --git a/src/test/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTaskTest.java b/src/test/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTaskTest.java
index 6171c102318ac1bf8e99820409db14223e7b90f9..8112568adee274e43652fcf6d9e3793c9baf3f30 100644
--- a/src/test/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTaskTest.java
+++ b/src/test/java/net/geant/nmaas/orchestration/tasks/app/AppRequestVerificationTaskTest.java
@@ -1,5 +1,6 @@
 package net.geant.nmaas.orchestration.tasks.app;
 
+import net.geant.nmaas.externalservices.kubernetes.RemoteClusterManager;
 import net.geant.nmaas.nmservice.deployment.NmServiceDeploymentProvider;
 import net.geant.nmaas.orchestration.Identifier;
 import net.geant.nmaas.orchestration.entities.AppDeployment;
@@ -25,6 +26,7 @@ public class AppRequestVerificationTaskTest {
     private NmServiceDeploymentProvider deploy = mock(NmServiceDeploymentProvider.class);
     private AppDeploymentRepository deployments = mock(AppDeploymentRepository.class);
     private ApplicationRepository applications = mock(ApplicationRepository.class);
+    private RemoteClusterManager remoteClusterManager = mock(RemoteClusterManager.class);
 
     private AppRequestVerificationTask task;
 
@@ -33,7 +35,7 @@ public class AppRequestVerificationTaskTest {
 
     @BeforeEach
     public void setup() {
-        task = new AppRequestVerificationTask(deploy, deployments, applications);
+        task = new AppRequestVerificationTask(deploy, deployments, applications, remoteClusterManager);
     }
 
     @Test