Compare commits

...

10 Commits

14 changed files with 381 additions and 7 deletions

View File

@@ -611,7 +611,7 @@ check_install_oai_software() {
echo "EPEL repos already present. Good."
else
echo "EPEL repos not present. Installing them."
$SUDO $INSTALLER install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# $SUDO $INSTALLER install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
fi
fi

View File

@@ -40,8 +40,22 @@ COPY ./etc-pki-entitlement /etc/pki/entitlement
ENV SMDEV_CONTAINER_OFF=1
#install developers pkg/repo
RUN rm -f /etc/rhsm-host && \
subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms && \
dnf update -y && \
subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
# Remove any internet epel repo files that might have been added
RUN rm -f /etc/yum.repos.d/epel*.repo
# COPY local-epel.repo /etc/yum.repos.d/local-epel.repo
RUN echo "[local-epel]" > /etc/yum.repos.d/local-epel.repo && \
echo "name=Local EPEL Repository" >> /etc/yum.repos.d/local-epel.repo && \
echo "baseurl=http://epel-repo:80/epel/epel-9/epel" >> /etc/yum.repos.d/local-epel.repo && \
echo "enabled=1" >> /etc/yum.repos.d/local-epel.repo && \
echo "gpgcheck=0" >> /etc/yum.repos.d/local-epel.repo
# Clean metadata cache to avoid stale data
RUN dnf clean all
RUN dnf update -y && \
cat /etc/os-release && \
dnf install -y \
#gcc needed for build_oai
@@ -95,3 +109,8 @@ RUN /bin/sh oaienv && \
scl enable gcc-toolset-13 "\
./build_oai -I --install-optional-packages -w USRP" && \
rm /etc/pki/entitlement/*pem
# OPTIONAL: Check if an EPEL package is installed via local-epel-repo
# RUN dnf repolist
# RUN dnf info yaml-cpp-devel

View File

@@ -42,7 +42,21 @@ FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-gnb-aw2s
ENV TZ=Europe/Paris
# Install EPEL for RHEL9
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# Remove any internet epel repo files that might have been added
RUN rm -f /etc/yum.repos.d/epel*.repo
# COPY local-epel.repo /etc/yum.repos.d/local-epel.repo
RUN echo "[local-epel]" > /etc/yum.repos.d/local-epel.repo && \
echo "name=Local EPEL Repository" >> /etc/yum.repos.d/local-epel.repo && \
echo "baseurl=http://epel-repo:80/epel/epel-9/epel" >> /etc/yum.repos.d/local-epel.repo && \
echo "enabled=1" >> /etc/yum.repos.d/local-epel.repo && \
echo "gpgcheck=0" >> /etc/yum.repos.d/local-epel.repo
# Clean metadata cache to avoid stale data
RUN dnf clean all
RUN dnf update -y && \
dnf install -y \
@@ -104,3 +118,6 @@ WORKDIR /opt/oai-gnb-aw2s
COPY --from=gnb-base /tini /tini
ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem"]
# OPTIONAL: Check if an EPEL package is installed via local-epel-repo
# RUN dnf info yaml-cpp-devel

View File

@@ -34,7 +34,20 @@ FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-gnb-fhi72
ENV TZ=Europe/Paris
# Install EPEL for RHEL9
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# Remove any internet epel repo files that might have been added
RUN rm -f /etc/yum.repos.d/epel*.repo
# COPY local-epel.repo /etc/yum.repos.d/local-epel.repo
RUN echo "[local-epel]" > /etc/yum.repos.d/local-epel.repo && \
echo "name=Local EPEL Repository" >> /etc/yum.repos.d/local-epel.repo && \
echo "baseurl=http://epel-repo:80/epel/epel-9/epel" >> /etc/yum.repos.d/local-epel.repo && \
echo "enabled=1" >> /etc/yum.repos.d/local-epel.repo && \
echo "gpgcheck=0" >> /etc/yum.repos.d/local-epel.repo
# Clean metadata cache to avoid stale data
RUN dnf clean all
# Copy the entitlements
COPY ./etc-pki-entitlement /etc/pki/entitlement
@@ -128,3 +141,5 @@ WORKDIR /opt/oai-gnb
COPY --from=gnb-base /tini /tini
ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
CMD ["/opt/oai-gnb/bin/nr-softmodem"]
# RUN dnf info yaml-cpp-devel

View File

@@ -35,7 +35,20 @@ FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-gnb
ENV TZ=Europe/Paris
# Install EPEL for RHEL9
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# Remove any internet epel repo files that might have been added
RUN rm -f /etc/yum.repos.d/epel*.repo
# COPY local-epel.repo /etc/yum.repos.d/local-epel.repo
RUN echo "[local-epel]" > /etc/yum.repos.d/local-epel.repo && \
echo "name=Local EPEL Repository" >> /etc/yum.repos.d/local-epel.repo && \
echo "baseurl=http://epel-repo:80/epel/epel-9/epel" >> /etc/yum.repos.d/local-epel.repo && \
echo "enabled=1" >> /etc/yum.repos.d/local-epel.repo && \
echo "gpgcheck=0" >> /etc/yum.repos.d/local-epel.repo
# Clean metadata cache to avoid stale data
RUN dnf clean all
RUN dnf update -y && \
dnf install -y \
@@ -132,3 +145,5 @@ WORKDIR /opt/oai-gnb
COPY --from=gnb-base /tini /tini
ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
CMD ["/opt/oai-gnb/bin/nr-softmodem"]
# RUN dnf info yaml-cpp-devel

View File

@@ -0,0 +1,21 @@
FROM registry.access.redhat.com/ubi9/ubi
# Add local EPEL repo config pointing to your local-epel service
RUN echo '[local-epel]' > /etc/yum.repos.d/local-epel.repo && \
echo 'name=Local EPEL Repository for RHEL 9' >> /etc/yum.repos.d/local-epel.repo && \
echo 'baseurl=http://local-epel.open5gs.svc.cluster.local/epel/epel-9/epel/' >> /etc/yum.repos.d/local-epel.repo && \
echo 'enabled=1' >> /etc/yum.repos.d/local-epel.repo && \
echo 'gpgcheck=0' >> /etc/yum.repos.d/local-epel.repo
# Clean cache and install yaml-cpp-devel from local repo
RUN dnf clean all
RUN dnf install -y yaml-cpp-devel && \
dnf clean all
RUN dnf repolist
RUN dnf info yaml-cpp-devel
CMD ["/bin/bash"]

View File

@@ -0,0 +1,77 @@
#/*
# * 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 to set up a local copy of the EPEL software repository.
# Valid for RHEL9
#
#--------------------------------------------------------------------
# We will use the Red Hat UBI 9 container, allowing to install EPEL packages.
FROM registry.access.redhat.com/ubi9/ubi
# Install wget and EPEL
# Clean up the downloaded RPM
RUN dnf install -y wget && \
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
dnf install -y epel-release-latest-9.noarch.rpm && \
rm -f epel-release-latest-9.noarch.rpm
# Install Apache HTTP server
# Install dnf-plugins-core
# Install yum-utils (includes reposync)
RUN dnf install -y dnf-plugins-core yum-utils httpd
# Clean DNF metadata and cache to reduce image size
RUN dnf clean all
# Create the directory where the EPEL repo will be downloaded
RUN mkdir -p /var/www/html/epel/epel-9
# Sync the EPEL repository into the created directory
# This includes all packages and metadata
RUN reposync --repoid=epel --download-metadata --destdir=/var/www/html/epel/epel-9
# Note:
# createrepo is not required for RHEL 8 and above.
# reposync will download everything including the repodata
# Serve local repo to other systems
RUN echo '[local-epel]' > /etc/yum.repos.d/local-epel.repo && \
echo 'name=Local EPEL Repository for RHEL 9' >> /etc/yum.repos.d/local-epel.repo && \
echo 'baseurl=http://local-epel.oai-epel-repo.svc.cluster.local/epel/epel-9/epel' >> /etc/yum.repos.d/local-epel.repo && \
echo 'enabled=1' >> /etc/yum.repos.d/local-epel.repo && \
echo 'gpgcheck=0' >> /etc/yum.repos.d/local-epel.repo
# Change Apache to use unprivileged port
RUN sed -i 's/^Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf && \
mkdir -p /tmp/httpd-logs && \
sed -i 's|logs/error_log|/tmp/httpd-logs/error_log|' /etc/httpd/conf/httpd.conf && \
sed -i 's|logs/access_log|/tmp/httpd-logs/access_log|' /etc/httpd/conf/httpd.conf
# Expose port 80 for HTTP
EXPOSE 8080
# Start Apache in foreground to serve repo files
# CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND", "-f", "/etc/httpd/conf/httpd.conf", "-c", "PidFile /tmp/httpd.pid"]

View File

@@ -35,7 +35,20 @@ FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-nr-ue
ENV TZ=Europe/Paris
# Install EPEL for RHEL9
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# Remove any internet epel repo files that might have been added
RUN rm -f /etc/yum.repos.d/epel*.repo
# COPY local-epel.repo /etc/yum.repos.d/local-epel.repo
RUN echo "[local-epel]" > /etc/yum.repos.d/local-epel.repo && \
echo "name=Local EPEL Repository" >> /etc/yum.repos.d/local-epel.repo && \
echo "baseurl=http://epel-repo:80/epel/epel-9/epel" >> /etc/yum.repos.d/local-epel.repo && \
echo "enabled=1" >> /etc/yum.repos.d/local-epel.repo && \
echo "gpgcheck=0" >> /etc/yum.repos.d/local-epel.repo
# Clean metadata cache to avoid stale data
RUN dnf clean all
RUN dnf update -y && \
dnf install -y \
@@ -125,3 +138,5 @@ WORKDIR /opt/oai-nr-ue
COPY --from=nr-ue-base /tini /tini
CMD ["/opt/oai-nr-ue/bin/nr-uesoftmodem"]
ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-nr-ue/bin/entrypoint.sh"]
# RUN dnf info yaml-cpp-devel

View File

@@ -0,0 +1,18 @@
apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
name: local-epel-test
namespace: open5gs
spec:
runPolicy: Serial
source:
type: Binary
strategy:
type: Docker
dockerStrategy:
dockerfilePath: docker/Dockerfile.local-epel-test.rhel9
output:
to:
kind: ImageStreamTag
name: local-epel-test:latest

View File

@@ -0,0 +1,6 @@
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: local-epel-test
namespace: open5gs

View File

@@ -0,0 +1,40 @@
#/*
# * 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: build.openshift.io/v1
kind: BuildConfig
metadata:
name: local-epel
namespace: oai-epel-repo
spec:
runPolicy: Serial
source:
type: Binary
strategy:
type: Docker
dockerStrategy:
dockerfilePath: docker/Dockerfile.localepel.rhel9
output:
to:
kind: ImageStreamTag
name: local-epel:latest

View File

@@ -0,0 +1,66 @@
#/*
# * 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: apps/v1
kind: Deployment
metadata:
name: local-epel # Name of the Deployment
namespace: oai-epel-repo
spec:
replicas: 1
selector:
matchLabels:
app: local-epel # Selector to match pods managed by this Deployment
template:
metadata:
labels:
app: local-epel # Labels applied to the Pod template; must match selector
spec:
containers:
- name: local-epel # Container name within the Pod
image: image-registry.openshift-image-registry.svc:5000/oai-epel-repo/local-epel:latest
# Container image pulled from internal OpenShift registry
ports:
- containerPort: 8080 # Port exposed by the container (Apache HTTP Server)
volumeMounts:
- name: httpd-logs
mountPath: /tmp/httpd-logs
# Readiness probe checks if the container is ready to accept traffic.
readinessProbe:
httpGet:
path: /epel/epel-9/epel/repodata/repomd.xml # HTTP GET request to root path
port: 8080 # Port to query for readiness
initialDelaySeconds: 5 # Wait 5 seconds before first probe after container starts
periodSeconds: 10 # Probe runs every 10 seconds
# Liveness probe checks if the container is still alive and responsive.
livenessProbe:
httpGet:
path: /epel/epel-9/epel/repodata/repomd.xml # HTTP GET request to root path
port: 8080 # Port to query for liveness
initialDelaySeconds: 15 # Wait 15 seconds before first liveness probe
periodSeconds: 20 # Probe runs every 20 seconds
volumes:
- name: httpd-logs
emptyDir: {}

View File

@@ -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: local-epel
namespace: oai-epel-repo
spec:
lookupPolicy:
local: true

View File

@@ -0,0 +1,35 @@
#/*
# * 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: v1
kind: Service
metadata:
name: local-epel
namespace: oai-epel-repo
spec:
selector:
app: local-epel
ports:
- protocol: TCP
port: 80
targetPort: 8080