Commit 18a253f5 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Merge branch 'TemporaryMergeToMaster' into 'master'

Merging to master before to start STF 685/STF 707 developments

See merge request !12
parents a17195d5 115c9bca
Loading
Loading
Loading
Loading
+23 −6
Original line number Diff line number Diff line
@@ -13,7 +13,10 @@ 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, V2X Information API (MEC030) service API and  MEC Federation Service API (MEC040) 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 IoT API (MEC 033), 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.
@@ -47,7 +50,8 @@ MEC Sandbox has the following prerequisites:
1. [etsi-mec-sandbox](https://interdigitalinc.github.io/AdvantEDGE/) runtime & development environments on both VMs
   - Install [runtime environment](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-runtime/)
   - Install [development environment](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-dev/)
1. OAuth Applications using external providers
   - Or deploy both using [Ansible Playbooks](https://labs.etsi.org/rep/mec/etsi-mec-sandbox/-/tree/STF678_Task_5_TTF_T043/playbooks)
2. OAuth Applications using external providers
   - **GitHub:**
     - github.com User Account --> Settings --> Developer settings --> OAuth Apps --> New OAuth App
     - _Application Name:_ ETSI MEC Sandbox
@@ -68,7 +72,7 @@ MEC Sandbox has the following prerequisites:
     - **NOTES:**
       - Once created, keep note of the OAuth App Client ID & Secret
       - Enable Device Flow to use API driven sandbox
1. Python Installation
3. Python Installation
   - Install Python2:
     - Ubuntu 18.04: `sudo apt install python-minimal`
     - Ubuntu 20.04: `sudo apt install python2-minimal`
@@ -76,7 +80,7 @@ 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
4. 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
@@ -216,6 +220,19 @@ $ showmount -e
       - `vi ~/etsi-mec-sandbox-frontend/config/values/meep-prometheus.yaml`
       - Set `slack_api_url` to your slack channel webhook url
       - Set `channel` to your slack channel
   - Configure MQTT broker e.g `Mosquitto MQTT`:
     - Install mosquitto.
        - `sudo apt update`
        - `sudo apt install -y mosquitto`
     - Create a config file for mosquitto.
        - `echo -e "listener 1883\nallow_anonymous    true" | sudo tee /etc/mosquitto/conf.d/listener.conf > /dev/null`
     - Restart mosquitto.
        - `sudo systemctl restart mosquitto`
   - Configure vis and federation api to use mqtt broker
     - Set the `MEEP_BROKER` variable with the server IP (where Mosquitto is running) and port 1883 in the following two files:
        - `~/etsi-mec-sandbox/charts/meep-federation/values-template.yaml`
        - `~/etsi-mec-sandbox/charts/meep-vis/values-template.yaml`
        - Example: `MEEP_BROKER: mqtt://192.168.x.x:1882`
1. Build & Deploy STF Frontend:
   - SSH to MEC Sandbox deployment VM
   - Build STF Frontend:
@@ -332,5 +349,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.
```
+195 −2
Original line number Diff line number Diff line
# Copyright (c) 2025  The AdvantEDGE Authors
# Copyright (c) 2026  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.
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

version: 1.10.0
version: 1.11.0
repo:
  name: etsi-mec-sandbox

@@ -308,6 +308,8 @@ repo:
          # - meep-tc-engine
          # - meep-app-enablement
          # - meep-vis
          # - meep-iot
          # - meep-sss
          # - meep-federation
        # location of API specifications
        api:
@@ -423,7 +425,15 @@ 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
          meep-cloud-mosquitto: charts/meep-cloud-mosquitto
          meep-mosquitto: charts/meep-mosquitto
          meep-acme-mn-cse: charts/meep-acme-mn-cse
          meep-acme-in-cse: charts/meep-acme-in-cse
          meep-tinyiot-mn-cse: charts/meep-tinyiot-mn-cse
          meep-tinyiot-in-cse: charts/meep-tinyiot-in-cse
        # list of sandbox specific pods
        sandbox-pods:
          - meep-gis-engine
@@ -439,6 +449,8 @@ repo:
          # - meep-tc-engine
          # - meep-app-enablement
          # - meep-vis
          # - meep-iot
          # - meep-sss
          # - meep-federation
      meep-webhook:
        # location of source code
@@ -942,6 +954,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
@@ -993,6 +1073,99 @@ repo:
        docker-data:
          'mosquitto.conf': go-apps/meep-mosquitto/mosquitto.conf
          'listener.conf': go-apps/meep-mosquitto/listener.conf
          'entrypoint.sh': go-apps/meep-mosquitto/entrypoint.sh
      meep-cloud-mosquitto:
        # location of source code
        src: go-apps/meep-cloud-mosquitto
        bin: bin/meep-cloud-mosquitto
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: false
        docker-data:
          'mosquitto.conf': go-apps/meep-cloud-mosquitto/mosquitto.conf
          'listener.conf': go-apps/meep-cloud-mosquitto/listener.conf
          'entrypoint.sh': go-apps/meep-cloud-mosquitto/entrypoint.sh
      meep-tinyiot-in-cse:
        # location of source code
        src: go-apps/meep-iot-pltf/tinyiot-in-cse
        bin: bin/meep-iot-pltf/meep-tinyiot-in-cse
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: false
        # TinyIoT resources available to docker container image
        docker-data:
          'entrypoint.sh': go-apps/meep-iot-pltf/tinyiot-in-cse/entrypoint.sh
          'source': go-apps/meep-iot-pltf/tinyiot-in-cse/tinyIoT/source
      meep-tinyiot-mn-cse:
        # location of source code
        src: go-apps/meep-iot-pltf/tinyiot-mn-cse
        bin: bin/meep-iot-pltf/meep-tinyiot-mn-cse
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: false
        # TinyIoT resources available to docker container image
        docker-data:
          'entrypoint.sh': go-apps/meep-iot-pltf/tinyiot-mn-cse/entrypoint.sh
          'source': go-apps/meep-iot-pltf/tinyiot-mn-cse/tinyIoT/source
      meep-acme-in-cse:
        # location of source code
        src: go-apps/meep-iot-pltf/meep-acme-in-cse
        bin: bin/meep-iot-pltf/meep-acme-in-cse
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: false
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-iot-pltf/meep-acme-in-cse/entrypoint.sh
          'acme.ini.in': go-apps/meep-iot-pltf/meep-acme-in-cse/acme.ini.in
      meep-acme-mn-cse:
        # location of source code
        src: go-apps/meep-iot-pltf/meep-acme-mn-cse
        bin: bin/meep-iot-pltf/meep-acme-mn-cse
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: false
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-iot-pltf/meep-acme-mn-cse/entrypoint.sh
          'acme.ini.in': go-apps/meep-iot-pltf/meep-acme-mn-cse/acme.ini.in
          'acme': go-apps/meep-iot-pltf/meep-acme-mn-cse/acme

  #------------------------------
  #  Dependencies
  #------------------------------
@@ -1358,6 +1531,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
@@ -1368,6 +1551,16 @@ 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-sss-mgr:
        # location of source code
        src: go-packages/meep-sss-mgr
        # supports linting
        lint: false
      meep-watchdog:
        # location of source code
        src: go-packages/meep-watchdog
+41 −79
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ paths:
              aefProfiles:
                - aefId: "sandboxTransport"
                  versions:
                    - "3.1.1"
                    - apiVersion: "3.1.1"
                  interfaceDescriptions:
                    uris:
                      - "http://my.callback.com/sbx2cmq8bn/mep1/vis/v2/"
@@ -440,13 +440,11 @@ paths:
              aefProfiles:
                - aefId: "sandboxTransport"
                  versions:
                    - "3.1.1"
                    - apiVersion: "3.1.1"
                  interfaceDescriptions:
                    uris:
                      - "http://my.callback.com/sbx2cmq8bn/mep1/vis/v2/"
                    fqdn: null
                    addresses: null
                    alternative: null
                  - fqdn: "my.callback.com"
                    port: 80
                    apiPrefix: "/sbx2cmq8bn/mep1/vis/v2"
                  vendorSpecific-urn:etsi:mec:capifext:transport-info:
                    name: "REST"
                    type: "REST_HTTP"
@@ -631,13 +629,11 @@ paths:
              aefProfiles:
                - aefId: "sandboxTransport"
                  versions:
                    - "3.1.1"
                    - apiVersion: "3.1.1"
                  interfaceDescriptions:
                    uris:
                      - "http://my.callback.com/sbx2cmq8bn/mep1/vis/v2/"
                    fqdn: null
                    addresses: null
                    alternative: null
                  - fqdn: "my.callback.com"
                    port: 80
                    apiPrefix: "/sbx2cmq8bn/mep1/vis/v2"
                  vendorSpecific-urn:etsi:mec:capifext:transport-info:
                    name: "REST"
                    type: "REST_HTTP"
@@ -1323,18 +1319,21 @@ components:
          description: "AEF identifier. Shall be set to the value of the 'id' attribute as defined in clause 8.1.2.3."
        versions:
          type: array
          items:
            type: string
            description: "API version. This array shall contain a single entry."
          minItems: 1
          maxItems: 1
          items:
            type: object
            properties:
              apiVersion:
                type: string
                description: "The version of the API as per clause 8.1.2.2"
            required:
              - apiVersion
        interfaceDescriptions:
          description: This type represents information about a transport endpoint
          oneOf:
          - $ref: '#/components/schemas/EndPointInfo.Uris'
          - $ref: '#/components/schemas/EndPointInfo.Fqdn'
          - $ref: '#/components/schemas/EndPointInfo.Addresses'
          - $ref: '#/components/schemas/EndPointInfo.Alternative'
          type: array
          items:
            $ref: '#/components/schemas/InterfaceDescription'
          x-etsi-notes: "NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or\
            \ \"alternative\" shall be present."
        vendorSpecific-urn:etsi:mec:capifext:transport-info :
@@ -1434,69 +1433,32 @@ components:
      - RPC
      - RPC_STREAMING
      - WEBSOCKET
    EndPointInfo.Alternative:
      title: EndPointInfo.Alternative
      required:
      - alternative
    InterfaceDescription:
      type: object
      description: 3GPP-compliant InterfaceDescription (TS 29.222 Table 8.2.4.2.3-1)
      properties:
        alternative:
          type: object
          description: "Entry point information of the service in a format defined\
            \ by an implementation, or in an external specification. See note."
      description: This type represents information about a transport endpoint.
    EndPointInfo.Address:
      title: EndPointInfo.Address
      required:
      - host
      - port
      type: object
      properties:
        host:
        ipv4Addr:
          type: string
          description: Host portion of the address
          example: "[\"192.0.2.0\"]"
        port:
          type: integer
          description: Port portion of the address
      description: A IP address and port pair
    EndPointInfo.Addresses:
      title: EndPointInfo.Addresses
      required:
      - addresses
      type: object
      properties:
        addresses:
          type: array
          description: Entry point information of the service as one or more pairs
            of IP address and port. See note.
          items:
            $ref: '#/components/schemas/EndPointInfo.Address'
    EndPointInfo.Fqdn:
      title: EndPointInfo.Fqdn
      required:
      - fqdn
      type: object
      properties:
          format: ipv4
          description: IPv4 address
        ipv6Addr:
          type: string
          format: ipv6
          description: IPv6 address
        fqdn:
          type: array
          description: Fully Qualified Domain Name of the service. See note.
          items:
          type: string
      description: 'This type represents information about a transport endpoint. '
    EndPointInfo.Uris:
      title: EndPointInfo.Uris
      required:
      - uris
      type: object
      properties:
        uris:
          type: array
          description: "Entry point information of the service as string, formatted\
            \ according to URI syntax"
          items:
          description: Fully Qualified Domain Name
        port:
          type: integer
          description: TCP port number
        apiPrefix:
          type: string
      description: This type represents information about a transport endpoint.
          description: Optional API prefix path (starts with '/')
      oneOf:
        - required: [ipv4Addr]
        - required: [ipv6Addr]
        - required: [fqdn]
      additionalProperties: false
  responses:
    "400":
      description: Bad Request. It is used to indicate that incorrect parameters were
Loading