diff --git a/robot-systest/resources/basic_22-cross_model_relations.py b/robot-systest/resources/basic_22-cross_model_relations.py
new file mode 100644
index 0000000..3cd5e42
--- /dev/null
+++ b/robot-systest/resources/basic_22-cross_model_relations.py
@@ -0,0 +1,29 @@
+#   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.
+
+from pathlib import Path
+
+# Get ${HOME} from local machine
+home = str(Path.home())
+# NS and VNF descriptor package folder
+vnfd_pkg_1 = "charm-packages/cmr_relation_vnf"
+vnfd_pkg_2 = "charm-packages/cmr_no_relation_vnf"
+nsd_pkg = "charm-packages/cmr_relation_ns"
+# NS and VNF descriptor id
+vnfd_name_1 = "cross_model_relation-vnf"
+vnfd_name_2 = "cross_model_no_relation-vnf"
+nsd_name = "cross_model_relation-ns"
+# NS instance name
+ns_name = "basic_22_cross_model_relation_test"
+# SSH keys to be used
+publickey = home + "/.ssh/id_rsa.pub"
+privatekey = home + "/.ssh/id_rsa"
diff --git a/robot-systest/testsuite/basic_22-cross_model_relations.robot b/robot-systest/testsuite/basic_22-cross_model_relations.robot
new file mode 100644
index 0000000..83b523b
--- /dev/null
+++ b/robot-systest/testsuite/basic_22-cross_model_relations.robot
@@ -0,0 +1,105 @@
+#    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.
+
+*** Settings ***
+Documentation    [BASIC-22] Cross-model relations
+
+Library    OperatingSystem
+Library    SSHLibrary
+
+Resource    %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
+Resource    %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
+Resource    %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
+Resource    %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/k8scluster_lib.robot
+
+Variables    %{ROBOT_DEVOPS_FOLDER}/resources/basic_22-cross_model_relations.py
+
+Force Tags    basic_22    cluster_ee_config    cluster_relations    daily    regression
+
+Suite Teardown    Run Keyword And Ignore Error    Suite Cleanup
+
+
+*** Variables ***
+# K8s cluster name and version
+${k8scluster_name}   k8sbasic_22
+${k8scluster_version}   v1
+${username}       ubuntu
+${password}       ${EMPTY}
+${ns_config}      {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+${action_name}    touch
+${ns_timeout}     15min
+
+
+*** Test Cases ***
+Create Charm VNF Descriptor 1
+
+    Create VNFD    '%{PACKAGES_FOLDER}/${vnfd_pkg_1}'
+
+Create Charm VNF Descriptor 2
+
+    Create VNFD    '%{PACKAGES_FOLDER}/${vnfd_pkg_2}'
+
+Create Charm NS Descriptor
+
+    Create NSD    '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
+Add K8s Cluster To OSM
+    Create K8s Cluster  %{K8S_CREDENTIALS}  ${k8scluster_version}  %{VIM_TARGET}  %{VIM_MGMT_NET}  ${k8scluster_name}
+
+Instantiate Charm Network Service
+
+    ${id}=                Create Network Service    ${nsd_name}    %{VIM_TARGET}    ${ns_name}    ${ns_config}    ${publickey}    ${ns_timeout}
+    Set Suite Variable    ${ns_id}                  ${id}
+
+
+# TODO Check juju status for relations
+
+
+Delete NS Instance
+    [Tags]    cleanup
+
+    Delete NS    ${ns_name}
+
+Remove K8s Cluster from OSM
+    [Tags]   cleanup
+    Delete K8s Cluster  ${k8scluster_name}
+
+Delete NS Descriptor
+    [Tags]    cleanup
+
+    Delete NSD    ${nsd_name}
+
+
+Delete VNF Descriptor 1
+    [Tags]    cleanup
+
+    Delete VNFD    ${vnfd_name_1}
+
+Delete VNF Descriptor 2
+    [Tags]    cleanup
+
+    Delete VNFD    ${vnfd_name_2}
+
+
+*** Keywords ***
+Suite Cleanup
+    [Documentation]    Test Suite Cleanup: Deleting descriptors and NS instance
+
+    Run Keyword If Any Tests Failed    Delete NS    ${ns_name}
+
+    Run Keyword If Any Tests Failed    Delete NSD    ${nsd_name}
+
+    Run Keyword If Any Tests Failed    Delete VNFD 1    ${vnfd_name_1}
+
+    Run Keyword If Any Tests Failed    Delete VNFD 2    ${vnfd_name_2}
+
