diff --git a/ci-scripts/cls_cluster.py b/ci-scripts/cls_cluster.py
index 210191ce6600f283dc8fd7f29301309a9b1746f3..bcaa1d2622624c17f3e748bd52a8e0e9dcfa27bc 100644
--- a/ci-scripts/cls_cluster.py
+++ b/ci-scripts/cls_cluster.py
@@ -307,6 +307,13 @@ class Cluster:
 			gnb_job = self._start_build(mySSH, 'oai-gnb')
 			attemptedImages += ['oai-gnb']
 
+			self._recreate_is_tag(mySSH, 'oai-gnb-aw2s', imageTag, 'openshift/oai-gnb-aw2s-is.yaml')
+			self._recreate_bc(mySSH, 'oai-gnb-aw2s', imageTag, 'openshift/oai-gnb-aw2s-bc.yaml')
+			self._retag_image_statement(mySSH, 'ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.gNB.aw2s.rhel8.2')
+			self._retag_image_statement(mySSH, 'ran-build', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-build', imageTag, 'docker/Dockerfile.gNB.aw2s.rhel8.2')
+			gnb_aw2s_job = self._start_build(mySSH, 'oai-gnb-aw2s')
+			attemptedImages += ['oai-gnb-aw2s']
+
 			self._recreate_is_tag(mySSH, 'oai-lte-ue', imageTag, 'openshift/oai-lte-ue-is.yaml')
 			self._recreate_bc(mySSH, 'oai-lte-ue', imageTag, 'openshift/oai-lte-ue-bc.yaml')
 			self._retag_image_statement(mySSH, 'ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.lteUE.rhel8.2')
@@ -321,12 +328,13 @@ class Cluster:
 			nrue_job = self._start_build(mySSH, 'oai-nr-ue')
 			attemptedImages += ['oai-nr-ue']
 
-			wait = enb_job is not None and gnb_job is not None and lteue_job is not None and nrue_job is not None and self._wait_build_end(mySSH, [enb_job, gnb_job, lteue_job, nrue_job], 600)
+			wait = enb_job is not None and gnb_job is not None and gnb_aw2s_job is not None and lteue_job is not None and nrue_job is not None and self._wait_build_end(mySSH, [enb_job, gnb_job, lteue_job, nrue_job], 600)
 			if not wait: logging.error('error during build of eNB/gNB/lteUE/nrUE')
 			status = status and wait
 			# recover logs
 			mySSH.command(f'oc logs {enb_job} > cmake_targets/log/oai-enb.log', '\$', 10)
 			mySSH.command(f'oc logs {gnb_job} > cmake_targets/log/oai-gnb.log', '\$', 10)
+			mySSH.command(f'oc logs {gnb_aw2s_job} > cmake_targets/log/oai-gnb-aw2s.log', '\$', 10)
 			mySSH.command(f'oc logs {lteue_job} > cmake_targets/log/oai-lte-ue.log', '\$', 10)
 			mySSH.command(f'oc logs {nrue_job} > cmake_targets/log/oai-nr-ue.log', '\$', 10)
 
diff --git a/docker/Dockerfile.gNB.aw2s.rhel8.2 b/docker/Dockerfile.gNB.aw2s.rhel8.2
new file mode 100644
index 0000000000000000000000000000000000000000..09602f6039b0b2a7a5fd81a566606aeb43f51045
--- /dev/null
+++ b/docker/Dockerfile.gNB.aw2s.rhel8.2
@@ -0,0 +1,112 @@
+#/*
+# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+# * contributor license agreements.  See the NOTICE file distributed with
+# * this work for additional information regarding copyright ownership.
+# * The OpenAirInterface Software Alliance licenses this file to You under
+# * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
+# *
+# * 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.
+# *-------------------------------------------------------------------------------
+# * For more information about the OpenAirInterface (OAI) Software Alliance:
+# *      contact@openairinterface.org
+# */
+#---------------------------------------------------------------------
+#
+# Dockerfile for the Open-Air-Interface BUILD service
+#   Valid for RHEL8
+#
+#---------------------------------------------------------------------
+
+FROM ran-base:latest AS gnb-base
+
+FROM ran-build:latest AS gnb-build
+
+COPY ./libori.so /usr/local/lib
+
+# build AW2S fronthaul lib
+WORKDIR /oai-ran
+RUN /bin/sh oaienv && \
+    cd cmake_targets/ran_build/build && \
+    ninja aw2sori_transpro
+
+RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
+    cp /oai-ran/docker/scripts/gnb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
+
+#start from scratch for target executable
+FROM registry.access.redhat.com/ubi8/ubi:latest as oai-gnb-aw2s
+ENV TZ=Europe/Paris
+
+RUN yum repolist --disablerepo=* && \
+    yum update -y && \
+    yum install -y --enablerepo="ubi-8-codeready-builder" \
+        procps-ng \
+        libXpm \
+        libX11 \
+        atlas \
+        lksctp-tools \
+        nettle \
+        tzdata \
+        net-tools \
+        iputils \
+        python3-pip \
+        libyaml && \
+    pip3 install six && \
+    pip3 install requests && \
+    echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
+    echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
+
+WORKDIR /opt/oai-gnb-aw2s/bin
+COPY --from=gnb-build \
+    /oai-ran/cmake_targets/ran_build/build/nr-softmodem \
+    /oai-ran/docker/scripts/entrypoint.sh \
+    ./
+
+COPY --from=gnb-build \
+    /oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \
+    /oai-ran/cmake_targets/ran_build/build/librfsimulator.so \
+    /oai-ran/cmake_targets/ran_build/build/libaw2sori_transpro.so \
+    /oai-ran/cmake_targets/ran_build/build/libcoding.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \
+    /oai-ran/cmake_targets/ran_build/build/libdfts.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
+    /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
+    /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
+    /usr/local/lib/
+
+COPY --from=gnb-base \
+    /lib64/libconfig.so.9 \
+    /lib64/libforms.so.2 \
+    /lib64/libblas.so.3 \
+    /lib64/liblapack.so.3 \
+    /lib64/liblapacke.so.3 \
+    /lib64/
+
+COPY --from=gnb-base /usr/lib64/libprotobuf-c.so.1 /usr/local/lib
+
+RUN ln -s /usr/local/lib/libaw2sori_transpro.so /usr/local/lib/libthirdparty_transpro.so && \
+    ldconfig
+
+# Copy the relevant configuration files for gNB
+WORKDIR /opt/oai-gnb-aw2s/etc
+COPY --from=gnb-build /oai-ran/docker/etc .
+
+WORKDIR /opt/oai-gnb-aw2s
+#EXPOSE 2152/udp  # S1U, GTP/UDP
+#EXPOSE 22100/tcp # ?
+#EXPOSE 36412/udp # S1C, SCTP/UDP
+#EXPOSE 36422/udp # X2C, SCTP/UDP
+#EXPOSE 50000/udp # IF5 / ORI (control)
+#EXPOSE 50001/udp # IF5 / ECPRI (data)
+
+ENTRYPOINT ["/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
+CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
diff --git a/openshift/oai-gnb-aw2s-bc.yaml b/openshift/oai-gnb-aw2s-bc.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..fe803c57f354cf7d0c54501f154e0ed30dec0c1c
--- /dev/null
+++ b/openshift/oai-gnb-aw2s-bc.yaml
@@ -0,0 +1,41 @@
+#/*
+# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+# * contributor license agreements.  See the NOTICE file distributed with
+# * this work for additional information regarding copyright ownership.
+# * The OpenAirInterface Software Alliance licenses this file to You under
+# * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
+# *
+# * 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.
+# *-------------------------------------------------------------------------------
+# * For more information about the OpenAirInterface (OAI) Software Alliance:
+# *      contact@openairinterface.org
+# */
+#---------------------------------------------------------------------
+#
+kind: BuildConfig
+apiVersion: build.openshift.io/v1
+metadata:
+  name: "oai-gnb-aw2s"
+spec:
+    runPolicy: "Serial"
+    source:
+        type: "Binary"
+        configMaps:
+          - configMap:
+              name: aw2s-library
+            destinationDir: libori.so
+    strategy:
+        dockerStrategy:
+            dockerfilePath: "docker/Dockerfile.gNB.aw2s.rhel8.2"
+    output:
+        to:
+            kind: "ImageStreamTag"
+            name: "oai-gnb-aw2s:latest"
diff --git a/openshift/oai-gnb-aw2s-is.yaml b/openshift/oai-gnb-aw2s-is.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..dd6a1ed05ad8b358b1e5f48a8f7b1201e2b0a8ff
--- /dev/null
+++ b/openshift/oai-gnb-aw2s-is.yaml
@@ -0,0 +1,30 @@
+#/*
+# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+# * contributor license agreements.  See the NOTICE file distributed with
+# * this work for additional information regarding copyright ownership.
+# * The OpenAirInterface Software Alliance licenses this file to You under
+# * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
+# *
+# * 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.
+# *-------------------------------------------------------------------------------
+# * For more information about the OpenAirInterface (OAI) Software Alliance:
+# *      contact@openairinterface.org
+# */
+#---------------------------------------------------------------------
+#
+apiVersion: image.openshift.io/v1
+kind: ImageStream
+metadata:
+    name: oai-gnb-aw2s
+    namespace: oaicicd-ran
+spec:
+  lookupPolicy:
+    local: true