diff --git a/ci-scripts/ci_infra.yaml b/ci-scripts/ci_infra.yaml
index 8cbb5936e2..d562593e1a 100644
--- a/ci-scripts/ci_infra.yaml
+++ b/ci-scripts/ci_infra.yaml
@@ -58,6 +58,8 @@ adb_ue_2:
oc-cn5g:
Host: avra
+ Namespace: "oaicicd-core-for-ci-ran"
+ CNPath: "/opt/oai-cn5g-fed-develop-2024-april-00102"
NetworkScript: echo "inet 172.21.6.102"
RunIperf3Server: False
diff --git a/ci-scripts/cls_cluster.py b/ci-scripts/cls_cluster.py
index 80d6d95daa..3f11fad7fb 100644
--- a/ci-scripts/cls_cluster.py
+++ b/ci-scripts/cls_cluster.py
@@ -43,7 +43,6 @@ NAMESPACE = "oaicicd-ran"
OCUrl = "https://api.oai.cs.eurecom.fr:6443"
OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
CI_OC_RAN_NAMESPACE = "oaicicd-ran"
-CI_OC_CORE_NAMESPACE = "oaicicd-core-for-ci-ran"
CN_IMAGES = ["mysql", "oai-nrf", "oai-amf", "oai-smf", "oai-upf", "oai-ausf", "oai-udm", "oai-udr", "oai-traffic-server"]
CN_CONTAINERS = ["", "-c nrf", "-c amf", "-c smf", "-c upf", "-c ausf", "-c udm", "-c udr", ""]
@@ -68,10 +67,9 @@ def OC_login(cmd, ocUserName, ocPassword, ocProjectName):
def OC_logout(cmd):
cmd.run(f'oc logout')
-def OC_deploy_CN(cmd, ocUserName, ocPassword):
- logging.debug('OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster')
- path = "/opt/oai-cn5g-fed-develop-2024-april-00102"
- succeeded = OC_login(cmd, ocUserName, ocPassword, CI_OC_CORE_NAMESPACE)
+def OC_deploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
+ logging.debug(f'OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster: {ocNamespace}')
+ succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
if not succeeded:
return False, CONST.OC_LOGIN_FAIL
cmd.run('helm uninstall oai5gcn --wait --timeout 60s')
@@ -84,10 +82,9 @@ def OC_deploy_CN(cmd, ocUserName, ocPassword):
OC_logout(cmd)
return True, report
-def OC_undeploy_CN(cmd, ocUserName, ocPassword):
- logging.debug('OC OAI CN5G: Terminating CN on Openshift Cluster')
- path = "/opt/oai-cn5g-fed-develop-2024-april-00102"
- succeeded = OC_login(cmd, ocUserName, ocPassword, CI_OC_CORE_NAMESPACE)
+def OC_undeploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
+ logging.debug(f'OC OAI CN5G: Terminating CN on Openshift Cluster: {ocNamespace}')
+ succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
if not succeeded:
return False, CONST.OC_LOGIN_FAIL
cmd.run(f'rm -Rf {path}/logs')
diff --git a/ci-scripts/cls_module.py b/ci-scripts/cls_module.py
index d0cfba0299..ef758a2933 100644
--- a/ci-scripts/cls_module.py
+++ b/ci-scripts/cls_module.py
@@ -65,6 +65,8 @@ class Module_UE:
self.logStore = m.get('LogStore')
self.cmd_prefix = m.get('CmdPrefix')
self.runIperf3Server = m.get('RunIperf3Server', True)
+ self.namespace = m.get('Namespace')
+ self.cnPath = m.get('CNPath')
logging.info(f'initialized {self.module_name}@{self.host} from {filename}')
def __str__(self):
@@ -190,6 +192,12 @@ class Module_UE:
def getHost(self):
return self.host
+ def getNamespace(self):
+ return self.namespace
+
+ def getCNPath(self):
+ return self.cnPath
+
def getRunIperf3Server(self):
return self.runIperf3Server
diff --git a/ci-scripts/epc.py b/ci-scripts/epc.py
index fb5aa8cde6..7c0eb51853 100644
--- a/ci-scripts/epc.py
+++ b/ci-scripts/epc.py
@@ -48,6 +48,7 @@ import helpreadme as HELP
import constants as CONST
import cls_cluster as OC
import cls_cmd
+import cls_module
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
@@ -75,6 +76,7 @@ class EPCManagement():
self.OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
self.OCUserName = ''
self.OCPassword = ''
+ self.cnID = ''
self.imageToPull = ''
self.eNBSourceCodePath = ''
@@ -298,7 +300,8 @@ class EPCManagement():
html_cell += '(' + res4.group('date') + ')'
html_cell += '\n'
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
- succeeded, report = OC.OC_deploy_CN(mySSH, self.OCUserName, self.OCPassword)
+ cn = cls_module.Module_UE(self.cnID)
+ succeeded, report = OC.OC_deploy_CN(mySSH, self.OCUserName, self.OCPassword, cn.getNamespace(), cn.getCNPath())
if not succeeded:
HTML.CreateHtmlTestRow('N/A', 'KO', report)
HTML.CreateHtmlTabFooter(False)
@@ -575,7 +578,8 @@ class EPCManagement():
mySSH.copyin(f'{self.SourceCodePath}/logs/test_logs_CN.zip','test_logs_CN.zip')
logging.debug(message)
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
- succeeded, report = OC.OC_undeploy_CN(mySSH, self.OCUserName, self.OCPassword)
+ cn = cls_module.Module_UE(self.cnID)
+ succeeded, report = OC.OC_undeploy_CN(mySSH, self.OCUserName, self.OCPassword, cn.getNamespace(), cn.getCNPath())
if not succeeded:
HTML.CreateHtmlTestRow('N/A', 'KO', report)
HTML.CreateHtmlTabFooter(False)
diff --git a/ci-scripts/main.py b/ci-scripts/main.py
index 03c99d9741..14466a1594 100644
--- a/ci-scripts/main.py
+++ b/ci-scripts/main.py
@@ -329,11 +329,13 @@ def GetParametersFromXML(action):
string_field = test.findtext('args')
if (string_field is not None):
EPC.cfgDeploy = string_field
+ EPC.cnID = test.findtext('cn_id')
elif action == 'Terminate_5GCN':
string_field = test.findtext('args')
if (string_field is not None):
EPC.cfgUnDeploy = string_field
+ EPC.cnID = test.findtext('cn_id')
elif action == 'Deploy_Object' or action == 'Undeploy_Object':
eNB_instance=test.findtext('eNB_instance')
diff --git a/ci-scripts/xml_files/sa_cn5g_closure.xml b/ci-scripts/xml_files/sa_cn5g_closure.xml
index 7174da3b7b..727e208d4c 100644
--- a/ci-scripts/xml_files/sa_cn5g_closure.xml
+++ b/ci-scripts/xml_files/sa_cn5g_closure.xml
@@ -32,6 +32,7 @@
Terminate_5GCN
Terminate 5G Core
+ oc-cn5g
diff --git a/ci-scripts/xml_files/sa_cn5g_start.xml b/ci-scripts/xml_files/sa_cn5g_start.xml
index 6499d60700..3de615330a 100644
--- a/ci-scripts/xml_files/sa_cn5g_start.xml
+++ b/ci-scripts/xml_files/sa_cn5g_start.xml
@@ -33,5 +33,6 @@
Initialize_5GCN
Initialize 5G Core
+ oc-cn5g