Add deployment using eUPF under custom deployments
Co-authored-by: Pedro Valente <pedro.valente@ua.pt>
This commit is contained in:
12
.github/workflows/docker-publish.yml
vendored
12
.github/workflows/docker-publish.yml
vendored
@@ -56,25 +56,23 @@ jobs:
|
|||||||
- image: docker_oai_gnb
|
- image: docker_oai_gnb
|
||||||
context: oai
|
context: oai
|
||||||
file: gnb_dockerfile
|
file: gnb_dockerfile
|
||||||
|
- image: docker_eupf
|
||||||
|
context: eupf
|
||||||
|
file: Dockerfile
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
packages: write
|
packages: write
|
||||||
# This is used to complete the identity challenge
|
|
||||||
# with sigstore/fulcio when running outside of PRs.
|
|
||||||
id-token: write
|
id-token: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# https://github.com/docker/setup-buildx-action
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
# Login against a Docker registry except on PR
|
|
||||||
# https://github.com/docker/login-action
|
|
||||||
- name: Log into registry ${{ env.REGISTRY }}
|
- name: Log into registry ${{ env.REGISTRY }}
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
@@ -83,16 +81,12 @@ jobs:
|
|||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
# Extract metadata (tags, labels) for Docker
|
|
||||||
# https://github.com/docker/metadata-action
|
|
||||||
- name: Extract Docker metadata
|
- name: Extract Docker metadata
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ matrix.image }}
|
images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ matrix.image }}
|
||||||
|
|
||||||
# Build and push Docker image with Buildx (don't push on PR)
|
|
||||||
# https://github.com/docker/build-push-action
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
id: build-and-push
|
id: build-and-push
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
|
142
custom_deployments/with_eupf/.custom_env
Normal file
142
custom_deployments/with_eupf/.custom_env
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
# Set proper timezone to sync times between docker host and containers
|
||||||
|
#TZ=Europe/Berlin
|
||||||
|
|
||||||
|
MCC=001
|
||||||
|
MNC=01
|
||||||
|
|
||||||
|
TEST_NETWORK=172.22.0.0/24
|
||||||
|
DOCKER_HOST_IP=192.168.1.223
|
||||||
|
|
||||||
|
# MONGODB
|
||||||
|
MONGO_IP=172.22.0.2
|
||||||
|
|
||||||
|
# HSS - open5gs
|
||||||
|
HSS_IP=172.22.0.3
|
||||||
|
|
||||||
|
# PCRF
|
||||||
|
PCRF_IP=172.22.0.4
|
||||||
|
PCRF_BIND_PORT=3873
|
||||||
|
|
||||||
|
# SGW
|
||||||
|
SGWC_IP=172.22.0.5
|
||||||
|
SGWU_IP=172.22.0.6
|
||||||
|
SGWU_ADVERTISE_IP=172.22.0.6
|
||||||
|
|
||||||
|
# SMF
|
||||||
|
SMF_IP=172.22.0.7
|
||||||
|
SMF_DNS1=8.8.8.8
|
||||||
|
SMF_DNS2=8.8.4.4
|
||||||
|
|
||||||
|
# UPF
|
||||||
|
UPF_IP=172.22.0.8
|
||||||
|
UPF_ADVERTISE_IP=172.22.0.8
|
||||||
|
|
||||||
|
# MME
|
||||||
|
MME_IP=172.22.0.9
|
||||||
|
|
||||||
|
# AMF
|
||||||
|
AMF_IP=172.22.0.10
|
||||||
|
|
||||||
|
# AUSF
|
||||||
|
AUSF_IP=172.22.0.11
|
||||||
|
|
||||||
|
# NRF
|
||||||
|
NRF_IP=172.22.0.12
|
||||||
|
|
||||||
|
# UDM
|
||||||
|
UDM_IP=172.22.0.13
|
||||||
|
|
||||||
|
# UDR
|
||||||
|
UDR_IP=172.22.0.14
|
||||||
|
|
||||||
|
# IMS DNS
|
||||||
|
DNS_IP=172.22.0.15
|
||||||
|
|
||||||
|
# RTPENGINE
|
||||||
|
RTPENGINE_IP=172.22.0.16
|
||||||
|
|
||||||
|
# MYSQL
|
||||||
|
MYSQL_IP=172.22.0.17
|
||||||
|
|
||||||
|
# PYHSS
|
||||||
|
PYHSS_IP=172.22.0.18
|
||||||
|
PYHSS_BIND_PORT=3875
|
||||||
|
|
||||||
|
# ICSCF
|
||||||
|
ICSCF_IP=172.22.0.19
|
||||||
|
ICSCF_BIND_PORT=3869
|
||||||
|
|
||||||
|
# SCSCF
|
||||||
|
SCSCF_IP=172.22.0.20
|
||||||
|
SCSCF_BIND_PORT=3870
|
||||||
|
|
||||||
|
# PCSCF
|
||||||
|
PCSCF_IP=172.22.0.21
|
||||||
|
PCSCF_BIND_PORT=3871
|
||||||
|
|
||||||
|
# SRSLTE ENB
|
||||||
|
SRS_ENB_IP=172.22.0.22
|
||||||
|
|
||||||
|
# UERANSIM
|
||||||
|
NR_GNB_IP=172.22.0.23
|
||||||
|
NR_UE_IP=172.22.0.24
|
||||||
|
|
||||||
|
UE1_IMEI=356938035643803
|
||||||
|
UE1_IMEISV=4370816125816151
|
||||||
|
UE1_IMSI=001011234567895
|
||||||
|
UE1_KI=8baf473f2f8fd09487cccbd7097c6862
|
||||||
|
UE1_OP=11111111111111111111111111111111
|
||||||
|
UE1_AMF=8000
|
||||||
|
|
||||||
|
# OAI ENB
|
||||||
|
OAI_ENB_IP=172.22.0.25
|
||||||
|
|
||||||
|
# OPEN5GS WEBUI
|
||||||
|
WEBUI_IP=172.22.0.26
|
||||||
|
|
||||||
|
# PCF
|
||||||
|
PCF_IP=172.22.0.27
|
||||||
|
|
||||||
|
# NSSF
|
||||||
|
NSSF_IP=172.22.0.28
|
||||||
|
|
||||||
|
# BSF
|
||||||
|
BSF_IP=172.22.0.29
|
||||||
|
|
||||||
|
# ENTITLEMENT SERVER
|
||||||
|
ENTITLEMENT_SERVER_IP=172.22.0.30
|
||||||
|
|
||||||
|
# OSMOMSC
|
||||||
|
OSMOMSC_IP=172.22.0.31
|
||||||
|
|
||||||
|
# OSMOHLR
|
||||||
|
OSMOHLR_IP=172.22.0.32
|
||||||
|
|
||||||
|
# SMSC
|
||||||
|
SMSC_IP=172.22.0.33
|
||||||
|
|
||||||
|
# SRSLTE UE
|
||||||
|
SRS_UE_IP=172.22.0.34
|
||||||
|
|
||||||
|
# SCP
|
||||||
|
SCP_IP=172.22.0.35
|
||||||
|
|
||||||
|
# METRICS
|
||||||
|
METRICS_IP=172.22.0.36
|
||||||
|
|
||||||
|
# SRSRAN GNB
|
||||||
|
SRS_GNB_IP=172.22.0.37
|
||||||
|
|
||||||
|
# GRAFANA
|
||||||
|
GRAFANA_IP=172.22.0.39
|
||||||
|
GRAFANA_USERNAME=open5gs
|
||||||
|
GRAFANA_PASSWORD=open5gs
|
||||||
|
|
||||||
|
# UE IPv4 Subnet Range for APN=internet
|
||||||
|
UE_IPV4_INTERNET=192.168.100.0/24
|
||||||
|
|
||||||
|
# UE IPv4 Subnet Range for APN=ims
|
||||||
|
UE_IPV4_IMS=192.168.101.0/24
|
||||||
|
|
||||||
|
# Maximum Number of UEs
|
||||||
|
MAX_NUM_UE=1024
|
27
custom_deployments/with_eupf/README.md
Normal file
27
custom_deployments/with_eupf/README.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
## Deployment description
|
||||||
|
|
||||||
|
This custom deployment uses eUPF (https://github.com/edgecomllc/eupf) rather than open5gs UPF for 5G SA network deployment
|
||||||
|
|
||||||
|
## Additional steps
|
||||||
|
|
||||||
|
Most of the steps to be followed are similar to the steps mentioned in the [README in the root folder](../../README.md). However, additional steps mentioned below must be taken into account while deploying this custom deployment scenario.
|
||||||
|
|
||||||
|
### Build docker images for eUPF
|
||||||
|
|
||||||
|
eUPF docker image needs to be built before deploying
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ../../eupf
|
||||||
|
docker build --no-cache --force-rm -t docker_eupf .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Loading environmental variables for custom deployment
|
||||||
|
|
||||||
|
**Warning**
|
||||||
|
For custom deployments, you must modify/use only the [**.custom_env**](.custom_env) file rather than the [**.env** in the root folder](../../.env).
|
||||||
|
|
||||||
|
```
|
||||||
|
set -a
|
||||||
|
source .custom_env
|
||||||
|
set +a
|
||||||
|
```
|
362
custom_deployments/with_eupf/sa-deploy.yaml
Normal file
362
custom_deployments/with_eupf/sa-deploy.yaml
Normal file
@@ -0,0 +1,362 @@
|
|||||||
|
services:
|
||||||
|
mongo:
|
||||||
|
image: mongo:6.0
|
||||||
|
container_name: mongo
|
||||||
|
command: --bind_ip 0.0.0.0
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- mongodbdata:/data/db
|
||||||
|
- mongodbdata:/data/configdb
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "27017/udp"
|
||||||
|
- "27017/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${MONGO_IP}
|
||||||
|
webui:
|
||||||
|
image: docker_open5gs
|
||||||
|
container_name: webui
|
||||||
|
depends_on:
|
||||||
|
- mongo
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=webui
|
||||||
|
volumes:
|
||||||
|
- ../../webui:/mnt/webui
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "9999/tcp"
|
||||||
|
ports:
|
||||||
|
- "9999:9999/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${WEBUI_IP}
|
||||||
|
nrf:
|
||||||
|
image: docker_open5gs
|
||||||
|
container_name: nrf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=nrf-1
|
||||||
|
volumes:
|
||||||
|
- ../../nrf:/mnt/nrf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${NRF_IP}
|
||||||
|
scp:
|
||||||
|
image: docker_open5gs
|
||||||
|
container_name: scp
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=scp-1
|
||||||
|
volumes:
|
||||||
|
- ../../scp:/mnt/scp
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${SCP_IP}
|
||||||
|
ausf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
container_name: ausf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=ausf-1
|
||||||
|
volumes:
|
||||||
|
- ../../ausf:/mnt/ausf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${AUSF_IP}
|
||||||
|
udr:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: udr
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=udr-1
|
||||||
|
volumes:
|
||||||
|
- ../../udr:/mnt/udr
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${UDR_IP}
|
||||||
|
udm:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
container_name: udm
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=udm-1
|
||||||
|
volumes:
|
||||||
|
- ../../udm:/mnt/udm
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${UDM_IP}
|
||||||
|
smf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- amf
|
||||||
|
container_name: smf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=smf-1
|
||||||
|
- DEPLOY_MODE=5G
|
||||||
|
volumes:
|
||||||
|
- ../../smf:/mnt/smf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "3868/udp"
|
||||||
|
- "3868/tcp"
|
||||||
|
- "3868/sctp"
|
||||||
|
- "5868/udp"
|
||||||
|
- "5868/tcp"
|
||||||
|
- "5868/sctp"
|
||||||
|
- "8805/udp"
|
||||||
|
- "2123/udp"
|
||||||
|
- "7777/tcp"
|
||||||
|
- "9091/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${SMF_IP}
|
||||||
|
eupf:
|
||||||
|
image: docker_eupf
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- smf
|
||||||
|
container_name: eupf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=eupf-1
|
||||||
|
volumes:
|
||||||
|
- ../../eupf:/mnt/eupf
|
||||||
|
- /sys/fs/bpf:/sys/fs/bpf
|
||||||
|
- /sys/kernel/debug:/sys/kernel/debug:ro
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "2152/udp"
|
||||||
|
- "8805/udp"
|
||||||
|
- "9091/tcp"
|
||||||
|
- "8181/tcp"
|
||||||
|
# ports:
|
||||||
|
# - "2152:2152/udp"
|
||||||
|
ulimits:
|
||||||
|
memlock: -1
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_ADMIN
|
||||||
|
privileged: true
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.forwarding=1
|
||||||
|
#- net.ipv6.conf.all.disable_ipv6=0
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${UPF_IP}
|
||||||
|
eupf-routes:
|
||||||
|
image: nicolaka/netshoot
|
||||||
|
network_mode: host
|
||||||
|
privileged: true
|
||||||
|
container_name: eupf-routes
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
ip ro add ${UE_IPV4_INTERNET} via ${UPF_IP} && \
|
||||||
|
iptables -t nat -A POSTROUTING -s ${UE_IPV4_INTERNET} -j MASQUERADE && \
|
||||||
|
sysctl -w net.ipv4.conf.all.accept_local=1
|
||||||
|
echo "done"
|
||||||
|
tail -f /dev/null
|
||||||
|
amf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- ausf
|
||||||
|
- udm
|
||||||
|
- udr
|
||||||
|
- pcf
|
||||||
|
- bsf
|
||||||
|
container_name: amf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=amf-1
|
||||||
|
volumes:
|
||||||
|
- ../../amf:/mnt/amf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "38412/sctp"
|
||||||
|
- "7777/tcp"
|
||||||
|
- "9091/tcp"
|
||||||
|
# ports:
|
||||||
|
# - "38412:38412/sctp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${AMF_IP}
|
||||||
|
pcf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: pcf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=pcf-1
|
||||||
|
volumes:
|
||||||
|
- ../../pcf:/mnt/pcf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
- "9091/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${PCF_IP}
|
||||||
|
bsf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: bsf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=bsf-1
|
||||||
|
volumes:
|
||||||
|
- ../../bsf:/mnt/bsf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${BSF_IP}
|
||||||
|
nssf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: nssf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=nssf-1
|
||||||
|
volumes:
|
||||||
|
- ../../nssf:/mnt/nssf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${NSSF_IP}
|
||||||
|
metrics:
|
||||||
|
build: ./metrics
|
||||||
|
image: docker_metrics
|
||||||
|
container_name: metrics
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- ../../metrics:/mnt/metrics
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "9090/tcp"
|
||||||
|
ports:
|
||||||
|
- "9090:9090/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${METRICS_IP}
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:11.3.0
|
||||||
|
container_name: grafana
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- grafana_data:/var/lib/grafana
|
||||||
|
- ../../grafana/:/etc/grafana/provisioning/
|
||||||
|
- ../../grafana:/mnt/grafana
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
|
||||||
|
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
|
||||||
|
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
|
||||||
|
- GF_PATHS_DATA=/var/lib/grafana
|
||||||
|
- METRICS_IP=${METRICS_IP}
|
||||||
|
expose:
|
||||||
|
- "3000/tcp"
|
||||||
|
ports:
|
||||||
|
- "3000:3000/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${GRAFANA_IP}
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: docker_open5gs_default
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: ${TEST_NETWORK}
|
||||||
|
volumes:
|
||||||
|
grafana_data:
|
||||||
|
name: grafana_data
|
||||||
|
mongodbdata:
|
||||||
|
name: docker_open5gs_mongodbdata
|
549
custom_deployments/with_eupf/sa-vonr-deploy.yaml
Normal file
549
custom_deployments/with_eupf/sa-vonr-deploy.yaml
Normal file
@@ -0,0 +1,549 @@
|
|||||||
|
services:
|
||||||
|
mongo:
|
||||||
|
image: mongo:6.0
|
||||||
|
container_name: mongo
|
||||||
|
command: --bind_ip 0.0.0.0
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- mongodbdata:/data/db
|
||||||
|
- mongodbdata:/data/configdb
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "27017/udp"
|
||||||
|
- "27017/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${MONGO_IP}
|
||||||
|
webui:
|
||||||
|
image: docker_open5gs
|
||||||
|
container_name: webui
|
||||||
|
depends_on:
|
||||||
|
- mongo
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=webui
|
||||||
|
volumes:
|
||||||
|
- ../../webui:/mnt/webui
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "9999/tcp"
|
||||||
|
ports:
|
||||||
|
- "9999:9999/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${WEBUI_IP}
|
||||||
|
nrf:
|
||||||
|
image: docker_open5gs
|
||||||
|
container_name: nrf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=nrf-1
|
||||||
|
volumes:
|
||||||
|
- ../../nrf:/mnt/nrf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${NRF_IP}
|
||||||
|
scp:
|
||||||
|
image: docker_open5gs
|
||||||
|
container_name: scp
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=scp-1
|
||||||
|
volumes:
|
||||||
|
- ../../scp:/mnt/scp
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${SCP_IP}
|
||||||
|
ausf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
container_name: ausf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=ausf-1
|
||||||
|
volumes:
|
||||||
|
- ../../ausf:/mnt/ausf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${AUSF_IP}
|
||||||
|
udr:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: udr
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=udr-1
|
||||||
|
volumes:
|
||||||
|
- ../../udr:/mnt/udr
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${UDR_IP}
|
||||||
|
udm:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
container_name: udm
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=udm-1
|
||||||
|
volumes:
|
||||||
|
- ../../udm:/mnt/udm
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${UDM_IP}
|
||||||
|
smf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- amf
|
||||||
|
container_name: smf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=smf-1
|
||||||
|
- DEPLOY_MODE=5G
|
||||||
|
volumes:
|
||||||
|
- ../../smf:/mnt/smf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "3868/udp"
|
||||||
|
- "3868/tcp"
|
||||||
|
- "3868/sctp"
|
||||||
|
- "5868/udp"
|
||||||
|
- "5868/tcp"
|
||||||
|
- "5868/sctp"
|
||||||
|
- "8805/udp"
|
||||||
|
- "2123/udp"
|
||||||
|
- "7777/tcp"
|
||||||
|
- "9091/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${SMF_IP}
|
||||||
|
eupf:
|
||||||
|
image: docker_eupf
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- smf
|
||||||
|
container_name: eupf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=eupf-1
|
||||||
|
volumes:
|
||||||
|
- ../../eupf:/mnt/eupf
|
||||||
|
- /sys/fs/bpf:/sys/fs/bpf
|
||||||
|
- /sys/kernel/debug:/sys/kernel/debug:ro
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "2152/udp"
|
||||||
|
- "8805/udp"
|
||||||
|
- "9091/tcp"
|
||||||
|
- "8181/tcp"
|
||||||
|
# ports:
|
||||||
|
# - "2152:2152/udp"
|
||||||
|
ulimits:
|
||||||
|
memlock: -1
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_ADMIN
|
||||||
|
privileged: true
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.forwarding=1
|
||||||
|
#- net.ipv6.conf.all.disable_ipv6=0
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${UPF_IP}
|
||||||
|
eupf-routes:
|
||||||
|
image: nicolaka/netshoot
|
||||||
|
network_mode: host
|
||||||
|
privileged: true
|
||||||
|
container_name: eupf-routes
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
ip ro add ${UE_IPV4_INTERNET} via ${UPF_IP} && \
|
||||||
|
iptables -t nat -A POSTROUTING -s ${UE_IPV4_INTERNET} -j MASQUERADE && \
|
||||||
|
sysctl -w net.ipv4.conf.all.accept_local=1
|
||||||
|
echo "done"
|
||||||
|
tail -f /dev/null
|
||||||
|
amf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- ausf
|
||||||
|
- udm
|
||||||
|
- udr
|
||||||
|
- pcf
|
||||||
|
- bsf
|
||||||
|
container_name: amf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=amf-1
|
||||||
|
volumes:
|
||||||
|
- ../../amf:/mnt/amf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "38412/sctp"
|
||||||
|
- "7777/tcp"
|
||||||
|
- "9091/tcp"
|
||||||
|
# ports:
|
||||||
|
# - "38412:38412/sctp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${AMF_IP}
|
||||||
|
pcf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: pcf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=pcf-1
|
||||||
|
volumes:
|
||||||
|
- ../../pcf:/mnt/pcf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
- "9091/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${PCF_IP}
|
||||||
|
bsf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: bsf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=bsf-1
|
||||||
|
volumes:
|
||||||
|
- ../../bsf:/mnt/bsf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${BSF_IP}
|
||||||
|
nssf:
|
||||||
|
image: docker_open5gs
|
||||||
|
depends_on:
|
||||||
|
- nrf
|
||||||
|
- scp
|
||||||
|
- mongo
|
||||||
|
container_name: nssf
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=nssf-1
|
||||||
|
volumes:
|
||||||
|
- ../../nssf:/mnt/nssf
|
||||||
|
- ../../log:/open5gs/install/var/log/open5gs
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "7777/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${NSSF_IP}
|
||||||
|
metrics:
|
||||||
|
build: ./metrics
|
||||||
|
image: docker_metrics
|
||||||
|
container_name: metrics
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- ../../metrics:/mnt/metrics
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "9090/tcp"
|
||||||
|
ports:
|
||||||
|
- "9090:9090/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${METRICS_IP}
|
||||||
|
dns:
|
||||||
|
build: ./dns
|
||||||
|
image: docker_dns
|
||||||
|
container_name: dns
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- ../../dns:/mnt/dns
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "53/udp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${DNS_IP}
|
||||||
|
rtpengine:
|
||||||
|
build: ./rtpengine
|
||||||
|
image: docker_rtpengine
|
||||||
|
container_name: rtpengine
|
||||||
|
privileged: true
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- ../../rtpengine:/mnt/rtpengine
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
environment:
|
||||||
|
- TABLE=0
|
||||||
|
- INTERFACE=${RTPENGINE_IP}
|
||||||
|
- LISTEN_NG=${RTPENGINE_IP}:2223
|
||||||
|
- PIDFILE=/run/ngcp-rtpengine-daemon.pid
|
||||||
|
- PORT_MAX=50000
|
||||||
|
- PORT_MIN=49000
|
||||||
|
- NO_FALLBACK=no
|
||||||
|
- TOS=184
|
||||||
|
expose:
|
||||||
|
- "2223/udp"
|
||||||
|
- "49000-50000/udp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${RTPENGINE_IP}
|
||||||
|
mysql:
|
||||||
|
build: ./mysql
|
||||||
|
image: docker_mysql
|
||||||
|
container_name: mysql
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- dbdata:/var/lib/mysql
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
expose:
|
||||||
|
- "3306/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${MYSQL_IP}
|
||||||
|
pyhss:
|
||||||
|
build: ./pyhss
|
||||||
|
image: docker_pyhss
|
||||||
|
container_name: pyhss
|
||||||
|
dns: ${DNS_IP}
|
||||||
|
volumes:
|
||||||
|
- ../../pyhss:/mnt/pyhss
|
||||||
|
- ../../pyhss/logs:/pyhss/log/
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
depends_on:
|
||||||
|
- dns
|
||||||
|
- mysql
|
||||||
|
expose:
|
||||||
|
- "3868/udp"
|
||||||
|
- "3868/tcp"
|
||||||
|
- "8080/tcp"
|
||||||
|
ports:
|
||||||
|
- "8080:8080/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${PYHSS_IP}
|
||||||
|
icscf:
|
||||||
|
image: docker_kamailio
|
||||||
|
container_name: icscf
|
||||||
|
dns: ${DNS_IP}
|
||||||
|
volumes:
|
||||||
|
- ../../icscf:/mnt/icscf
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=icscf-1
|
||||||
|
depends_on:
|
||||||
|
- dns
|
||||||
|
- mysql
|
||||||
|
- pyhss
|
||||||
|
expose:
|
||||||
|
- "3869/udp"
|
||||||
|
- "3869/tcp"
|
||||||
|
- "4060/udp"
|
||||||
|
- "4060/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${ICSCF_IP}
|
||||||
|
scscf:
|
||||||
|
image: docker_kamailio
|
||||||
|
container_name: scscf
|
||||||
|
dns: ${DNS_IP}
|
||||||
|
volumes:
|
||||||
|
- ../../scscf:/mnt/scscf
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=scscf-1
|
||||||
|
depends_on:
|
||||||
|
- dns
|
||||||
|
- mysql
|
||||||
|
- pyhss
|
||||||
|
expose:
|
||||||
|
- "3870/udp"
|
||||||
|
- "3870/tcp"
|
||||||
|
- "6060/udp"
|
||||||
|
- "6060/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${SCSCF_IP}
|
||||||
|
pcscf:
|
||||||
|
image: docker_kamailio
|
||||||
|
container_name: pcscf
|
||||||
|
dns: ${DNS_IP}
|
||||||
|
privileged: true
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
volumes:
|
||||||
|
- ../../pcscf:/mnt/pcscf
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=pcscf-1
|
||||||
|
- DEPLOY_MODE=5G
|
||||||
|
depends_on:
|
||||||
|
- dns
|
||||||
|
- mysql
|
||||||
|
- rtpengine
|
||||||
|
- icscf
|
||||||
|
- scscf
|
||||||
|
expose:
|
||||||
|
- "3871/udp"
|
||||||
|
- "3871/tcp"
|
||||||
|
- "5060/tcp"
|
||||||
|
- "5060/udp"
|
||||||
|
- "5100-5120/tcp"
|
||||||
|
- "5100-5120/udp"
|
||||||
|
- "6100-6120/tcp"
|
||||||
|
- "6100-6120/udp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${PCSCF_IP}
|
||||||
|
smsc:
|
||||||
|
image: docker_kamailio
|
||||||
|
container_name: smsc
|
||||||
|
dns: ${DNS_IP}
|
||||||
|
volumes:
|
||||||
|
- ../../smsc:/mnt/smsc
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
environment:
|
||||||
|
- COMPONENT_NAME=smsc-1
|
||||||
|
depends_on:
|
||||||
|
- dns
|
||||||
|
- mysql
|
||||||
|
expose:
|
||||||
|
- "7090/udp"
|
||||||
|
- "7090/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${SMSC_IP}
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:11.3.0
|
||||||
|
container_name: grafana
|
||||||
|
env_file:
|
||||||
|
- .custom_env
|
||||||
|
volumes:
|
||||||
|
- grafana_data:/var/lib/grafana
|
||||||
|
- ../../grafana/:/etc/grafana/provisioning/
|
||||||
|
- ../../grafana:/mnt/grafana
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
|
||||||
|
#- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS}
|
||||||
|
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
|
||||||
|
- GF_PATHS_DATA=/var/lib/grafana
|
||||||
|
- METRICS_IP=${METRICS_IP}
|
||||||
|
expose:
|
||||||
|
- "3000/tcp"
|
||||||
|
ports:
|
||||||
|
- "3000:3000/tcp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${GRAFANA_IP}
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: docker_open5gs_default
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: ${TEST_NETWORK}
|
||||||
|
volumes:
|
||||||
|
grafana_data:
|
||||||
|
name: grafana_data
|
||||||
|
mongodbdata:
|
||||||
|
name: docker_open5gs_mongodbdata
|
||||||
|
dbdata:
|
||||||
|
name: docker_open5gs_dbdata
|
55
eupf/Dockerfile
Normal file
55
eupf/Dockerfile
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# BSD 2-Clause License
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Supreeth Herle
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
# list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
FROM ubuntu:jammy
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Install updates and dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -y install wget git clang llvm gcc-multilib libbpf-dev \
|
||||||
|
net-tools iputils-ping git ifupdown iperf iptables
|
||||||
|
|
||||||
|
# Install Golang
|
||||||
|
RUN rm -rf /usr/local/go && wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz && \
|
||||||
|
tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
|
||||||
|
|
||||||
|
ENV PATH="/usr/local/go/bin:${PATH}"
|
||||||
|
|
||||||
|
# Install the Swag command line tool for Golang
|
||||||
|
RUN go install github.com/swaggo/swag/cmd/swag@v1.8.12
|
||||||
|
|
||||||
|
# Get eupf, compile and install
|
||||||
|
RUN export PATH=$(go env GOPATH)/bin:${PATH} && \
|
||||||
|
git clone https://github.com/edgecomllc/eupf.git && \
|
||||||
|
cd eupf && git checkout tags/v0.6.4 && \
|
||||||
|
go generate -v ./cmd/... && \
|
||||||
|
go build -v -o bin/eupf ./cmd/
|
||||||
|
|
||||||
|
# Set the working directory to eupf
|
||||||
|
WORKDIR eupf
|
||||||
|
|
||||||
|
CMD /mnt/eupf/eupf_init.sh
|
46
eupf/eupf_init.sh
Executable file
46
eupf/eupf_init.sh
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# BSD 2-Clause License
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Supreeth Herle
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
# list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
export PATH="/usr/local/go/bin:${PATH}"
|
||||||
|
export PATH=$(go env GOPATH)/bin:${PATH}
|
||||||
|
export IP_ADDR=$(awk 'END{print $1}' /etc/hosts)
|
||||||
|
export IF_NAME=$(ip r | awk '/default/ { print $5 }')
|
||||||
|
|
||||||
|
exec ./bin/eupf \
|
||||||
|
--iface $IF_NAME \
|
||||||
|
--aaddr $UPF_IP:8181 \
|
||||||
|
--paddr $UPF_IP:8805 \
|
||||||
|
--maddr $UPF_IP:9091 \
|
||||||
|
--nodeid $UPF_IP \
|
||||||
|
--ueip false \
|
||||||
|
--ftup false \
|
||||||
|
--loglvl info \
|
||||||
|
--n3addr $UPF_ADVERTISE_IP $@
|
||||||
|
|
||||||
|
# Sync docker time
|
||||||
|
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
Reference in New Issue
Block a user