Commit 15ff9fdd authored by Yann Garcia's avatar Yann Garcia
Browse files

Update meep-iot; Add meep-sss for Sensors-Sharing Serrvice (MEC 046)

parent c5f7596a
Loading
Loading
Loading
Loading
+44 −3
Original line number Diff line number Diff line
@@ -13,7 +13,9 @@ presented via OpenAPI compliant descriptions.
MEC Sandbox provides the user with a choice of scenarios combining different network technologies (4G, 5G, Wi-Fi) and
terminal types. Combining these assets in a geolocated environment, a user can gain hands-on experience on the behaviour
and capabilities of the Location (MEC013), Radio Network Information (MEC012), Traffic Management APIs (MEC015), Device Application Interface (MEC016), 
WLAN Information (MEC028), Edge Platform Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer
WLAN Information (MEC028), Edge Platform Application Enablement (MEC011), Application Mobility (MEC021) service APIs, V2X Information API (MEC030) service API, MEC Federation Service API (MEC040) service APIs and Sensors-Sharing Services (MEC046) service APIs. 
MEC Sandbox provides also a support for Edge Native Connector (3GPP TS 29.222: 3rd Generation Partnership Project; Technical Specification GroupCore
Network and Terminals; Common API Framework for 3GPP Northbound APIs). Such contextual information can offer
significant differential performance for edge based MEC applications.
Application Enablement (MEC011) and Application Mobility (MEC021) service APIs. Such contextual information can offer
significant differential performance for edge based MEC applications.
@@ -74,6 +76,45 @@ MEC Sandbox has the following prerequisites:
     - Ubuntu 18.04: `sudo apt install python-pip`
     - Ubuntu 20.04: `sudo apt install python3-pip`
   - Install Pyyaml: `pip install pyyaml`
1. Host NFS server installation
In order to be deployed properly, MEC 016 service requires that an NFS server was deployed on the host. To achieve it, the followimg steps are required:

- Install the NFS server
```sh
$ sudo apt-get update
$ sudo apt install nfs-kernel-server nfs-common portmap
```
- Check that the NFS server is running on the host
```sh
$ sudo systemctl status nfs-server
```
The outpout looks like:
```
nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2024-09-16 09:10:45 CEST; 42s ago
   Main PID: 923678 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 38358)
     Memory: 0B
     CGroup: /system.slice/nfs-server.service
```
- Create the NFS shared folder
```sh
$ sudo mkdir -p /mnt/nfs/mec_sandbox
$ sudo chmod -R 777 /mnt/nfs/
```
- Update the /etc/exports file by adding the following line:
```sh
sudo echo '/mnt/nfs/mec_sandbox  *(rw,sync,no_subtree_check,no_root_squash,insecure)' > /etc/exports
```
- Export the NFS shared folder
```sh
$ sudo exportfs -rv
```
- Check that the NFS shared folder is exported
```sh
$ showmount -e
```

### Deploy Long-term Storage (MinIO + Thanos Compactor)

@@ -289,5 +330,5 @@ The following procedure should be used to upgrade a running MEC Sandbox deployme
## Licensing
MEC Sandbox is a private repo with all rights reserved to ETSI.
```
Copyright (c) 2022 ETSI.  All rights reserved.
Copyright (c) 2022-2025 ETSI.  All rights reserved.
```
+189 −56
Original line number Diff line number Diff line
# Copyright (c) 2022  The AdvantEDGE Authors
# Copyright (c) 2025  The AdvantEDGE Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -38,9 +38,9 @@ repo:
    # platform ingress configuration
    ingress:
      # host name
      host: 172.30.225.7
      host: mec-platform.etsi.org
      # enable https only (redirect http requests to https port)
      https-only: false
      https-only: true
      # bind to host ports (true) or node ports (false)
      host-ports: true
      # http port number
@@ -48,7 +48,7 @@ repo:
      # https config
      https-port: 443
      # certificate authority (none|self-signed|lets-encrypt) default: none
      ca: self-signed
      ca: lets-encrypt
      # lets-encrypt production server (true) or staging server (false)
      le-server-prod: true

@@ -79,7 +79,7 @@ repo:
        # access token url
        token-url: https://github.com/login/oauth/access_token
        # OAuth redirect URI
        redirect-uri: https://mec-platform2.etsi.org/platform-ctrl/v1/authorize
        redirect-uri: https://mec-platform.etsi.org/platform-ctrl/v1/authorize
        # OAuth k8s secret (data: client-id, secret)
        secret: meep-oauth-github
      # GitLab OAuth provider config
@@ -91,7 +91,7 @@ repo:
        # access token url
        token-url: https://forge.etsi.org/rep/oauth/token
        # OAuth redirect URI
        redirect-uri: https://try-mec.etsi.org/platform-ctrl/v1/authorize
        redirect-uri: https://mec-platform.etsi.org/platform-ctrl/v1/authorize
        # GitLab api url
        api-url: https://forge.etsi.org/rep/api/v4
        # OAuth k8s secret (data: client-id, secret)
@@ -102,9 +102,9 @@ repo:
      # Influx configuration
      influx:
        # enable influx data backups
        enabled: false
        enabled: true
        # object store url
        url: https://metrics.try-mec.etsi.org/
        url: https://metrics.mec-platform.etsi.org/
        # object store configuration secret
        secret: meep-influx-objstore-config
        # Number of days to retain daily data backups
@@ -120,7 +120,7 @@ repo:
          # prometheus environment (dev|prod)
          promenv: prod
          # unique deployment identifier
          replica: platform-ip
          replica: 172.29.10.56
      # Thanos long-term storage
      thanos:
        # enable Thanos
@@ -152,11 +152,11 @@ repo:
            # 1h downsampled data retention
            resolution-1h: 10y
      # Thanos long-term storage archive
      #thanos-archive:
      thanos-archive:
        # enable Thanos archive
        # enabled: true
        enabled: false
        # archive object store configuration secret
        #secret: meep-thanos-archive-objstore-config
        secret: meep-thanos-archive-objstore-config

    # Garbage Collection configuration
    gc:
@@ -290,6 +290,7 @@ repo:
        core-pods:
          - meep-mon-engine
          - meep-platform-ctrl
          - meep-sandbox-api
          - meep-virt-engine
          - meep-webhook
        # list of sandbox pods to monitor
@@ -307,6 +308,8 @@ repo:
          # - meep-tc-engine
          # - meep-app-enablement
          # - meep-vis
          # - meep-iot
          # - meep-sss
          # - meep-federation
        # location of API specifications
        api:
@@ -351,6 +354,39 @@ repo:
          swagger: js-apps/meep-swagger-ui
          # location of AdvantEDGE frontend
          frontend: bin/meep-frontend
      meep-sandbox-api:
        # location of source code
        src: go-apps/meep-sandbox-api
        # location of binary
        bin: bin/meep-sandbox-api
        # location of deployment chart
        chart: charts/meep-sandbox-api
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-sandbox-api.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Platform Controller REST API'
            file: go-apps/meep-sandbox-api/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-sandbox-api/entrypoint.sh
          # location of Swagger UI
          #swagger: js-apps/meep-swagger-ui
          # location of AdvantEDGE frontend
          #frontend: bin/meep-frontend
      meep-virt-engine:
        # location of source code
        src: go-apps/meep-virt-engine
@@ -380,7 +416,7 @@ repo:
          meep-metrics-engine: charts/meep-metrics-engine
          meep-mg-manager: charts/meep-mg-manager
          meep-rnis: charts/meep-rnis
#          meep-dai: charts/meep-dai
          meep-dai: charts/meep-dai
          meep-tm: charts/meep-tm
          meep-wais: charts/meep-wais
          meep-ams: charts/meep-ams
@@ -389,6 +425,8 @@ repo:
          meep-app-enablement: charts/meep-app-enablement
          meep-virt-chart-templates: charts/meep-virt-chart-templates
          meep-vis: charts/meep-vis
          meep-iot: charts/meep-iot
          meep-sss: charts/meep-sss
          meep-federation: charts/meep-federation
        # list of sandbox specific pods
        sandbox-pods:
@@ -405,6 +443,8 @@ repo:
          # - meep-tc-engine
          # - meep-app-enablement
          # - meep-vis
          # - meep-iot
          # - meep-sss
          # - meep-federation
      meep-webhook:
        # location of source code
@@ -836,42 +876,42 @@ repo:
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-tm/entrypoint.sh
#      meep-dai:
#        # location of source code
#        src: go-apps/meep-dai
#        # location of binary
#        bin: bin/meep-dai
#        # location of deployment chart
#        chart: charts/meep-dai
#        # user supplied value file located @ .meep/user/values (use below file name)
#        chart-user-values: meep-dai.yaml
#        # extra build flags
#        build-flags:
#          - -mod=vendor
#        # enable meepctl build
#        build: false #true
#        # enable meepctl dockerize
#        dockerize: false #true
#        # enable meepctl deploy/delete
#        deploy: false #true
#        # supports code coverage measurement when built in codecov mode
#        codecov: true
#        # supports onboarded device application instantiation
#        onboardedapp: true
#        # supports linting
#        lint: true
#        # location of API specifications
#        api:
#          - name: 'AdvantEDGE Device Application Interface REST API'
#            file: go-apps/meep-dai/api/swagger.yaml
#        # location of user supplied API specifications
#        user-api:
#          - name: 'Device Application Interface REST API'
#            file: config/api/dai-api.yaml
#        # resources available to docker container image
#        docker-data:
#          # location of entry script
#          'entrypoint.sh': go-apps/meep-dai/entrypoint.sh
      meep-dai:
        # location of source code
        src: go-apps/meep-dai
        # location of binary
        bin: bin/meep-dai
        # location of deployment chart
        chart: charts/meep-dai
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-dai.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports onboarded device application instantiation
        onboardedapp: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Device Application Interface REST API'
            file: go-apps/meep-dai/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'Device Application Interface REST API'
            file: config/api/dai-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-dai/entrypoint.sh
      meep-vis:
        # location of source code
        src: go-apps/meep-vis
@@ -908,6 +948,74 @@ repo:
          'entrypoint.sh': go-apps/meep-vis/entrypoint.sh
          # location of grid map file
          'grid_map.yaml': go-packages/meep-vis-traffic-mgr/grid_map.yaml
      meep-iot:
        # location of source code
        src: go-apps/meep-iot
        # location of binary
        bin: bin/meep-iot
        # location of deployment chart
        chart: charts/meep-iot
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-iot.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE IOT APIs REST API'
            file: go-apps/meep-iot/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'IOT APIs REST API'
            file: config/api/iot-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-iot/entrypoint.sh
      meep-sss:
        # location of source code
        src: go-apps/meep-sss
        # location of binary
        bin: bin/meep-sss
        # location of deployment chart
        chart: charts/meep-sss
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-sss.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE SENSORS SHARING APIs REST API'
            file: go-apps/meep-sss/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'SENSORS SHARING APIs REST API'
            file: config/api/sss-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-sss/entrypoint.sh
      meep-federation:
        # location of source code
        src: go-apps/meep-federation
@@ -1085,7 +1193,7 @@ repo:
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: false
      deploy: true
      # location of deployment chart
      chart: charts/thanos
      # user supplied value file located @ .meep/user/values (use below file name)
@@ -1096,7 +1204,7 @@ repo:
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: false
      deploy: true
      # location of deployment chart
      chart: charts/thanos
      # user supplied value file located @ .meep/user/values (use below file name)
@@ -1288,11 +1396,16 @@ repo:
        src: go-packages/meep-users
        # supports linting
        lint: true
#      meep-dai-client:
#        # location of source code
#        src: go-packages/meep-dai-client
#        # supports linting
#        lint: false
      meep-dai-client:
        # location of source code
        src: go-packages/meep-dai-client
        # supports linting
        lint: false
      meep-dai-mgr:
        # location of source code
        src: go-packages/meep-dai-mgr
        # supports linting
        lint: false
      meep-wais-client:
        # location of source code
        src: go-packages/meep-wais-client
@@ -1303,6 +1416,16 @@ repo:
        src: go-packages/meep-vis-client
        # supports linting
        lint: false
      meep-iot-client:
        # location of source code
        src: go-packages/meep-iot-client
        # supports linting
        lint: false
      meep-sss-client:
        # location of source code
        src: go-packages/meep-sss-client
        # supports linting
        lint: false
      meep-federation-mgr:
        # location of source code
        src: go-packages/meep-federation-mgr
@@ -1313,6 +1436,11 @@ repo:
        src: go-packages/meep-vis-traffic-mgr
        # supports linting
        lint: false
      meep-iot-mgr:
        # location of source code
        src: go-packages/meep-iot-mgr
        # supports linting
        lint: false
      meep-watchdog:
        # location of source code
        src: go-packages/meep-watchdog
@@ -1351,6 +1479,11 @@ repo:
        src: js-packages/meep-platform-ctrl-client
        # supports linting
        lint: false
      meep-sandbox-api-client:
        # location of source code
        src: go-packages/meep-sandbox-api-client
        # supports linting
        lint: false
      meep-sandbox-ctrl-client:
        # location of source code
        src: js-packages/meep-sandbox-ctrl-client
+2858 −0

File added.

Preview size limit exceeded, changes collapsed.

+1259 −0

File added.

Preview size limit exceeded, changes collapsed.

+8 −2
Original line number Diff line number Diff line
/*
 * Copyright (c) 2022 ETSI.  All rights reserved.
 * Copyright (c) 2022-2025 ETSI.  All rights reserved.
 */

import React, { Component } from 'react';
@@ -78,7 +78,7 @@ class DetailedDataDialog extends Component {

  mapService(loggerName) {
    //loggerName is a combination of loggerName and mep name
    let prefixes = ['meep-loc-serv', 'meep-federation', 'meep-rnis', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-vis', 'meep-tm'];
    let prefixes = ['meep-loc-serv', 'meep-federation', 'meep-rnis', 'meep-dai', 'meep-wais', 'meep-app-enablement', 'meep-ams', 'meep-iot', 'meep-sss', 'meep-vis', 'meep-tm'];
    let prefixStd = '';
    var prefix = '';
    for (var i = 0; i < prefixes.length; i++) {
@@ -113,9 +113,15 @@ class DetailedDataDialog extends Component {
    case 'meep-vis':
      prefixStd = '030';
      break;
    case 'meep-iot':
      prefixStd = '033';
      break;
    case 'meep-federation':
      prefixStd = '040';
      break;
    case 'meep-sss':
      prefixStd = '046';
      break;
    default:
      prefixStd = 'N/A';
    }
Loading