Commit ab40ec4e authored by Mark Beierl's avatar Mark Beierl
Browse files

Descriptors from OSM#13 Hackfest


Signed-off-by: Mark Beierl's avatarbeierlm <mark.beierl@canonical.com>
parent 38dd8a1b
Pipeline #6239 failed with stage
in 1 minute and 32 seconds
Descriptor created by OSM descriptor package generated
Created on Tue Jan 14 17:49:17 UTC 2020
nsd:
nsd:
- description: Magma AGW PNF
designer: ETSI OSM
df:
- id: default-df
vnf-profile:
- id: magma-agw-pnf
virtual-link-connectivity:
- constituent-cpd-id:
- constituent-base-element-id: magma-agw-pnf
constituent-cpd-id: gateway_public
virtual-link-profile-id: mgmt
- constituent-cpd-id:
- constituent-base-element-id: magma-agw-pnf
constituent-cpd-id: vnf_internal
virtual-link-profile-id: private
vnfd-id: magma_agw_pnf
id: magma_agw_ns
name: magma_agw_ns
version: 1.0
virtual-link-desc:
- id: mgmt
mgmt-network: true
- id: private
#vim-network-name: private
vnfd-id:
- magma_agw_pnf
vnfd:
description: PNF entry for a Magma AGW
df:
- id: default-df
instantiation-level:
- id: default-instantiation-level
vdu-level:
- number-of-instances: 1
vdu-id: magma-agw-VM
vdu-profile:
- id: magma-agw-VM
min-number-of-instances: 1
ext-cpd:
- id: gateway_public
int-cpd:
cpd: gateway_public
vdu-id: magma-agw-VM
- id: vnf_internal
int-cpd:
cpd: vnf_internal
vdu-id: magma-agw-VM
id: magma_agw_pnf
mgmt-cp: gateway_public
product-name: magma_agw_pnf
vdu:
- id: magma-agw-VM
pdu-type: gateway
int-cpd:
- id: gateway_public
virtual-network-interface-requirement:
- name: eth0
- id: vnf_internal
virtual-network-interface-requirement:
- name: eth1
name: magma-agw-VM
version: 1.0
bundle: kubernetes
name: magma-orc8r
description: |
Orchestrator is a Magma service that provides a simple and consistent way to
configure and monitor the wireless network securely. The metrics acquired through the platform
allows you to see the analytics and traffic flows of the wireless users through the Magma web UI.
applications:
nms-magmalte:
charm: magma-nms-magmalte
channel: edge
scale: 1
trust: true
nms-nginx-proxy:
charm: magma-nms-nginx-proxy
channel: edge
scale: 1
trust: true
orc8r-accessd:
charm: magma-orc8r-accessd
channel: edge
scale: 1
trust: true
orc8r-alertmanager:
charm: alertmanager-k8s
channel: edge
scale: 1
trust: true
orc8r-analytics:
charm: magma-orc8r-analytics
channel: edge
scale: 1
trust: true
orc8r-bootstrapper:
charm: magma-orc8r-bootstrapper
channel: edge
scale: 1
trust: true
orc8r-certifier:
charm: magma-orc8r-certifier
channel: edge
scale: 1
trust: true
options:
domain: team1.osmhackfest.com
orc8r-configurator:
charm: magma-orc8r-configurator
channel: edge
scale: 1
trust: true
orc8r-ctraced:
charm: magma-orc8r-ctraced
channel: edge
scale: 1
trust: true
orc8r-device:
charm: magma-orc8r-device
channel: edge
scale: 1
trust: true
orc8r-directoryd:
charm: magma-orc8r-directoryd
channel: edge
scale: 1
trust: true
orc8r-dispatcher:
charm: magma-orc8r-dispatcher
channel: edge
scale: 1
trust: true
orc8r-eventd:
charm: magma-orc8r-eventd
channel: edge
scale: 1
trust: true
options:
elasticsearch-url: "orc8r-elasticsearch:1234"
orc8r-ha:
charm: magma-orc8r-ha
channel: edge
scale: 1
trust: true
orc8r-lte:
charm: magma-orc8r-lte
channel: edge
scale: 1
trust: true
orc8r-metricsd:
charm: magma-orc8r-metricsd
channel: edge
scale: 1
trust: true
orc8r-nginx:
charm: magma-orc8r-nginx
channel: edge
scale: 1
trust: true
orc8r-obsidian:
charm: magma-orc8r-obsidian
channel: edge
scale: 1
trust: true
orc8r-orchestrator:
charm: magma-orc8r-orchestrator
channel: edge
scale: 1
trust: true
options:
elasticsearch-url: "orc8r-elasticsearch:1234"
orc8r-policydb:
charm: magma-orc8r-policydb
channel: edge
scale: 1
trust: true
orc8r-prometheus:
charm: prometheus-k8s
channel: edge
scale: 1
trust: true
orc8r-prometheus-cache:
charm: prometheus-edge-hub
channel: edge
scale: 1
trust: true
options:
metrics_count_limit: 500000
orc8r-service-registry:
charm: magma-orc8r-service-registry
channel: edge
scale: 1
trust: true
orc8r-smsd:
charm: magma-orc8r-smsd
channel: edge
scale: 1
trust: true
orc8r-state:
charm: magma-orc8r-state
channel: edge
scale: 1
trust: true
orc8r-streamer:
charm: magma-orc8r-streamer
channel: edge
scale: 1
trust: true
orc8r-subscriberdb:
charm: magma-orc8r-subscriberdb
channel: edge
scale: 1
trust: true
orc8r-subscriberdb-cache:
charm: magma-orc8r-subscriberdb-cache
channel: edge
scale: 1
trust: true
orc8r-tenants:
charm: magma-orc8r-tenants
channel: edge
scale: 1
trust: true
orc8r-user-grafana:
charm: grafana-k8s
channel: edge
options:
web_external_url: "/grafana"
scale: 1
trust: true
postgresql-k8s:
charm: postgresql-k8s
series: kubernetes
channel: stable
scale: 1
trust: true
relations:
- - nms-magmalte:magma-orc8r-certifier
- orc8r-certifier:magma-orc8r-certifier
- - nms-magmalte:db
- postgresql-k8s:db
- - nms-nginx-proxy:magma-orc8r-certifier
- orc8r-certifier:magma-orc8r-certifier
- - nms-nginx-proxy:magmalte
- nms-magmalte:magmalte
- - orc8r-accessd:db
- postgresql-k8s:db
- - orc8r-bootstrapper:magma-orc8r-certifier
- orc8r-certifier:magma-orc8r-certifier
- - orc8r-certifier:db
- postgresql-k8s:db
- - orc8r-configurator:db
- postgresql-k8s:db
- - orc8r-ctraced:db
- postgresql-k8s:db
- - orc8r-device:db
- postgresql-k8s:db
- - orc8r-directoryd:db
- postgresql-k8s:db
- - orc8r-lte:db
- postgresql-k8s:db
- - orc8r-nginx:bootstrapper
- orc8r-bootstrapper:bootstrapper
- - orc8r-nginx:magma-orc8r-certifier
- orc8r-certifier:magma-orc8r-certifier
- - orc8r-nginx:obsidian
- orc8r-obsidian:obsidian
- - orc8r-orchestrator:magma-orc8r-certifier
- orc8r-certifier:magma-orc8r-certifier
- - orc8r-orchestrator:metrics-endpoint
- orc8r-prometheus-cache:metrics-endpoint
- - orc8r-policydb:db
- postgresql-k8s:db
- - orc8r-prometheus:alertmanager
- orc8r-alertmanager:alerting
- - orc8r-prometheus
- orc8r-prometheus-cache
- - orc8r-prometheus
- orc8r-user-grafana
- - orc8r-smsd:db
- postgresql-k8s:db
- - orc8r-state:db
- postgresql-k8s:db
- - orc8r-subscriberdb-cache:db
- postgresql-k8s:db
- - orc8r-subscriberdb:db
- postgresql-k8s:db
- - orc8r-tenants:db
- postgresql-k8s:db
vnfd:
product-name: magma_orc_cnf
version: "1.0"
provider: Canonical
description: "K8s container deployment of Magma Orchestrator"
id: magma_orc_cnf
mgmt-cp: mgmtnet-ext
ext-cpd:
- id: mgmtnet-ext
k8s-cluster-net: mgmtnet
kdu:
- name: magma-orc-kdu
juju-bundle: bundle.yaml
k8s-cluster:
nets:
- id: mgmtnet
df:
- id: default-df
lcm-operations-configuration:
operate-vnf-op-config:
day1-2:
- id: magma-orc-kdu
initial-config-primitive:
- seq: 0
name: create-orchestrator-admin-user
parameter:
- name: application-name
data-type: STRING
value: orc8r-orchestrator
config-primitive:
- name: get-admin-credentials
parameter:
- name: application-name
data-type: STRING
default-value: nms-magmalte
nsd:
nsd:
- description: NS with 1 KDU connected to the mgmtnet VL
designer: Canonical
df:
- id: default-df
vnf-profile:
- id: magma_orc_cnf
virtual-link-connectivity:
- constituent-cpd-id:
- constituent-base-element-id: magma_orc_cnf
constituent-cpd-id: mgmtnet-ext
virtual-link-profile-id: mgmtnet
vnfd-id: magma_orc_cnf
id: magma_orc_cnf_ns
name: magma_orc_cnf_ns
version: 1.0
virtual-link-desc:
- id: mgmtnet
mgmt-network: true
vnfd-id:
- magma_orc_cnf
Descriptor created by OSM descriptor package generated
Created on Tue Jan 14 17:49:17 UTC 2020
nsd:
nsd:
- description: srsLTE connected to PNF Gateway
designer: ETSI
df:
- id: default-df
vnf-profile:
- id: srsLTE
virtual-link-connectivity:
- constituent-cpd-id:
- constituent-base-element-id: srsLTE
constituent-cpd-id: srsLTE-mgmt-ext
virtual-link-profile-id: mgmt
vnfd-id: srs-lte-enb_vnfd
id: srs-lte-enb_nsd
name: srs-lte-enb_nsd
version: 1.0
virtual-link-desc:
- id: mgmt
mgmt-network: true
vnfd-id:
- srs-lte-enb_vnfd
# srs-lte
## Description
Operations packages for SRS EnodeB and User Emulator
## Usage
### Prepare the environment
```bash
sudo snap install juju --classic --channel 2.8/stable
sudo snap install lxd
lxd.init
juju bootstrap lxd
juju add-model test-srs-enb-ue
```
### Deploy (from the Store)
```bash
juju deploy cs:~charmed-osm/srs-enb-ue --channel edge
```
### Deploy (locally)
Build the charm:
```bash
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements-dev.txt
pip install charmcraft
./venv/bin/charmcraft build
```
Deploy:
```bash
juju deploy ./srs-enb-ue.charm
```
## Developing
Create and activate a virtualenv with the development requirements:
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements-dev.txt
## Testing
The Python operator framework includes a very nice harness for testing
operator behaviour without full deployment. Just `run_tests`:
./run_tests
# Copyright 2020 David Garcia
# See LICENSE file for licensing details.
#
# This is only an example, and you should edit to suit your needs.
# If you don't need actions, you can remove the file entirely.
# It ties in to the example _on_fortune_action handler in src/charm.py
attach-ue:
description: Attach User Emulator to enodeB
params:
usim-imsi:
description: "USIM IMSI"
type: string
usim-k:
description: "USIM K"
type: string
usim-opc:
description: "USIM OPC"
type: string
required:
- usim-imsi
- usim-k
- usim-opc
detach-ue:
description: "Detach from AGW."
remove-default-gw:
description: "Remove default gateway"
\ No newline at end of file
# Learn more about charmcraft.yaml configuration at:
# https://juju.is/docs/sdk/charmcraft-config
type: "charm"
bases:
- build-on:
- name: "ubuntu"
channel: "20.04"
run-on:
- name: "ubuntu"
channel: "20.04"
parts:
charm:
build-packages: [git]
# Copyright 2020 David Garcia
# See LICENSE file for licensing details.
#
# This is only an example, and you should edit to suit your needs.
# If you don't need config, you can remove the file entirely.
options:
bind_address_subnet:
type: string
description: |
The selected bind address will need to be part of this subnet.
If this is not set, it will use the IP address from the default interface.
default: ""
mme_addr:
type: string
description: |
This is MME address from AGW
default: ""
enb-name:
type: string
description: |
TODO
default: dummyENB01
enb-mcc:
type: int
description: |
TODO
default: 722
enb-mnc:
type: int
description: |
TODO
default: 17
enb-rf-device-name:
type: string
description: |
TODO
default: "zmq"
enb-rf-device-args:
type: string
description: |
TODO
default: fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
ue-usim-algo:
type: string
description: |
TODO
default: milenage
ue-nas-apn:
type: string
description: |
TODO
default: default
ue-device-name:
type: string
description: |
TODO
default: zmq
ue-device-args:
type: string
description: |
TODO
default: tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6
#!/bin/sh
JUJU_DISPATCH_PATH="${JUJU_DISPATCH_PATH:-$0}" PYTHONPATH=lib:venv ./src/charm.py
#!/bin/sh
JUJU_DISPATCH_PATH="${JUJU_DISPATCH_PATH:-$0}" PYTHONPATH=lib:venv ./src/charm.py
#!/bin/sh
JUJU_DISPATCH_PATH="${JUJU_DISPATCH_PATH:-$0}" PYTHONPATH=lib:venv ./src/charm.py
#!/bin/sh
JUJU_DISPATCH_PATH="${JUJU_DISPATCH_PATH:-$0}" PYTHONPATH=lib:venv ./src/charm.py
analysis:
attributes:
- name: language
result: python
- name: framework
result: unknown
bases:
- architectures:
- amd64
channel: '20.04'
name: ubuntu
charmcraft-started-at: '2022-06-11T23:35:09.967653Z'
charmcraft-version: 1.7.1
# Copyright 2020 David Garcia
# See LICENSE file for licensing details.
name: srs-enb-ue
description: |
TODO: fill out the charm's description
summary: |
TODO: fill out the charm's summary
series:
- focal
-r requirements.txt
flake8
charmcraft
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment