├── .github └── workflows │ ├── build-test.yml │ ├── code-scan.yml │ └── release.yml ├── .gitignore ├── .reuse └── dep5 ├── CODE_OF_CONDUCT.md ├── LICENSES └── Apache-2.0.txt ├── Makefile ├── README.md ├── ah-eson-test-server ├── Chart.yaml ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ ├── service.yaml │ └── serviceaccount.yaml └── values.yaml ├── build ├── bin │ ├── helm_lint.sh │ └── version_check.sh └── cmd │ └── index2md │ └── index2md.go ├── fb-ah-gui ├── .helmignore ├── Chart.yaml ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── fb-ah-xapp ├── .helmignore ├── Chart.yaml ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── fb-kpimon-xapp ├── Chart.yaml ├── files │ ├── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key │ └── configs │ │ ├── config.json │ │ └── onos.json ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ ├── service.yaml │ └── servicemonitor.yaml └── values.yaml ├── go.mod ├── go.sum ├── oai-enb-cu ├── Chart.yaml ├── README.md ├── templates │ ├── _helpers.tpl │ ├── bin │ │ ├── _init_enb_cu.sh.tpl │ │ └── _run_enb_cu.sh.tpl │ ├── configmap-cu.yaml │ └── statefulset-cu.yaml └── values.yaml ├── oai-enb-du ├── Chart.yaml ├── README.md ├── templates │ ├── _du_conf.tpl │ ├── _du_conf_usrp.tpl │ ├── _helpers.tpl │ ├── bin │ │ ├── _init_enb_du.sh.tpl │ │ ├── _run_enb_du.sh.tpl │ │ └── _run_enb_du_usrp.sh.tpl │ ├── configmap-du.yaml │ └── statefulset-du.yaml └── values.yaml ├── oai-ue ├── Chart.yaml ├── README.md ├── templates │ ├── _helpers.tpl │ ├── _ue_conf.tpl │ ├── _ue_sim_conf.tpl │ ├── bin │ │ ├── _gen_ue_sim.sh.tpl │ │ ├── _init_ue.sh.tpl │ │ ├── _run_ue.sh.tpl │ │ └── _run_ue_usrp.sh.tpl │ ├── configmap-ue.yaml │ └── statefulset-ue.yaml └── values.yaml ├── onos-a1t ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── onos-e2t ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── raftcluster.yaml │ ├── raftstore.yaml │ ├── role.yaml │ ├── rolebinding.yaml │ ├── secret.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ └── storageprofile.yaml └── values.yaml ├── onos-exporter ├── .gitignore ├── .helmignore ├── Chart.yaml ├── files │ └── dashboards │ │ ├── kubernetes-logs-pod.json │ │ ├── kubernetes-logs-pod.json.license │ │ ├── sdran-kpis.json │ │ ├── sdran-kpis.json.license │ │ ├── sdran.json │ │ └── sdran.json.license ├── templates │ ├── _helpers.tpl │ ├── configmap-dashboards.yaml │ ├── configmap-datasources.yaml │ ├── deployment.yaml │ ├── service.yaml │ └── servicemonitor.yaml └── values.yaml ├── onos-kpimon ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ ├── service.yaml │ └── topo.yaml └── values.yaml ├── onos-mho ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── onos-mlb ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── onos-o1t ├── .helmignore ├── Chart.yaml ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ ├── service.yaml │ └── serviceaccount.yaml └── values.yaml ├── onos-pci ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ ├── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key │ └── test │ │ ├── README.md │ │ ├── scale-model.yaml │ │ └── scale-rc-pci.yaml ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── onos-rsm ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── onos-uenib ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ └── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key ├── templates │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── raftcluster.yaml │ ├── raftstore.yaml │ ├── role.yaml │ ├── rolebinding.yaml │ ├── secret.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ └── storageprofile.yaml └── values.yaml ├── ran-simulator ├── .helmignore ├── Chart.yaml ├── README.md ├── files │ ├── certs │ │ ├── README.md │ │ ├── tls.cacrt │ │ ├── tls.crt │ │ └── tls.key │ ├── metrics │ │ ├── metrics.yaml │ │ ├── scale-rc-pci.yaml │ │ ├── three-cell-metrics.yaml │ │ └── three-cell-n-node-metrics.yaml │ ├── model │ │ ├── model-5cell-100ue.yaml │ │ ├── model-7cell-140ue.yaml │ │ ├── model.yaml │ │ ├── one-cell-model.yaml │ │ ├── scale-50-150.yaml │ │ ├── scale-model.yaml │ │ ├── three-cell-model.yaml │ │ ├── three-cell-n-node-model.yaml │ │ └── two-cell-two-node-model.yaml │ └── topo │ │ ├── model-topo.yaml │ │ ├── scale-50-150-topo.yaml │ │ ├── scale-model-topo.yaml │ │ ├── three-cell-model-topo.yaml │ │ └── three-cell-n-node-topo.yaml ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── deployment.yaml │ ├── secret.yaml │ └── service.yaml └── values.yaml ├── rimedo-ts ├── .helmignore ├── Chart.yaml ├── README.md ├── templates │ ├── _helpers.tpl │ ├── deployment.yaml │ └── service.yaml └── values.yaml ├── sd-ran ├── .gitignore ├── Chart.yaml ├── README.md ├── files │ └── configs │ │ ├── README.md │ │ ├── berlin-honeycomb-331-3-A-gnmi.yaml │ │ ├── berlin-honeycomb-331-3-B-gnmi.yaml │ │ ├── berlin-honeycomb-331-3-C-gnmi.yaml │ │ ├── berlin-honeycomb-331-3-topo.yaml │ │ ├── berlin-honeycomb-4-3-gnmi.yaml │ │ ├── berlin-honeycomb-4-3-topo.yaml │ │ └── berlin-honeycomb-4-3-toponew.yaml ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── configmap.yaml │ ├── raftcluster.yaml │ └── topo-kinds.yaml ├── tests │ └── sd-ran.go └── values.yaml └── test └── main.go /.github/workflows/build-test.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright 2024 Intel Corporation 3 | 4 | name: Build and test workflow 5 | on: 6 | pull_request: 7 | branches: 8 | - master 9 | push: 10 | branches: 11 | - master 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v4 18 | with: 19 | fetch-depth: 0 20 | - name: Set up Helm 21 | uses: azure/setup-helm@v4 22 | with: 23 | version: latest 24 | token: ${{ secrets.GH_ONOS_PAT }} 25 | - name: build 26 | run: make deps 27 | test: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - uses: actions/checkout@v4 31 | with: 32 | fetch-depth: 0 33 | - name: Unit tests 34 | run: make test 35 | -------------------------------------------------------------------------------- /.github/workflows/code-scan.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright 2024 Intel Corporation 3 | 4 | name: Code scan workflow 5 | 6 | on: 7 | pull_request: 8 | branches: 9 | - master 10 | push: 11 | branches: 12 | - master 13 | 14 | jobs: 15 | version-check: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v4 19 | with: 20 | fetch-depth: 0 21 | - name: check version 22 | run: | 23 | sudo snap install yq 24 | export COMPARISON_BRANCH=origin/master 25 | git branch -a 26 | make check-version 27 | lint: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - uses: actions/checkout@v4 31 | with: 32 | fetch-depth: 0 33 | - name: helm-lint 34 | run: make lint 35 | license: 36 | runs-on: ubuntu-latest 37 | steps: 38 | - uses: actions/checkout@v4 39 | - name: check license 40 | run: make license 41 | fossa-check: 42 | runs-on: ubuntu-latest 43 | steps: 44 | - uses: actions/checkout@v4 45 | - name: FOSSA scan 46 | uses: fossa-contrib/fossa-action@v3 47 | with: 48 | fossa-api-key: 6d304c09a3ec097ba4517724e4a4d17d 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | .idea/ 6 | build/release 7 | build/_output 8 | build/build-tools 9 | 10 | venv 11 | *.tgz 12 | staging -------------------------------------------------------------------------------- /.reuse/dep5: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | 3 | Files: VERSION .gitreview go.mod go.sum */NOTES.txt *.cacrt *.crt *.key *.tree *.json rimedo-ts/* 4 | Copyright: 2021 Open Networking Foundation 5 | License: Apache-2.0 6 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | We expect all ONF employees, member companies, and participants to abide by our [Code of Conduct](https://www.opennetworking.org/wp-content/themes/onf/img/onf-code-of-conduct.pdf). 8 | 9 | If you are being harassed, notice that someone else is being harassed, or have any other concerns involving someone’s welfare, please notify a member of the ONF team or email [conduct@opennetworking.org](conduct@opennetworking.org). 10 | 11 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | .PHONY: all test clean version-check 6 | 7 | COMPARISON_BRANCH ?= master 8 | 9 | all: deps 10 | 11 | lint: # @HELP run helm lint 12 | ./build/bin/helm_lint.sh 13 | 14 | check-version: # @HELP run the version checker on the charts 15 | COMPARISON_BRANCH=${COMPARISON_BRANCH} ./build/bin/version_check.sh all 16 | 17 | test: # @HELP run the integration tests 18 | test: deps license lint 19 | 20 | clean:: # @HELP clean up temporary files for SD-RAN umbrella. 21 | rm -rf sd-ran/charts sd-ran/Chart.lock 22 | 23 | deps: # @HELP build dependencies for SD-RAN Umbrella local charts. 24 | deps: clean 25 | helm dep build sd-ran 26 | helm dep build onos-exporter 27 | 28 | license: # @HELP run license checks 29 | rm -rf venv 30 | python3 -m venv venv 31 | . ./venv/bin/activate;\ 32 | python3 -m pip install --upgrade pip;\ 33 | python3 -m pip install reuse;\ 34 | reuse lint 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | # ONOS SDRAN Helm charts 8 | [![Build Status](https://travis-ci.com/onosproject/sdran-helm-charts.svg?token=GojsizpApAX76HQhL5pw&branch=master)](https://travis-ci.com/onosproject/sdran-helm-charts) 9 | [![Integration Test Status](https://img.shields.io/travis/onosproject/onos-test?label=integration-tests&logo=integration-tests)](https://travis-ci.com/onosproject/onos-test) 10 | [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gojp/goreportcard/blob/master/LICENSE) 11 | 12 | This repository contains helm charts for the different µONOS services and 13 | overarching helm charts for a set of microservices yielding a full control 14 | plane deployment. 15 | 16 | Each folder contains the helm chart of that specific project. 17 | e.g. `onos-config` folder contains the `onos-config` helm chart. 18 | 19 | The overarching helm chart to deploy `micro-onos` is in the `sd-ran` folder. 20 | 21 | The `micro-onos` documentation project provides [step by step documentation](https://docs.onosproject.org/developers/deploy_with_helm/) 22 | on how to deploy a whole `micro-onos` with Helm. You can also deploy each 23 | service separately by following the the `How to deploy with Helm` documentation 24 | contained in each service. 25 | For example [this](https://docs.onosproject.org/onos-config/docs/deployment/) is the `onos-config` one. 26 | -------------------------------------------------------------------------------- /ah-eson-test-server/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: ah-eson-test-server 7 | description: FB ah-eson-test-server 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.0.5 11 | appVersion: 0.0.3 12 | keywords: 13 | - onos 14 | - sdn 15 | - ric 16 | - fb 17 | home: https://connectivity.fb.com/ 18 | maintainers: 19 | - name: Maveric Team 20 | email: fbc_maveric@fb.com 21 | -------------------------------------------------------------------------------- /ah-eson-test-server/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | {{/* vim: set filetype=mustache: */}} 5 | {{/* 6 | Expand the name of the chart. 7 | */}} 8 | {{- define "ah-eson-test-server.name" -}} 9 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 10 | {{- end -}} 11 | 12 | {{/* 13 | Create a default fully qualified app name. 14 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 15 | If release name contains chart name it will be used as a full name. 16 | */}} 17 | {{- define "ah-eson-test-server.fullname" -}} 18 | {{- if .Values.fullnameOverride -}} 19 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 20 | {{- else -}} 21 | {{- $name := default .Chart.Name .Values.nameOverride -}} 22 | {{- if contains $name .Release.Name -}} 23 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} 24 | {{- else -}} 25 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 26 | {{- end -}} 27 | {{- end -}} 28 | {{- end -}} 29 | 30 | {{/* 31 | Create chart name and version as used by the chart label. 32 | */}} 33 | {{- define "ah-eson-test-server.chart" -}} 34 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} 35 | {{- end -}} 36 | 37 | {{/* 38 | Common labels 39 | */}} 40 | {{- define "ah-eson-test-server.labels" -}} 41 | helm.sh/chart: {{ include "ah-eson-test-server.chart" . }} 42 | {{ include "ah-eson-test-server.selectorLabels" . }} 43 | {{- if .Chart.AppVersion }} 44 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 45 | {{- end }} 46 | app.kubernetes.io/managed-by: {{ .Release.Service }} 47 | {{- end -}} 48 | 49 | {{/* 50 | Selector labels 51 | */}} 52 | {{- define "ah-eson-test-server.selectorLabels" -}} 53 | app.kubernetes.io/name: {{ include "ah-eson-test-server.name" . }} 54 | app.kubernetes.io/instance: {{ .Release.Name }} 55 | {{- end -}} 56 | -------------------------------------------------------------------------------- /ah-eson-test-server/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "ah-eson-test-server.fullname" . }}-config 9 | labels: 10 | app: {{ template "ah-eson-test-server.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | -------------------------------------------------------------------------------- /ah-eson-test-server/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "ah-eson-test-server.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /ah-eson-test-server/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: Service 8 | metadata: 9 | name: {{ template "ah-eson-test-server.fullname" . }} 10 | labels: 11 | app: {{ template "ah-eson-test-server.fullname" . }} 12 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 13 | release: "{{ .Release.Name }}" 14 | heritage: "{{ .Release.Service }}" 15 | {{- include "ah-eson-test-server.labels" . | nindent 4 }} 16 | spec: 17 | type: ClusterIP 18 | selector: 19 | name: {{ template "ah-eson-test-server.fullname" . }} 20 | app: ah-eson-test-server 21 | type: ah-eson-test-server 22 | resource: {{ template "ah-eson-test-server.fullname" . }} 23 | {{- include "ah-eson-test-server.selectorLabels" . | nindent 4 }} 24 | ports: 25 | - name: eson 26 | port: {{ .Values.servicePort }} 27 | -------------------------------------------------------------------------------- /ah-eson-test-server/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: ServiceAccount 8 | metadata: 9 | name: ah-eson-test-server 10 | namespace: {{ .Release.Namespace }} 11 | -------------------------------------------------------------------------------- /ah-eson-test-server/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # Default values for ah-eson-test-server. 5 | # This is a YAML-formatted file. 6 | # Declare variables to be passed into your templates. 7 | 8 | replicaCount: 1 9 | 10 | image: 11 | repository: onosproject/ah-eson-test-server 12 | tag: 0.0.3 13 | pullPolicy: IfNotPresent 14 | pullSecrets: [] 15 | 16 | imagePullSecrets: [] 17 | nameOverride: "" 18 | fullnameOverride: "ah-eson-test-server" 19 | 20 | command: ["./server.py"] 21 | servicePort: 51050 22 | 23 | storage: {} 24 | 25 | resources: {} 26 | # We usually recommend not to specify default resources and to leave this as a conscious 27 | # choice for the user. This also increases chances charts run on environments with little 28 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 29 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 30 | # limits: 31 | # cpu: 100m 32 | # memory: 128Mi 33 | # requests: 34 | # cpu: 100m 35 | # memory: 128Mi 36 | 37 | nodeSelector: {} 38 | 39 | tolerations: [] 40 | 41 | affinity: {} 42 | -------------------------------------------------------------------------------- /build/bin/helm_lint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: Apache-2.0 3 | # Copyright 2024 Intel Corporation 4 | 5 | exit_code=0 6 | 7 | for dir in $(find . -maxdepth 1 -mindepth 1 -type d); do 8 | if [[ -f "$dir/Chart.yaml" ]]; then 9 | helm lint "$dir" 10 | if [ $? == 1 ] 11 | then 12 | exit_code=2 13 | fi 14 | fi 15 | done 16 | exit $exit_code -------------------------------------------------------------------------------- /fb-ah-gui/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /fb-ah-gui/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: fb-ah-gui 7 | description: FB AirHop GUI 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.0.6 11 | appVersion: 0.0.2 12 | keywords: 13 | - fb 14 | home: https://connectivity.fb.com/ 15 | maintainers: 16 | - name: Maveric Team 17 | email: fbc_maveric@fb.com 18 | -------------------------------------------------------------------------------- /fb-ah-gui/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{/* vim: set filetype=mustache: */}} 6 | {{/* 7 | Expand the name of the chart. 8 | */}} 9 | {{- define "fb-ah-gui.name" -}} 10 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 11 | {{- end -}} 12 | 13 | {{/* 14 | Create a default fully qualified app name. 15 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 16 | If release name contains chart name it will be used as a full name. 17 | */}} 18 | {{- define "fb-ah-gui.fullname" -}} 19 | {{- if .Values.fullnameOverride -}} 20 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 21 | {{- else -}} 22 | {{- $name := default .Chart.Name .Values.nameOverride -}} 23 | {{- if contains $name .Release.Name -}} 24 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} 25 | {{- else -}} 26 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 27 | {{- end -}} 28 | {{- end -}} 29 | {{- end -}} 30 | 31 | {{/* 32 | Create chart name and version as used by the chart label. 33 | */}} 34 | {{- define "fb-ah-gui.chart" -}} 35 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} 36 | {{- end -}} 37 | 38 | {{/* 39 | Common labels 40 | */}} 41 | {{- define "fb-ah-gui.labels" -}} 42 | helm.sh/chart: {{ include "fb-ah-gui.chart" . }} 43 | {{ include "fb-ah-gui.selectorLabels" . }} 44 | {{- if .Chart.AppVersion }} 45 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 46 | {{- end }} 47 | app.kubernetes.io/managed-by: {{ .Release.Service }} 48 | {{- end -}} 49 | 50 | {{/* 51 | Selector labels 52 | */}} 53 | {{- define "fb-ah-gui.selectorLabels" -}} 54 | app.kubernetes.io/name: {{ include "fb-ah-gui.name" . }} 55 | app.kubernetes.io/instance: {{ .Release.Name }} 56 | {{- end -}} 57 | -------------------------------------------------------------------------------- /fb-ah-gui/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "fb-ah-gui.fullname" . }}-config 9 | labels: 10 | app: {{ template "fb-ah-gui.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | -------------------------------------------------------------------------------- /fb-ah-gui/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "fb-ah-gui.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /fb-ah-gui/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: Service 8 | metadata: 9 | name: {{ template "fb-ah-gui.fullname" . }} 10 | labels: 11 | app: {{ template "fb-ah-gui.fullname" . }} 12 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 13 | release: "{{ .Release.Name }}" 14 | heritage: "{{ .Release.Service }}" 15 | {{- include "fb-ah-gui.labels" . | nindent 4 }} 16 | spec: 17 | type: ClusterIP 18 | selector: 19 | name: {{ template "fb-ah-gui.fullname" . }} 20 | app: airhop 21 | type: gui 22 | resource: {{ template "fb-ah-gui.fullname" . }} 23 | {{- include "fb-ah-gui.selectorLabels" . | nindent 4 }} 24 | ports: 25 | - name: http 26 | port: {{ .Values.service.http.port }} 27 | 28 | {{- if .Values.service.http.nodePort.enabled }} 29 | --- 30 | apiVersion: v1 31 | kind: Service 32 | metadata: 33 | name: {{ template "fb-ah-gui.fullname" . }}-external 34 | labels: 35 | app: {{ template "fb-ah-gui.fullname" . }} 36 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 37 | release: "{{ .Release.Name }}" 38 | heritage: "{{ .Release.Service }}" 39 | {{- include "fb-ah-gui.labels" . | nindent 4 }} 40 | spec: 41 | type: NodePort 42 | selector: 43 | name: {{ template "fb-ah-gui.fullname" . }} 44 | app: airhop 45 | type: gui 46 | resource: {{ template "fb-ah-gui.fullname" . }} 47 | {{- include "fb-ah-gui.selectorLabels" . | nindent 4 }} 48 | ports: 49 | - name: http 50 | port: {{ .Values.service.http.port }} 51 | nodePort: {{ .Values.service.http.nodePort.port }} 52 | protocol: TCP 53 | {{- end }} 54 | -------------------------------------------------------------------------------- /fb-ah-gui/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for fb-ah-xapp. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | replicaCount: 1 10 | 11 | image: 12 | repository: onosproject/fb-ah-gui 13 | tag: 0.0.2 14 | pullPolicy: IfNotPresent 15 | pullSecrets: [] 16 | 17 | imagePullSecrets: [] 18 | nameOverride: "" 19 | fullnameOverride: "fb-ah-gui" 20 | 21 | storage: {} 22 | 23 | config: 24 | gmapsApiKey: "" 25 | 26 | service: 27 | http: 28 | port: 8080 29 | nodePort: 30 | enabled: true 31 | port: 30095 32 | 33 | resources: {} 34 | # We usually recommend not to specify default resources and to leave this as a conscious 35 | # choice for the user. This also increases chances charts run on environments with little 36 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 37 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 38 | # limits: 39 | # cpu: 100m 40 | # memory: 128Mi 41 | # requests: 42 | # cpu: 100m 43 | # memory: 128Mi 44 | 45 | nodeSelector: {} 46 | 47 | tolerations: [] 48 | 49 | affinity: {} 50 | -------------------------------------------------------------------------------- /fb-ah-xapp/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /fb-ah-xapp/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: fb-ah-xapp 7 | description: FB AirHop eSON xApp Adapter 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.0.18 11 | appVersion: v0.0.28 12 | keywords: 13 | - onos 14 | - sdn 15 | - ric 16 | - fb 17 | home: https://connectivity.fb.com/ 18 | maintainers: 19 | - name: Maveric Team 20 | email: fbc_maveric@fb.com 21 | -------------------------------------------------------------------------------- /fb-ah-xapp/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-ric.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-ric/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /fb-ah-xapp/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /fb-ah-xapp/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDdDCCAlwCFBveh0tyYQtXayQPaXgW+5dLuK8DMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMTkwNzE2MTkwNjU2WhcNMjkwNzEzMTkwNjU2 6 | WjB7MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEnMCUGA1UEAwwe 8 | b25vcy1jb25maWcub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEF 9 | AAOCAQ8AMIIBCgKCAQEAs1ER/FG9COwYnyDOxxPIGJb8p9l59GLqYdnb3PH5EI6y 10 | AfhpJDhp+Z/RN8v+/NhH6JPYquPxRKWmHhRXmwEHgYREfkqK+HikTv86H5Tq/Xzz 11 | BqadHkopMz+Q66Wo4LoD3M+Vl/11gUU9s7SIWBmcJly9ETQN5nddeGa+v+Mg9QoS 12 | W/8CK7Y1iCguu3h2FYju+OQ7HJ9hO5abs3XiuJJJN9hPJRr1O1UtgUzlVbj2QLcT 13 | BDntIxPKUc3/M5IpzgLt2vgHW9VMO5vFOXsr+UyQd/lByVXTxQKS5aw0kwMUJSdN 14 | vasV3FAz4usP9IBx5Pq3MwMQF1uO5zJ8Xo2ytlsI0wIDAQABMA0GCSqGSIb3DQEB 15 | CwUAA4IBAQB9W8/ygG87QLR37GZfutYLi9hBJQHSppCxZB2SBP1yl/Js1hHM0paP 16 | ywlbRbmuCv7LM3CiaXdJo9w7onYha/BtJIYG0YHZqnXLjk0uufP07CBISGKXnfp0 17 | y35YqruHjXtkoKdcqOGZsuz88iQ579PrvJpWCOon936FM7vBzKeBoNbBso52vt7b 18 | FtKISoGAr8XwCrFYxgHOjYUP8A9d9ylaa3Hgfd7Xul2BKO3tPx/7oFxiaz40ATuQ 19 | wN9OEsvNmP2TcrLEFKoUJBtyYV9gFCqQPuf7obwbTV5m1JW+1+NEsKNcWemdKU6x 20 | N0u+jCC7D7so8pjqfZRouCW2dKVlIRjj 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /fb-ah-xapp/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzURH8Ub0I7Bif 3 | IM7HE8gYlvyn2Xn0Yuph2dvc8fkQjrIB+GkkOGn5n9E3y/782Efok9iq4/FEpaYe 4 | FFebAQeBhER+Sor4eKRO/zoflOr9fPMGpp0eSikzP5DrpajgugPcz5WX/XWBRT2z 5 | tIhYGZwmXL0RNA3md114Zr6/4yD1ChJb/wIrtjWIKC67eHYViO745Dscn2E7lpuz 6 | deK4kkk32E8lGvU7VS2BTOVVuPZAtxMEOe0jE8pRzf8zkinOAu3a+Adb1Uw7m8U5 7 | eyv5TJB3+UHJVdPFApLlrDSTAxQlJ029qxXcUDPi6w/0gHHk+rczAxAXW47nMnxe 8 | jbK2WwjTAgMBAAECggEBALE57iHIk6Hu3wLfhR9DUN/k0r/+dMdywB6IGQKNcVHJ 9 | BuxlnV08GJmsODcCevlhteiLv3hfI4Vqhv1xs4gygz2iAaQkfqfHbPXa0ZKHN53j 10 | 0bqAEAfw2jmZmN0edQPvNYQW8s4upuVmDu6+/oa8gRV1UTRgk2B2Fz65pcu3a0pi 11 | yVeZzeAO/vD7WNP3uM7Yuv0AQTKKLvOqZmKLeDwPeC+2sbi03opYbIaEl+OJ94DX 12 | 9hCm1/vqojlzw+BHrxGS8bqXMnJnqxLep/gmbvL0Iy92SJgEBk6l8t7xzpBqSjDW 13 | +DjDLqpda6r/Dy9b5hBZ0a/4V+fRJPz4S/k+qjp9DyECgYEA7KMQur7QZcSAWPPM 14 | ZV5TM6+SDYn6TP9csbyB4IbOfeLdIkVKY+svVz2m7FynfQb4whtxERbMy0QjYEgc 15 | us3p/QVjHBs/JZIdtIg5ff6qgOFAkuaCXEJKyH4wcEA091cr6HWslWCHzop2SD+T 16 | dpvSgXJXpx1RYP/6X3sUf1mKAOMCgYEAwf1K4fOYZwyT44VPurxhmzgDWW2PKm6I 17 | gCOZN9EN2Mvt0J5zKKoHw8ORHGN9zxLMyB11803Uwm7nceApM3FUacmLHP05Q1Vo 18 | ukHVLoFQYwXLQzSWiZbtxcbMK3P1EU2Sg5+yfoRf6usmRIWDlr4+TIzT3a20nhV0 19 | olOj3xFtC1ECgYBHyeiHXuAGH6j4U24MyqLfKUJbzSIcPdQ3L4MPRJZcZnjDrtW0 20 | nmLMSq3bQvik23qYGI8iqhITEGbTDM16doGn+vxoSHPNyBgu7qzSZnH/i1Z1umyN 21 | 5KafUHkNdM0cxFtTuG9VGeXZaPQdUvw/nWItVyz0S9amYMHqOYKsZ9OQFQKBgQC6 22 | tfYq//CBzqNQ63DPxJ0VbpYars6LApQy8RB5nqb7MVyV3MvuKakLjOHQNxpSAkBD 23 | o8dxBEpxUZlGC4DcWInsv+U7Y6aH3l7MVqy+9AvRIzR+XNE/YJs+Lpc4g4UuwEDy 24 | mvSLvREs5GOStAbxQe5oc2tAA/7B4Ni/nE0vWHBh4QKBgDUukLjK4i+AqCm6Z4iu 25 | /FcKtNC2+BLxZ2sjaRVn78aQ2DXWaKWVaKwSBJOtLghOyjAzvH8VDOtvp92rQgDk 26 | ltnoTp09B9B80dNOVqIi113Inr89N/QDNVYctqPbzizbWHlf3ENwVklwAXhmOIbN 27 | 1l0Cge8ERKGcAIl9SsTl+5Se 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /fb-ah-xapp/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{/* vim: set filetype=mustache: */}} 6 | {{/* 7 | Expand the name of the chart. 8 | */}} 9 | {{- define "fb-ah-xapp.name" -}} 10 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 11 | {{- end -}} 12 | 13 | {{/* 14 | Create a default fully qualified app name. 15 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 16 | If release name contains chart name it will be used as a full name. 17 | */}} 18 | {{- define "fb-ah-xapp.fullname" -}} 19 | {{- if .Values.fullnameOverride -}} 20 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 21 | {{- else -}} 22 | {{- $name := default .Chart.Name .Values.nameOverride -}} 23 | {{- if contains $name .Release.Name -}} 24 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} 25 | {{- else -}} 26 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 27 | {{- end -}} 28 | {{- end -}} 29 | {{- end -}} 30 | 31 | {{/* 32 | Create chart name and version as used by the chart label. 33 | */}} 34 | {{- define "fb-ah-xapp.chart" -}} 35 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} 36 | {{- end -}} 37 | 38 | {{/* 39 | Common labels 40 | */}} 41 | {{- define "fb-ah-xapp.labels" -}} 42 | helm.sh/chart: {{ include "fb-ah-xapp.chart" . }} 43 | {{ include "fb-ah-xapp.selectorLabels" . }} 44 | {{- if .Chart.AppVersion }} 45 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 46 | {{- end }} 47 | app.kubernetes.io/managed-by: {{ .Release.Service }} 48 | {{- end -}} 49 | 50 | {{/* 51 | Selector labels 52 | */}} 53 | {{- define "fb-ah-xapp.selectorLabels" -}} 54 | app.kubernetes.io/name: {{ include "fb-ah-xapp.name" . }} 55 | app.kubernetes.io/instance: {{ .Release.Name }} 56 | {{- end -}} 57 | -------------------------------------------------------------------------------- /fb-ah-xapp/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "fb-ah-xapp.fullname" . }}-config 9 | labels: 10 | app: {{ template "fb-ah-xapp.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | config.json: |- 16 | {{ .Files.Get "files/configs/config.json" | indent 4}} 17 | -------------------------------------------------------------------------------- /fb-ah-xapp/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "fb-ah-xapp.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /fb-ah-xapp/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: Service 8 | metadata: 9 | name: {{ template "fb-ah-xapp.fullname" . }} 10 | labels: 11 | app: {{ template "fb-ah-xapp.fullname" . }} 12 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 13 | release: "{{ .Release.Name }}" 14 | heritage: "{{ .Release.Service }}" 15 | {{- include "fb-ah-xapp.labels" . | nindent 4 }} 16 | spec: 17 | type: ClusterIP 18 | selector: 19 | name: {{ template "fb-ah-xapp.fullname" . }} 20 | app: airhop 21 | type: pci 22 | resource: {{ template "fb-ah-xapp.fullname" . }} 23 | {{- include "fb-ah-xapp.selectorLabels" . | nindent 4 }} 24 | ports: 25 | - name: http 26 | port: 8080 27 | -------------------------------------------------------------------------------- /fb-ah-xapp/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for fb-ah-xapp. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | replicaCount: 1 10 | 11 | image: 12 | repository: onosproject/fb-ah-xapp 13 | tag: v0.0.26 14 | pullPolicy: IfNotPresent 15 | pullSecrets: [] 16 | 17 | imagePullSecrets: [] 18 | nameOverride: "" 19 | fullnameOverride: "fb-ah-xapp" 20 | 21 | storage: {} 22 | 23 | config: 24 | servicePath: "/etc/onos/config" 25 | ric: 26 | e2tEndpoint: "onos-e2t:5150" 27 | topoEndpoint: "onos-topo:5150" 28 | esonEndpoint: "ah-eson-test-server:51050" 29 | esonSubscribeEnabled: true 30 | # 0 or unspecified means report triggered upon change 31 | indicationTriggerPeriodicSeconds: 0 32 | # 0 or unspecified means no artificial delay in processing indication messages (useful for demo) 33 | processingDelay: 0 34 | # period of update of capacity information to eson (seconds) 35 | capacityUpdatePeriod: 10 36 | # when airhop change requests are received, do not send pci e2 control messages 37 | # (curl -X POST host:8080/pci?items=0x13842601454c003,164 still works) 38 | pciDisableControl: false 39 | # when airhop change requests are received, do not send mlb (ocn) e2 control messages 40 | # (curl -X POST host:8080/cio?items=0x1384274550001,0x1384274550003,5 still works) 41 | mlbDisableControl: false 42 | 43 | resources: {} 44 | # We usually recommend not to specify default resources and to leave this as a conscious 45 | # choice for the user. This also increases chances charts run on environments with little 46 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 47 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 48 | # limits: 49 | # cpu: 100m 50 | # memory: 128Mi 51 | # requests: 52 | # cpu: 100m 53 | # memory: 128Mi 54 | 55 | nodeSelector: {} 56 | 57 | tolerations: [] 58 | 59 | affinity: {} 60 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: fb-kpimon-xapp 7 | description: FB kpimon python xApp 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.0.11 11 | appVersion: v0.0.27 12 | keywords: 13 | - onos 14 | - sdn 15 | - ric 16 | - fb 17 | home: https://connectivity.fb.com/ 18 | maintainers: 19 | - name: Maveric Team 20 | email: fbc_maveric@fb.com 21 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-ric.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-ric/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /fb-kpimon-xapp/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDdDCCAlwCFBveh0tyYQtXayQPaXgW+5dLuK8DMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMTkwNzE2MTkwNjU2WhcNMjkwNzEzMTkwNjU2 6 | WjB7MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEnMCUGA1UEAwwe 8 | b25vcy1jb25maWcub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEF 9 | AAOCAQ8AMIIBCgKCAQEAs1ER/FG9COwYnyDOxxPIGJb8p9l59GLqYdnb3PH5EI6y 10 | AfhpJDhp+Z/RN8v+/NhH6JPYquPxRKWmHhRXmwEHgYREfkqK+HikTv86H5Tq/Xzz 11 | BqadHkopMz+Q66Wo4LoD3M+Vl/11gUU9s7SIWBmcJly9ETQN5nddeGa+v+Mg9QoS 12 | W/8CK7Y1iCguu3h2FYju+OQ7HJ9hO5abs3XiuJJJN9hPJRr1O1UtgUzlVbj2QLcT 13 | BDntIxPKUc3/M5IpzgLt2vgHW9VMO5vFOXsr+UyQd/lByVXTxQKS5aw0kwMUJSdN 14 | vasV3FAz4usP9IBx5Pq3MwMQF1uO5zJ8Xo2ytlsI0wIDAQABMA0GCSqGSIb3DQEB 15 | CwUAA4IBAQB9W8/ygG87QLR37GZfutYLi9hBJQHSppCxZB2SBP1yl/Js1hHM0paP 16 | ywlbRbmuCv7LM3CiaXdJo9w7onYha/BtJIYG0YHZqnXLjk0uufP07CBISGKXnfp0 17 | y35YqruHjXtkoKdcqOGZsuz88iQ579PrvJpWCOon936FM7vBzKeBoNbBso52vt7b 18 | FtKISoGAr8XwCrFYxgHOjYUP8A9d9ylaa3Hgfd7Xul2BKO3tPx/7oFxiaz40ATuQ 19 | wN9OEsvNmP2TcrLEFKoUJBtyYV9gFCqQPuf7obwbTV5m1JW+1+NEsKNcWemdKU6x 20 | N0u+jCC7D7so8pjqfZRouCW2dKVlIRjj 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzURH8Ub0I7Bif 3 | IM7HE8gYlvyn2Xn0Yuph2dvc8fkQjrIB+GkkOGn5n9E3y/782Efok9iq4/FEpaYe 4 | FFebAQeBhER+Sor4eKRO/zoflOr9fPMGpp0eSikzP5DrpajgugPcz5WX/XWBRT2z 5 | tIhYGZwmXL0RNA3md114Zr6/4yD1ChJb/wIrtjWIKC67eHYViO745Dscn2E7lpuz 6 | deK4kkk32E8lGvU7VS2BTOVVuPZAtxMEOe0jE8pRzf8zkinOAu3a+Adb1Uw7m8U5 7 | eyv5TJB3+UHJVdPFApLlrDSTAxQlJ029qxXcUDPi6w/0gHHk+rczAxAXW47nMnxe 8 | jbK2WwjTAgMBAAECggEBALE57iHIk6Hu3wLfhR9DUN/k0r/+dMdywB6IGQKNcVHJ 9 | BuxlnV08GJmsODcCevlhteiLv3hfI4Vqhv1xs4gygz2iAaQkfqfHbPXa0ZKHN53j 10 | 0bqAEAfw2jmZmN0edQPvNYQW8s4upuVmDu6+/oa8gRV1UTRgk2B2Fz65pcu3a0pi 11 | yVeZzeAO/vD7WNP3uM7Yuv0AQTKKLvOqZmKLeDwPeC+2sbi03opYbIaEl+OJ94DX 12 | 9hCm1/vqojlzw+BHrxGS8bqXMnJnqxLep/gmbvL0Iy92SJgEBk6l8t7xzpBqSjDW 13 | +DjDLqpda6r/Dy9b5hBZ0a/4V+fRJPz4S/k+qjp9DyECgYEA7KMQur7QZcSAWPPM 14 | ZV5TM6+SDYn6TP9csbyB4IbOfeLdIkVKY+svVz2m7FynfQb4whtxERbMy0QjYEgc 15 | us3p/QVjHBs/JZIdtIg5ff6qgOFAkuaCXEJKyH4wcEA091cr6HWslWCHzop2SD+T 16 | dpvSgXJXpx1RYP/6X3sUf1mKAOMCgYEAwf1K4fOYZwyT44VPurxhmzgDWW2PKm6I 17 | gCOZN9EN2Mvt0J5zKKoHw8ORHGN9zxLMyB11803Uwm7nceApM3FUacmLHP05Q1Vo 18 | ukHVLoFQYwXLQzSWiZbtxcbMK3P1EU2Sg5+yfoRf6usmRIWDlr4+TIzT3a20nhV0 19 | olOj3xFtC1ECgYBHyeiHXuAGH6j4U24MyqLfKUJbzSIcPdQ3L4MPRJZcZnjDrtW0 20 | nmLMSq3bQvik23qYGI8iqhITEGbTDM16doGn+vxoSHPNyBgu7qzSZnH/i1Z1umyN 21 | 5KafUHkNdM0cxFtTuG9VGeXZaPQdUvw/nWItVyz0S9amYMHqOYKsZ9OQFQKBgQC6 22 | tfYq//CBzqNQ63DPxJ0VbpYars6LApQy8RB5nqb7MVyV3MvuKakLjOHQNxpSAkBD 23 | o8dxBEpxUZlGC4DcWInsv+U7Y6aH3l7MVqy+9AvRIzR+XNE/YJs+Lpc4g4UuwEDy 24 | mvSLvREs5GOStAbxQe5oc2tAA/7B4Ni/nE0vWHBh4QKBgDUukLjK4i+AqCm6Z4iu 25 | /FcKtNC2+BLxZ2sjaRVn78aQ2DXWaKWVaKwSBJOtLghOyjAzvH8VDOtvp92rQgDk 26 | ltnoTp09B9B80dNOVqIi113Inr89N/QDNVYctqPbzizbWHlf3ENwVklwAXhmOIbN 27 | 1l0Cge8ERKGcAIl9SsTl+5Se 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/files/configs/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "report_period": { 3 | "interval": 1000, 4 | "granularity": 1000 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/files/configs/onos.json: -------------------------------------------------------------------------------- 1 | { 2 | "e2_client": { 3 | "app_id": "fb-kpimon-v2", 4 | "e2t_endpoint": "onos-e2t:5150", 5 | "ca_path": "/etc/onos/certs/tls.cacrt", 6 | "cert_path": "/etc/onos/certs/tls.crt", 7 | "key_path": "/etc/onos/certs/tls.key" 8 | }, 9 | "sdl_client": { 10 | "topo_endpoint": "onos-topo:5150", 11 | "ca_path": "/etc/onos/certs/tls.cacrt", 12 | "cert_path": "/etc/onos/certs/tls.crt", 13 | "key_path": "/etc/onos/certs/tls.key" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{/* vim: set filetype=mustache: */}} 6 | {{/* 7 | Expand the name of the chart. 8 | */}} 9 | {{- define "fb-kpimon-xapp.name" -}} 10 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 11 | {{- end -}} 12 | 13 | {{/* 14 | Create a default fully qualified app name. 15 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 16 | If release name contains chart name it will be used as a full name. 17 | */}} 18 | {{- define "fb-kpimon-xapp.fullname" -}} 19 | {{- if .Values.fullnameOverride -}} 20 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 21 | {{- else -}} 22 | {{- $name := default .Chart.Name .Values.nameOverride -}} 23 | {{- if contains $name .Release.Name -}} 24 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} 25 | {{- else -}} 26 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 27 | {{- end -}} 28 | {{- end -}} 29 | {{- end -}} 30 | 31 | {{/* 32 | Create chart name and version as used by the chart label. 33 | */}} 34 | {{- define "fb-kpimon-xapp.chart" -}} 35 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} 36 | {{- end -}} 37 | 38 | {{/* 39 | Common labels 40 | */}} 41 | {{- define "fb-kpimon-xapp.labels" -}} 42 | helm.sh/chart: {{ include "fb-kpimon-xapp.chart" . }} 43 | {{ include "fb-kpimon-xapp.selectorLabels" . }} 44 | {{- if .Chart.AppVersion }} 45 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 46 | {{- end }} 47 | app.kubernetes.io/managed-by: {{ .Release.Service }} 48 | {{- end -}} 49 | 50 | {{/* 51 | Selector labels 52 | */}} 53 | {{- define "fb-kpimon-xapp.selectorLabels" -}} 54 | app.kubernetes.io/name: {{ include "fb-kpimon-xapp.name" . }} 55 | app.kubernetes.io/instance: {{ .Release.Name }} 56 | {{- end -}} 57 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "fb-kpimon-xapp.fullname" . }}-config 9 | labels: 10 | app: {{ template "fb-kpimon-xapp.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | config.json: |- 16 | {{ .Files.Get "files/configs/config.json" | indent 4}} 17 | onos.json: |- 18 | {{ .Files.Get "files/configs/onos.json" | indent 4}} 19 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "fb-kpimon-xapp.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: Service 8 | metadata: 9 | name: {{ template "fb-kpimon-xapp.fullname" . }} 10 | labels: 11 | app: {{ template "fb-kpimon-xapp.fullname" . }} 12 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 13 | release: "{{ .Release.Name }}" 14 | heritage: "{{ .Release.Service }}" 15 | {{- include "fb-kpimon-xapp.labels" . | nindent 4 }} 16 | spec: 17 | type: ClusterIP 18 | selector: 19 | name: {{ template "fb-kpimon-xapp.fullname" . }} 20 | app: facebook 21 | type: kpimon 22 | resource: {{ template "fb-kpimon-xapp.fullname" . }} 23 | {{- include "fb-kpimon-xapp.selectorLabels" . | nindent 4 }} 24 | ports: 25 | - name: http 26 | port: 8080 27 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/templates/servicemonitor.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{- if index .Values "enable-prometheus" }} 6 | 7 | apiVersion: monitoring.coreos.com/v1 8 | kind: ServiceMonitor 9 | metadata: 10 | name: {{ template "fb-kpimon-xapp.fullname" . }} 11 | labels: 12 | app: {{ template "fb-kpimon-xapp.fullname" . }} 13 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 14 | release: "{{ .Release.Name }}" 15 | heritage: "{{ .Release.Service }}" 16 | {{- include "fb-kpimon-xapp.labels" . | nindent 4 }} 17 | spec: 18 | selector: 19 | matchLabels: 20 | {{- include "fb-kpimon-xapp.selectorLabels" . | nindent 6 }} 21 | endpoints: 22 | - port: http 23 | path: /metrics 24 | scheme: HTTP 25 | 26 | {{- end }} 27 | -------------------------------------------------------------------------------- /fb-kpimon-xapp/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for fb-kpimon-xapp. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | replicaCount: 1 10 | 11 | image: 12 | repository: onosproject/fb-kpimon-xapp 13 | tag: v0.0.26 14 | pullPolicy: IfNotPresent 15 | pullSecrets: [] 16 | 17 | imagePullSecrets: [] 18 | nameOverride: "" 19 | fullnameOverride: "fb-kpimon-xapp" 20 | 21 | enable-prometheus: false 22 | 23 | config: 24 | servicePath: "/etc/onos/config" 25 | configPath: "/etc/fb/config" 26 | ric: 27 | e2tEndpoint: "onos-e2t:5150" 28 | topoEndpoint: "onos-topo:5150" 29 | 30 | resources: {} 31 | # We usually recommend not to specify default resources and to leave this as a conscious 32 | # choice for the user. This also increases chances charts run on environments with little 33 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 34 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 35 | # limits: 36 | # cpu: 100m 37 | # memory: 128Mi 38 | # requests: 39 | # cpu: 100m 40 | # memory: 128Mi 41 | 42 | nodeSelector: {} 43 | 44 | tolerations: [] 45 | 46 | affinity: {} 47 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/onosproject/sdran-helm-charts 2 | 3 | go 1.14 4 | 5 | require ( 6 | github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect 7 | github.com/mattn/go-colorable v0.1.4 // indirect 8 | github.com/mattn/go-isatty v0.0.12 // indirect 9 | github.com/onosproject/helmit v0.6.13 10 | github.com/onosproject/onos-test v0.6.2 11 | github.com/spf13/viper v1.7.0 12 | github.com/stretchr/testify v1.7.0 13 | k8s.io/client-go v0.21.0 14 | ) 15 | 16 | replace github.com/docker/docker => github.com/docker/engine v1.4.2-0.20200229013735-71373c6105e3 17 | -------------------------------------------------------------------------------- /oai-enb-cu/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: oai-enb-cu 7 | description: OAI CU Chart 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.2.5 11 | appVersion: v0.1.11 12 | keywords: 13 | - onos 14 | - oai 15 | - ran 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /oai-enb-cu/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## OpenAirInterface eNB CU 8 | 9 | Provides a [Helm] chart for deploying OpenAirInterface eNB CU on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /oai-enb-cu/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- /* 2 | 3 | # Copyright 2020-present Open Networking Foundation 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | 7 | */ -}} 8 | 9 | {{/* 10 | Renders a set of standardised labels. 11 | */}} 12 | {{- define "oai-enb-cu.metadata_labels" -}} 13 | {{- $application := index . 0 -}} 14 | {{- $context := index . 1 -}} 15 | release: {{ $context.Release.Name }} 16 | app: {{ $application }} 17 | {{- end -}} 18 | 19 | {{/* 20 | Render the given template. 21 | */}} 22 | {{- define "oai-enb-cu.template" -}} 23 | {{- $name := index . 0 -}} 24 | {{- $context := index . 1 -}} 25 | {{- $last := base $context.Template.Name }} 26 | {{- $wtf := $context.Template.Name | replace $last $name -}} 27 | {{ include $wtf $context }} 28 | {{- end -}} 29 | -------------------------------------------------------------------------------- /oai-enb-cu/templates/bin/_init_enb_cu.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | apt update; apt install -y net-tools iproute2 9 | 10 | cp /opt/oai/conf_files/cu.conf /opt/oai/share/cu.conf 11 | 12 | S1MME_IFACE={{ index .Values "config" "oai-enb-cu" "networks" "s1mme" "interface" }} 13 | S1MME_IP={{ index .Values "config" "oai-enb-cu" "networks" "s1mme" "address" }} 14 | 15 | # If S1MME_IP was not set, then look for the first IP address assigned to S1MME_IFACE 16 | if [ -z ${S1MME_IP} ]; then 17 | S1MME_IP=$(ip addr show $S1MME_IFACE | grep inet | grep -v inet6 | awk '{print $2}' | cut -d'/' -f1 | head -n 1) 18 | fi 19 | 20 | sed -i "s/S1MME_IP_ADDRESS/\"$S1MME_IP\"/g" /opt/oai/share/cu.conf 21 | 22 | S1U_IFACE={{ index .Values "config" "oai-enb-cu" "networks" "s1u" "interface" }} 23 | S1U_IP={{ index .Values "config" "oai-enb-cu" "networks" "s1u" "address" }} 24 | 25 | # If S1U_IP was not set, then look for the first IP address assigned to S1U_IFACE 26 | if [ -z ${S1U_IP} ]; then 27 | S1U_IP=$(ip addr show $S1U_IFACE | grep inet | grep -v inet6 | awk '{print $2}' | cut -d'/' -f1 | head -n 1) 28 | fi 29 | 30 | sed -i "s/S1U_IP_ADDRESS/\"$S1U_IP\"/g" /opt/oai/share/cu.conf 31 | 32 | sed -i "s/X2C_IP_ADDRESS/\"$ENB_LOCAL_IP\"/g" /opt/oai/share/cu.conf -------------------------------------------------------------------------------- /oai-enb-cu/templates/bin/_run_enb_cu.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | ENODEB=1 /opt/oai/bin/lte-softmodem -O /opt/oai/share/cu.conf 9 | -------------------------------------------------------------------------------- /oai-enb-cu/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | global: 6 | image: 7 | registry: "" 8 | tag: "" 9 | 10 | replicaCount: 1 11 | 12 | images: 13 | tags: 14 | oaicucp: docker.io/onosproject/oai-enb-cu:v0.1.11 15 | pullPolicy: IfNotPresent 16 | 17 | # Specify annotations (e.g., fluentbit/logging custom parser) 18 | # annotations: 19 | # fluentbit.io/parser: oai 20 | 21 | # Specify nodeSelector to pin oai-enb-du to worker nodes oaienb only 22 | # 23 | # nodeSelector: 24 | # node-role.test.org: oaienb 25 | 26 | # Override NoSchedule for oai-enb-du to be scheduled on oaienb worker nodes 27 | # 28 | # tolerations: 29 | # - key: node-role.test.org 30 | # value: oaienb 31 | # effect: NoSchedule 32 | 33 | config: 34 | oai-enb-cu: 35 | log: 36 | level: "info" 37 | verbosity: "medium" 38 | enbID: 0xe00 39 | tac: 1 40 | plmnID: 41 | mcc: "208" 42 | mnc: "01" 43 | length: 2 44 | networks: 45 | common: 46 | port: 22100 47 | f1: 48 | interface: eno1 49 | address: 127.0.0.2/24 50 | portc: 501 51 | portd: 601 52 | s1mme: 53 | interface: eno1 54 | address: 55 | port: 36412 56 | s1u: 57 | interface: enb 58 | address: 59 | port: 2152 60 | x2c: 61 | port: 36422 62 | if5-ori: 63 | port: 50000 64 | if5-ecpri: 65 | port: 50001 66 | tcp-bridge: 67 | port: 4043 68 | oai-enb-du: 69 | networks: 70 | f1: 71 | address: 127.0.0.3/24 72 | portc: 500 73 | portd: 600 74 | mme: 75 | address: 127.0.0.1 76 | onos-e2t: 77 | enabled: yes 78 | networks: 79 | e2: 80 | address: 127.0.0.1/24 81 | port: 36402 82 | -------------------------------------------------------------------------------- /oai-enb-du/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: oai-enb-du 7 | description: OAI DU Chart 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.2.5 11 | appVersion: v0.1.11 12 | keywords: 13 | - onos 14 | - oai 15 | - ran 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /oai-enb-du/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## OpenAirInterface eNB DU 8 | 9 | Provides a [Helm] chart for deploying OpenAirInterface eNB DU on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /oai-enb-du/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- /* 2 | 3 | # Copyright 2020-present Open Networking Foundation 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | 7 | */ -}} 8 | 9 | {{/* 10 | Renders a set of standardised labels. 11 | */}} 12 | {{- define "oai-enb-du.metadata_labels" -}} 13 | {{- $application := index . 0 -}} 14 | {{- $context := index . 1 -}} 15 | release: {{ $context.Release.Name }} 16 | app: {{ $application }} 17 | {{- end -}} 18 | 19 | {{/* 20 | Render the given template. 21 | */}} 22 | {{- define "oai-enb-du.template" -}} 23 | {{- $name := index . 0 -}} 24 | {{- $context := index . 1 -}} 25 | {{- $last := base $context.Template.Name }} 26 | {{- $wtf := $context.Template.Name | replace $last $name -}} 27 | {{ include $wtf $context }} 28 | {{- end -}} 29 | -------------------------------------------------------------------------------- /oai-enb-du/templates/bin/_init_enb_du.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | cp /opt/oai/conf_files/du.conf /opt/oai/share/du.conf -------------------------------------------------------------------------------- /oai-enb-du/templates/bin/_run_enb_du.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | ENODEB=1 /opt/oai/bin/lte-softmodem -O /opt/oai/share/du.conf 9 | -------------------------------------------------------------------------------- /oai-enb-du/templates/bin/_run_enb_du_usrp.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | uhd_images_downloader 9 | uhd_usrp_probe 10 | 11 | ENODEB=1 /opt/oai/bin/lte-softmodem -O /opt/oai/share/du.conf 12 | -------------------------------------------------------------------------------- /oai-enb-du/templates/configmap-du.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | {{- $duMode := index .Values "config" "oai-enb-du" "mode" -}} 5 | 6 | --- 7 | apiVersion: v1 8 | kind: ConfigMap 9 | metadata: 10 | name: oai-enb-du 11 | labels: 12 | {{ tuple "oai-enb-du" . | include "oai-enb-du.metadata_labels" | indent 4 }} 13 | data: 14 | du.conf: | 15 | {{- if index .Values "config" "oai-enb-du" "enableUSRP" }} 16 | {{ tuple "_du_conf_usrp.tpl" . | include "oai-enb-du.template" | indent 4 }} 17 | {{- else }} 18 | {{ tuple "_du_conf.tpl" . | include "oai-enb-du.template" | indent 4 }} 19 | {{- end }} 20 | run_enb_du.sh: | 21 | {{- if index .Values "config" "oai-enb-du" "enableUSRP" }} 22 | {{ tuple "bin/_run_enb_du_usrp.sh.tpl" . | include "oai-enb-du.template" | indent 4 }} 23 | {{- else }} 24 | {{ tuple "bin/_run_enb_du.sh.tpl" . | include "oai-enb-du.template" | indent 4 }} 25 | {{- end }} 26 | init_enb_du.sh: | 27 | {{ tuple "bin/_init_enb_du.sh.tpl" . | include "oai-enb-du.template" | indent 4 }} 28 | -------------------------------------------------------------------------------- /oai-enb-du/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | global: 6 | image: 7 | registry: "" 8 | tag: "" 9 | 10 | replicaCount: 1 11 | 12 | images: 13 | tags: 14 | oaidu: docker.io/onosproject/oai-enb-du:v0.1.11 15 | pullPolicy: IfNotPresent 16 | 17 | # Specify annotations (e.g., fluentbit/logging custom parser) 18 | # annotations: 19 | # fluentbit.io/parser: oai 20 | 21 | # Specify nodeSelector to pin oai-enb-du to worker nodes oaienb only 22 | # 23 | # nodeSelector: 24 | # node-role.test.org: oaienb 25 | 26 | # Override NoSchedule for oai-enb-du to be scheduled on oaienb worker nodes 27 | # 28 | # tolerations: 29 | # - key: node-role.test.org 30 | # value: oaienb 31 | # effect: NoSchedule 32 | 33 | config: 34 | oai-enb-du: 35 | log: 36 | level: "info" 37 | verbosity: "medium" 38 | enableUSRP: false 39 | radio: 40 | eutra_band: 7 41 | downlink_frequency: 2630000000L 42 | uplink_frequency_offset: -120000000 43 | rbs: 25 44 | max_rxgain: 125 45 | max_pdschReferenceSignalPower: -25 46 | rx_gain: 125 47 | tx_gain: 90 48 | mode: nfapi #or local_L1 for USRP and BasicSim 49 | networks: 50 | f1: 51 | interface: eno1 52 | address: 127.0.0.3/24 53 | portc: 500 54 | portd: 600 55 | nfapi: 56 | interface: eno1 57 | address: 127.0.0.3 58 | portc: 50001 59 | portd: 50011 60 | oai-enb-cu: 61 | enbID: 0xe00 62 | tac: 1 63 | plmnID: 64 | mcc: "208" 65 | mnc: "01" 66 | length: 2 67 | networks: 68 | f1: 69 | address: 127.0.0.2/24 70 | portc: 501 71 | portd: 601 72 | oai-ue: 73 | networks: 74 | nfapi: 75 | address: 127.0.0.4 76 | portc: 50000 77 | portd: 50010 78 | onos-e2t: 79 | enabled: yes 80 | networks: 81 | e2: 82 | address: 127.0.0.1/24 83 | port: 36421 84 | -------------------------------------------------------------------------------- /oai-ue/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: oai-ue 7 | description: OAI UE Chart 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.2.5 11 | appVersion: v0.1.11 12 | keywords: 13 | - onos 14 | - oai 15 | - ran 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /oai-ue/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## OpenAirInterface UE 8 | 9 | Provides a [Helm] chart for deploying OpenAirInterface UE on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /oai-ue/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- /* 2 | 3 | # Copyright 2020-present Open Networking Foundation 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | 7 | */ -}} 8 | 9 | {{/* 10 | Renders a set of standardised labels. 11 | */}} 12 | {{- define "oai-ue.metadata_labels" -}} 13 | {{- $application := index . 0 -}} 14 | {{- $context := index . 1 -}} 15 | release: {{ $context.Release.Name }} 16 | app: {{ $application }} 17 | {{- end -}} 18 | 19 | {{/* 20 | Render the given template. 21 | */}} 22 | {{- define "oai-ue.template" -}} 23 | {{- $name := index . 0 -}} 24 | {{- $context := index . 1 -}} 25 | {{- $last := base $context.Template.Name }} 26 | {{- $wtf := $context.Template.Name | replace $last $name -}} 27 | {{ include $wtf $context }} 28 | {{- end -}} 29 | 30 | {{/* 31 | Return PLMN from MCC and MNC. 32 | */}} 33 | {{- define "oai-ue.plmnid" -}} 34 | {{- $mcc := index . 0 -}} 35 | {{- $mnc := index . 1 -}} 36 | {{- printf "%s%s" $mcc $mnc -}} 37 | {{- end -}} -------------------------------------------------------------------------------- /oai-ue/templates/_ue_sim_conf.tpl: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{- $mcc := index .Values "config" "oai-enb-cu" "plmnID" "mcc" -}} 6 | {{- $mnc := index .Values "config" "oai-enb-cu" "plmnID" "mnc" -}} 7 | {{- $plmnid := tuple $mcc $mnc | include "oai-ue.plmnid" | quote -}} 8 | {{- $numUEs := index .Values "config" "oai-ue" "numDevices" | int -}} 9 | {{- $startIMEI := index .Values "config" "oai-ue" "device" "imei" }} 10 | {{- $startMSIN := index .Values "config" "oai-ue" "sim" "msinStart" }} 11 | {{- $startMSISDN := index .Values "config" "oai-ue" "sim" "msisdnStart" }} 12 | {{- $startMSINlen := index .Values "config" "oai-ue" "sim" "msinStart" | toString | len | int }} 13 | {{- $MSINlensub := sub 10 $startMSINlen | int }} 14 | 15 | PLMN: { 16 | PLMN0: { 17 | FULLNAME={{ index .Values "config" "oai-enb-cu" "plmnID" "fullName" | quote }}; 18 | SHORTNAME={{ index .Values "config" "oai-enb-cu" "plmnID" "shortName" | quote }}; 19 | MCC={{ index .Values "config" "oai-enb-cu" "plmnID" "mcc" | quote }}; 20 | MNC={{ index .Values "config" "oai-enb-cu" "plmnID" "mnc" | quote }}; 21 | }; 22 | }; 23 | {{- range $i, $e := until $numUEs }} 24 | UE{{ $i }}: { 25 | USER: { 26 | IMEI={{ add $startIMEI $i | quote }}; 27 | MANUFACTURER={{ index $.Values "config" "oai-ue" "device" "manufacturer" | quote }}; 28 | MODEL={{ index $.Values "config" "oai-ue" "device" "model" | quote }}; 29 | PIN={{ index $.Values "config" "oai-ue" "device" "pin" | quote }}; 30 | }; 31 | SIM: { 32 | MSIN={{ add $startMSIN $i | printf "%010d" | substr $MSINlensub 10 | quote }}; 33 | USIM_API_K={{ index $.Values "config" "oai-ue" "sim" "apiKey" | quote }}; 34 | OPC={{ index $.Values "config" "oai-ue" "sim" "opc" | quote }}; 35 | MSISDN={{ add $startMSISDN $i | quote }}; 36 | }; 37 | HPLMN= {{ $plmnid }}; 38 | UCPLMN_LIST = (); 39 | OPLMN_LIST = ({{ $plmnid }}); 40 | OCPLMN_LIST = (); 41 | FPLMN_LIST = (); 42 | EHPLMN_LIST= (); 43 | }; 44 | {{- end }} 45 | -------------------------------------------------------------------------------- /oai-ue/templates/bin/_gen_ue_sim.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | echo "ToDo: add codes to gen SIM" 9 | pushd /opt/oai-ue/share 10 | /opt/oai-ue/bin/nvram --gen -c /opt/oai-ue/share/ue_sim.conf -o /opt/oai-ue/share 11 | /opt/oai-ue/bin/usim --gen -c /opt/oai-ue/share/ue_sim.conf -o /opt/oai-ue/share 12 | popd -------------------------------------------------------------------------------- /oai-ue/templates/bin/_init_ue.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | cp /opt/oai-ue/conf_files/ue.conf /opt/oai-ue/share/ue.conf 9 | cp /opt/oai-ue/conf_files/ue_sim.conf /opt/oai-ue/share/ue_sim.conf 10 | 11 | /opt/oai-ue/gen_ue_sim.sh 12 | -------------------------------------------------------------------------------- /oai-ue/templates/bin/_run_ue.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | set -ex 7 | 8 | # In the init version, only support 1 UE - will support multiple UEs 9 | pushd /opt/oai-ue/share 10 | /opt/oai-ue/bin/lte-uesoftmodem -O /opt/oai-ue/share/ue.conf --L2-emul 3 --num-ues {{ index .Values "config" "oai-ue" "numDevices" }} --nums_ue_thread 1 -r {{ index .Values "config" "oai-ue" "numRBs" }} --ue-sync-timer {{ index .Values "config" "oai-ue" "syncTimer" }} --ue-num-frames-ra {{ index .Values "config" "oai-ue" "numFramesRA" }} 11 | popd 12 | -------------------------------------------------------------------------------- /oai-ue/templates/bin/_run_ue_usrp.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | {{- $carrier := index .Values "config" "oai-ue" "radio" "carrier" | int }} 7 | {{- $rbs := index .Values "config" "oai-ue" "radio" "rbs" }} 8 | {{- $uerxgain := index .Values "config" "oai-ue" "radio" "ue-rxgain" }} 9 | {{- $uetxgain := index .Values "config" "oai-ue" "radio" "ue-txgain" }} 10 | {{- $uemaxpower := index .Values "config" "oai-ue" "radio" "ue-max-power" }} 11 | 12 | set -ex 13 | 14 | uhd_images_downloader 15 | uhd_usrp_probe 16 | 17 | pushd /opt/oai-ue/share 18 | /opt/oai-ue/bin/lte-uesoftmodem -O /opt/oai-ue/share/ue.conf -C {{ $carrier }} -r {{ $rbs }} --ue-rxgain {{ $uerxgain }} --ue-txgain {{ $uetxgain }} --ue-max-power {{ $uemaxpower }} --ue-scan-carrier --nokrnmod 1 2>&1 | tee UE.log 19 | popd 20 | -------------------------------------------------------------------------------- /oai-ue/templates/configmap-ue.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{- $mcc := index .Values "config" "oai-enb-cu" "plmnID" "mcc" -}} 6 | {{- $mnc := index .Values "config" "oai-enb-cu" "plmnID" "mnc" -}} 7 | {{- $plmnid := tuple $mcc $mnc | include "oai-ue.plmnid" | quote -}} 8 | {{- $numUEs := index .Values "config" "oai-ue" "numDevices" | int -}} 9 | {{- $startIMEI := index .Values "config" "oai-ue" "device" "imei" }} 10 | {{- $startMSIN := index .Values "config" "oai-ue" "sim" "msinStart" }} 11 | {{- $startMSISDN := index .Values "config" "oai-ue" "sim" "msisdnStart" }} 12 | 13 | --- 14 | apiVersion: v1 15 | kind: ConfigMap 16 | metadata: 17 | name: oai-ue 18 | labels: 19 | {{ tuple "oai-ue" . | include "oai-ue.metadata_labels" | indent 4 }} 20 | data: 21 | ue_sim.conf: | 22 | {{ tuple "_ue_sim_conf.tpl" . | include "oai-ue.template" | indent 4 }} 23 | ue.conf: | 24 | {{ tuple "_ue_conf.tpl" . | include "oai-ue.template" | indent 4 }} 25 | gen_ue_sim.sh: | 26 | {{ tuple "bin/_gen_ue_sim.sh.tpl" . | include "oai-ue.template" | indent 4 }} 27 | init_ue.sh: | 28 | {{ tuple "bin/_init_ue.sh.tpl" . | include "oai-ue.template" | indent 4 }} 29 | run_ue.sh: | 30 | {{- if index .Values "config" "oai-ue" "enableUSRP" }} 31 | {{ tuple "bin/_run_ue_usrp.sh.tpl" . | include "oai-ue.template" | indent 4 }} 32 | {{- else }} 33 | {{ tuple "bin/_run_ue.sh.tpl" . | include "oai-ue.template" | indent 4 }} 34 | {{- end }} -------------------------------------------------------------------------------- /oai-ue/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | global: 6 | image: 7 | registry: "" 8 | tag: "" 9 | 10 | replicaCount: 1 11 | 12 | images: 13 | tags: 14 | oaiue: docker.io/onosproject/oai-ue:v0.1.11 15 | pullPolicy: IfNotPresent 16 | 17 | # Specify annotations (e.g., fluentbit/logging custom parser) 18 | # annotations: 19 | # fluentbit.io/parser: oai 20 | 21 | # Specify nodeSelector to pin oai-ue to worker nodes oaiue only 22 | # 23 | # nodeSelector: 24 | # node-role.test.org: oaiue 25 | 26 | # Override NoSchedule for oai-ue to be scheduled on oaiue worker nodes 27 | # 28 | # tolerations: 29 | # - key: node-role.test.org 30 | # value: oaiue 31 | # effect: NoSchedule 32 | 33 | config: 34 | oai-ue: 35 | enableUSRP: false 36 | radio: 37 | max_rxgain: 125 38 | max_pdschReferenceSignalPower: -27 39 | carrier: 2630000000 40 | rbs: 25 41 | ue-rxgain: 120 42 | ue-txgain: 0 43 | ue-max-power: 0 44 | numDevices: 1 # support up to 3 45 | numRBs: 100 # support 25, 50, and 100 46 | syncTimer: 0 # interval to sync threads in lte UE 47 | numFramesRA: 30 # the number of Frames for RA 48 | device: 49 | imei: "356113022094149" 50 | manufacturer: "OAISIM" 51 | model: "OAISIM" 52 | pin: "0000" 53 | sim: 54 | msinStart: "4567891201" # for UE0 - will increase for next UEs 55 | apiKey: "465b5ce8b199b49faa5f0a2ee238a6bc" 56 | opc: "d4416644f6154936193433dd20a0ace0" 57 | msisdnStart: "1122334456" # for UE0 - will increase for next UEs 58 | networks: 59 | nfapi: 60 | interface: eno1 61 | address: 127.0.0.4 62 | portc: 50000 63 | portd: 50010 64 | log: 65 | level: "error" 66 | verbosity: "full" 67 | oai-enb-cu: 68 | plmnID: 69 | mcc: "208" 70 | mnc: "01" 71 | length: 2 72 | fullName: "ONF Aether" 73 | shortName: "Aether" 74 | oai-enb-du: 75 | networks: 76 | nfapi: 77 | address: 127.0.0.3 78 | portc: 50001 79 | portd: 50011 80 | -------------------------------------------------------------------------------- /onos-a1t/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-a1t/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: onos-a1t 7 | description: ONOS A1 Termination 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.2.4 11 | appVersion: v0.2.3 12 | keywords: 13 | - onos 14 | - sdn 15 | - ric 16 | home: https://onosproject.org 17 | maintainers: 18 | - name: ONOS Support 19 | email: support@opennetworking.org 20 | -------------------------------------------------------------------------------- /onos-a1t/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS A1T 8 | 9 | Provides a [Helm] chart for deploying µONOS A1 Termination on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-a1t/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-a1t/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-a1t/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-a1t/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-a1t/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-a1t.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-a1t.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | config.json: |- 20 | {{ .Values.config.a1t.config_json | toPrettyJson | indent 4 }} 21 | -------------------------------------------------------------------------------- /onos-a1t/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-a1t.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-a1t/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-a1t. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/onos-a1t 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | imagePullSecrets: [] 24 | nameOverride: "" 25 | fullnameOverride: "onos-a1t" 26 | 27 | storage: {} 28 | 29 | service: 30 | # TODO: External NodePort service should be disabled by default 31 | grpc: 32 | port: 5150 33 | gnmi: 34 | port: 9339 35 | a1ap: 36 | port: 9639 37 | nodePort: 38 | enabled: true 39 | port: 31963 40 | exporter: 41 | port: 7001 42 | nodePort: 43 | enabled: false 44 | port: 31701 45 | 46 | config: 47 | a1t: 48 | a1ap: 49 | port: 5150 50 | baseURL: "0.0.0.0:9639" 51 | 52 | resources: {} 53 | # We usually recommend not to specify default resources and to leave this as a conscious 54 | # choice for the user. This also increases chances charts run on environments with little 55 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 56 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 57 | # limits: 58 | # cpu: 100m 59 | # memory: 128Mi 60 | # requests: 61 | # cpu: 100m 62 | # memory: 128Mi 63 | 64 | nodeSelector: {} 65 | 66 | tolerations: [] 67 | 68 | affinity: {} 69 | 70 | logging: 71 | loggers: 72 | root: 73 | level: info 74 | output: 75 | stdout: 76 | sink: stdout 77 | sinks: 78 | stdout: 79 | type: stdout 80 | stdout: {} 81 | -------------------------------------------------------------------------------- /onos-e2t/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-e2t/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-e2t 8 | description: ONOS E2 Termination 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 1.5.4 12 | appVersion: v0.11.25 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-e2t/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS E2 Termination 8 | 9 | Provides a [Helm] chart for deploying µONOS E2 Termination on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-e2t/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-e2t/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-e2t/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-e2t/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-e2t/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-e2t.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-e2t.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | onos.yaml: "" 16 | logging.yaml: |- 17 | {{- if .Values.logging }} 18 | {{ toYaml .Values.logging | indent 4 }} 19 | {{- end}} 20 | -------------------------------------------------------------------------------- /onos-e2t/templates/raftcluster.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | {{- if .Values.atomix.store.consensus.enabled }} 7 | apiVersion: raft.atomix.io/v1beta3 8 | kind: RaftCluster 9 | metadata: 10 | name: {{ template "onos-e2t.atomix.consensus.cluster.name" . }} 11 | namespace: {{ .Release.Namespace }} 12 | labels: 13 | name: {{ template "onos-e2t.atomix.consensus.cluster.name" . }} 14 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 15 | release: "{{ .Release.Name }}" 16 | heritage: "{{ .Release.Service }}" 17 | spec: 18 | replicas: {{ .Values.atomix.store.consensus.replicas }} 19 | {{- if .Values.atomix.store.consensus.image.tag }} 20 | image: "{{ .Values.atomix.store.consensus.image.repository }}:{{ .Values.atomix.store.consensus.image.tag }}" 21 | {{- end }} 22 | {{- with .Values.atomix.store.consensus.image.pullPolicy }} 23 | imagePullPolicy: {{ . }} 24 | {{- end }} 25 | {{- with .Values.atomix.store.consensus.image.pullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 4 }} 28 | {{- end }} 29 | {{- with .Values.atomix.store.consensus.securityContext }} 30 | securityContext: 31 | {{- toYaml . | nindent 4 }} 32 | {{- end }} 33 | persistence: {{- .Values.atomix.store.consensus.persistence | toYaml | nindent 4 }} 34 | logging: 35 | encoding: {{ .Values.atomix.store.consensus.logging.encoding }} 36 | rootLevel: {{ .Values.atomix.store.consensus.logging.level }} 37 | {{- if .Values.atomix.store.consensus.logging.loggers }} 38 | loggers: 39 | {{- range $key, $value := .Values.atomix.store.consensus.logging.loggers }} 40 | - name: {{ $key }} 41 | level: {{ $value }} 42 | {{- end }} 43 | {{- end }} 44 | {{- end }} 45 | -------------------------------------------------------------------------------- /onos-e2t/templates/raftstore.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: raft.atomix.io/v1beta3 7 | kind: RaftStore 8 | metadata: 9 | name: {{ template "onos-e2t.atomix.consensus.store.name" . }} 10 | namespace: {{ .Release.Namespace }} 11 | labels: 12 | name: {{ template "onos-e2t.atomix.consensus.store.name" . }} 13 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 14 | release: "{{ .Release.Name }}" 15 | heritage: "{{ .Release.Service }}" 16 | spec: 17 | cluster: 18 | name: {{ template "onos-e2t.atomix.consensus.cluster.name" . }} 19 | partitions: {{ .Values.atomix.store.consensus.partitions }} 20 | {{- with .Values.atomix.store.consensus.config.electionRTT }} 21 | electionRTT: {{ . }} 22 | {{- end }} 23 | {{- with .Values.atomix.store.consensus.config.heartbeatRTT }} 24 | heartbeatRTT: {{ . }} 25 | {{- end }} 26 | {{- with .Values.atomix.store.consensus.config.snapshotEntries }} 27 | snapshotEntries: {{ . }} 28 | {{- end }} 29 | {{- with .Values.atomix.store.consensus.config.compactionOverhead }} 30 | compactionOverhead: {{ . }} 31 | {{- end }} 32 | {{- with .Values.atomix.store.consensus.config.maxInMemLogSize }} 33 | maxInMemLogSize: {{ . }} 34 | {{- end }} 35 | -------------------------------------------------------------------------------- /onos-e2t/templates/role.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: rbac.authorization.k8s.io/v1 6 | kind: Role 7 | metadata: 8 | creationTimestamp: null 9 | name: {{ template "onos-e2t.fullname" . }} 10 | namespace: {{ .Release.Namespace }} 11 | rules: 12 | - apiGroups: 13 | - primitives.atomix.io 14 | resources: 15 | - '*' 16 | resourceNames: 17 | - {{ template "onos-e2t.fullname" . }}-channels 18 | - {{ template "onos-e2t.fullname" . }}-subscriptions 19 | verbs: 20 | - '*' -------------------------------------------------------------------------------- /onos-e2t/templates/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | kind: RoleBinding 6 | apiVersion: rbac.authorization.k8s.io/v1 7 | metadata: 8 | name: {{ template "onos-e2t.fullname" . }} 9 | namespace: {{ .Release.Namespace }} 10 | subjects: 11 | - kind: ServiceAccount 12 | name: {{ template "onos-e2t.fullname" . }} 13 | roleRef: 14 | kind: Role 15 | name: {{ template "onos-e2t.fullname" . }} 16 | apiGroup: rbac.authorization.k8s.io -------------------------------------------------------------------------------- /onos-e2t/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-e2t.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-e2t/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ServiceAccount 7 | metadata: 8 | name: {{ template "onos-e2t.fullname" . }} 9 | namespace: {{ .Release.Namespace }} -------------------------------------------------------------------------------- /onos-e2t/templates/storageprofile.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: atomix.io/v3beta4 7 | kind: StorageProfile 8 | metadata: 9 | name: {{ template "onos-e2t.fullname" . }} 10 | namespace: {{ .Release.Namespace }} 11 | labels: 12 | name: {{ template "onos-e2t.fullname" . }} 13 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 14 | release: "{{ .Release.Name }}" 15 | heritage: "{{ .Release.Service }}" 16 | spec: 17 | routes: 18 | - store: 19 | name: {{ template "onos-e2t.atomix.consensus.store.name" . }} 20 | {{- with .Values.atomix.store.consensus.rules }} 21 | rules: 22 | {{ . | toYaml | nindent 8 }} 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /onos-exporter/.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | requirements.lock 6 | charts 7 | Chart.lock -------------------------------------------------------------------------------- /onos-exporter/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-exporter/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: onos-exporter 7 | description: ONOS KPIs Exporter 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.5.2 11 | appVersion: v0.4.1 12 | keywords: 13 | - onos 14 | - sdn 15 | - ric 16 | home: https://onosproject.org 17 | maintainers: 18 | - name: ONOS Support 19 | email: support@opennetworking.org 20 | dependencies: 21 | - name: fluent-bit 22 | condition: import.fluent-bit.enabled 23 | version: 0.15.4 24 | repository: https://fluent.github.io/helm-charts 25 | - name: opensearch 26 | condition: import.opensearch.enabled 27 | version: 1.8.0 28 | repository: https://opensearch-project.github.io/helm-charts/ 29 | - name: opensearch-dashboards 30 | condition: import.opensearch.enabled 31 | version: 1.2.1 32 | repository: https://opensearch-project.github.io/helm-charts/ 33 | - name: kube-prometheus-stack 34 | condition: import.prometheus-stack.enabled 35 | version: 32.2.1 36 | repository: https://prometheus-community.github.io/helm-charts 37 | -------------------------------------------------------------------------------- /onos-exporter/files/dashboards/kubernetes-logs-pod.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2021-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /onos-exporter/files/dashboards/sdran-kpis.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2021-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /onos-exporter/files/dashboards/sdran.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2021-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /onos-exporter/templates/configmap-dashboards.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{- if index .Values "import" "prometheus-stack" "enabled" }} 6 | 7 | apiVersion: v1 8 | kind: ConfigMap 9 | metadata: 10 | name: {{ .Release.Name }}-dashboards 11 | labels: 12 | grafana_dashboard: "1" 13 | data: 14 | {{- range index .Values "grafana" "dashboards" }} 15 | {{- $dashboard := printf "files/dashboards/%s" . }} 16 | {{ ($.Files.Glob $dashboard).AsConfig | indent 2 }} 17 | {{- end }} 18 | 19 | {{- end }} 20 | -------------------------------------------------------------------------------- /onos-exporter/templates/configmap-datasources.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | 6 | {{- if index .Values "import" "prometheus-stack" "enabled" }} 7 | 8 | apiVersion: v1 9 | kind: ConfigMap 10 | metadata: 11 | name: {{ .Release.Name }}-datasource 12 | labels: 13 | grafana_datasource: "1" 14 | data: 15 | datasources-{{ .Release.Name }}.yaml: |- 16 | apiVersion: 1 17 | datasources: 18 | {{- range index .Values "grafana" "prometheus-datasources" }} 19 | - name: {{ .name }} 20 | type: prometheus 21 | access: proxy 22 | basicAuth: false 23 | editable: false 24 | isDefault: false 25 | url: {{ .endpoint }} 26 | {{- end }} 27 | {{- range index .Values "grafana" "opensearch-datasources" }} 28 | - name: {{ .name }} 29 | url: {{ .endpoint }} 30 | type: grafana-opensearch-datasource 31 | access: proxy 32 | database: 'fluentbit-*' 33 | basicAuth: true 34 | basicAuthUser: "admin" 35 | basicAuthPassword: "admin" 36 | jsonData: 37 | timeField: "@timestamp" 38 | logMessageField: log 39 | logLevelField: logLevel 40 | pplEnabled: true 41 | tlsSkipVerify: true 42 | {{- end }} 43 | 44 | {{- end }} -------------------------------------------------------------------------------- /onos-exporter/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | --- 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ template "onos-exporter.fullname" . }} 9 | labels: 10 | app: {{ template "onos-exporter.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | heritage: "{{ .Release.Service }}" 13 | {{- include "onos-exporter.labels" . | nindent 4 }} 14 | spec: 15 | type: ClusterIP 16 | selector: 17 | name: {{ template "onos-exporter.fullname" . }} 18 | app: onos 19 | type: exporter 20 | resource: {{ template "onos-exporter.fullname" . }} 21 | {{- include "onos-exporter.selectorLabels" . | nindent 4 }} 22 | ports: 23 | - name: exporter 24 | port: {{ .Values.service.exporter.port }} 25 | -------------------------------------------------------------------------------- /onos-exporter/templates/servicemonitor.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | {{- $mode := index .Values "config" "onos-exporter" "mode" }} 6 | {{- if eq $mode "prometheus" }} 7 | 8 | apiVersion: monitoring.coreos.com/v1 9 | kind: ServiceMonitor 10 | metadata: 11 | name: onos-exporter 12 | labels: 13 | {{- include "onos-exporter.labels" . | nindent 4 }} 14 | spec: 15 | selector: 16 | matchLabels: 17 | {{- include "onos-exporter.selectorLabels" . | nindent 6 }} 18 | endpoints: 19 | - port: exporter 20 | path: /metrics 21 | scheme: HTTP 22 | {{ end }} 23 | -------------------------------------------------------------------------------- /onos-kpimon/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-kpimon/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-kpimon 8 | description: ONOS KPIMON xAPP 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 0.9.10 12 | appVersion: v0.4.11 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-kpimon/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS KPIMON 8 | 9 | Provides a [Helm] chart for deploying µONOS KPIMON xApp on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-kpimon/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-kpimon/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-kpimon/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-kpimon/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-kpimon/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-kpimon.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-kpimon.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | config.json: |- 20 | {{ .Values.config.kpimon.config_json | toPrettyJson | indent 4 }} 21 | -------------------------------------------------------------------------------- /onos-kpimon/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-kpimon.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-kpimon/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | --- 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ template "onos-kpimon.fullname" . }} 9 | labels: 10 | app: {{ template "onos-kpimon.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | {{- include "onos-kpimon.labels" . | nindent 4 }} 15 | spec: 16 | type: ClusterIP 17 | selector: 18 | name: {{ template "onos-kpimon.fullname" . }} 19 | app: onos 20 | type: kpimon 21 | resource: {{ template "onos-kpimon.fullname" . }} 22 | {{- include "onos-kpimon.selectorLabels" . | nindent 4 }} 23 | ports: 24 | - name: exporter 25 | port: {{ .Values.service.exporter.port }} 26 | - name: grpc 27 | port: {{ .Values.service.grpc.port}} 28 | - name: gnmi 29 | port: {{.Values.service.gnmi.port}} 30 | 31 | {{- if .Values.service.exporter.nodePort.enabled }} 32 | --- 33 | apiVersion: v1 34 | kind: Service 35 | metadata: 36 | name: {{ template "onos-kpimon.fullname" . }}-external 37 | labels: 38 | app: {{ template "onos-kpimon.fullname" . }} 39 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 40 | release: "{{ .Release.Name }}" 41 | heritage: "{{ .Release.Service }}" 42 | {{- include "onos-kpimon.labels" . | nindent 4 }} 43 | spec: 44 | type: NodePort 45 | selector: 46 | name: {{ template "onos-kpimon.fullname" . }} 47 | app: onos 48 | type: kpimon 49 | resource: {{ template "onos-kpimon.fullname" . }} 50 | {{- include "onos-kpimon.selectorLabels" . | nindent 4 }} 51 | ports: 52 | - name: exporter 53 | port: {{ .Values.service.exporter.port }} 54 | nodePort: {{ .Values.service.exporter.nodePort.port }} 55 | protocol: TCP 56 | {{- end }} 57 | --- 58 | 59 | -------------------------------------------------------------------------------- /onos-kpimon/templates/topo.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # A topology kind representing an SD-RAN node 6 | apiVersion: topo.onosproject.org/v1beta1 7 | kind: Kind 8 | metadata: 9 | name: o1t 10 | spec: 11 | aspects: {} 12 | 13 | --- 14 | # The onos-kpimon Configurable kind 15 | apiVersion: topo.onosproject.org/v1beta1 16 | kind: Entity 17 | metadata: 18 | name: kpimon 19 | spec: 20 | uri: kpimon 21 | kind: 22 | name: o1t 23 | aspects: 24 | onos.topo.Configurable: 25 | address: onos-kpimon:9339 26 | version: 1.0.0 27 | type: ric 28 | target: kpimon 29 | onos.topo.TLSOptions: 30 | insecure: true 31 | onos.topo.Asset: 32 | name: kpimon 33 | onos.topo.MastershipState: {} 34 | -------------------------------------------------------------------------------- /onos-kpimon/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-kpimon. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/onos-kpimon 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | imagePullSecrets: [] 24 | nameOverride: "" 25 | fullnameOverride: "onos-kpimon" 26 | 27 | storage: {} 28 | 29 | service: 30 | # TODO: External NodePort service should be disabled by default 31 | grpc: 32 | port: 5150 33 | gnmi: 34 | port: 9339 35 | exporter: 36 | port: 7001 37 | nodePort: 38 | enabled: false 39 | port: 31701 40 | 41 | config: 42 | kpimon: 43 | e2tEndpoint: "onos-e2t:5150" 44 | kpmVersion: "v2" 45 | config_json: 46 | report_period: 47 | interval: 1000 48 | granularity: 1000 49 | 50 | resources: {} 51 | # We usually recommend not to specify default resources and to leave this as a conscious 52 | # choice for the user. This also increases chances charts run on environments with little 53 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 54 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 55 | # limits: 56 | # cpu: 100m 57 | # memory: 128Mi 58 | # requests: 59 | # cpu: 100m 60 | # memory: 128Mi 61 | 62 | nodeSelector: {} 63 | 64 | tolerations: [] 65 | 66 | affinity: {} 67 | 68 | logging: 69 | loggers: 70 | root: 71 | level: info 72 | output: 73 | stdout: 74 | sink: stdout 75 | sinks: 76 | stdout: 77 | type: stdout 78 | stdout: {} 79 | -------------------------------------------------------------------------------- /onos-mho/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-mho/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-mho 8 | description: ONOS MHO xAPP 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 0.3.9 12 | appVersion: v0.3.12 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-mho/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS MHO 8 | 9 | Provides a [Helm] chart for deploying µONOS MHO xApp on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-mho/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-mho/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-mho/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-mho/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-mho/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-mho.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-mho.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | config.json: |- 20 | {{ .Values.config.mho.config_json | toPrettyJson | indent 4 }} 21 | 22 | -------------------------------------------------------------------------------- /onos-mho/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-mho.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-mho/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | --- 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ template "onos-mho.fullname" . }} 9 | labels: 10 | app: {{ template "onos-mho.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | {{- include "onos-mho.labels" . | nindent 4 }} 15 | spec: 16 | type: ClusterIP 17 | selector: 18 | name: {{ template "onos-mho.fullname" . }} 19 | app: onos 20 | type: mho 21 | resource: {{ template "onos-mho.fullname" . }} 22 | {{- include "onos-mho.selectorLabels" . | nindent 4 }} 23 | ports: 24 | - name: exporter 25 | port: {{ .Values.service.exporter.port }} 26 | - name: grpc 27 | port: {{ .Values.service.grpc.port}} 28 | - name: gnmi 29 | port: {{.Values.service.gnmi.port}} 30 | 31 | {{- if .Values.service.exporter.nodePort.enabled }} 32 | --- 33 | apiVersion: v1 34 | kind: Service 35 | metadata: 36 | name: {{ template "onos-mho.fullname" . }}-external 37 | labels: 38 | app: {{ template "onos-mho.fullname" . }} 39 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 40 | release: "{{ .Release.Name }}" 41 | heritage: "{{ .Release.Service }}" 42 | {{- include "onos-mho.labels" . | nindent 4 }} 43 | spec: 44 | type: NodePort 45 | selector: 46 | name: {{ template "onos-mho.fullname" . }} 47 | app: onos 48 | type: mho 49 | resource: {{ template "onos-mho.fullname" . }} 50 | {{- include "onos-mho.selectorLabels" . | nindent 4 }} 51 | ports: 52 | - name: exporter 53 | port: {{ .Values.service.exporter.port }} 54 | nodePort: {{ .Values.service.exporter.nodePort.port }} 55 | protocol: TCP 56 | {{- end }} 57 | --- 58 | 59 | -------------------------------------------------------------------------------- /onos-mho/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-mho. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/onos-mho 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | imagePullSecrets: [] 24 | nameOverride: "" 25 | fullnameOverride: "onos-mho" 26 | 27 | storage: {} 28 | 29 | service: 30 | # TODO: External NodePort service should be disabled by default 31 | grpc: 32 | port: 5150 33 | gnmi: 34 | port: 9339 35 | exporter: 36 | port: 7001 37 | nodePort: 38 | enabled: false 39 | port: 31701 40 | 41 | config: 42 | mho: 43 | e2tEndpoint: "onos-e2t:5150" 44 | config_json: 45 | reportingPeriod: 1000 46 | periodic: true 47 | uponRcvMeasReport: true 48 | uponChangeRrcStatus: true 49 | A3OffsetRange: 1 50 | HysteresisRange: 2 51 | CellIndividualOffset: 18 52 | FrequencyOffset: 19 53 | TimeToTrigger: 0 54 | 55 | resources: {} 56 | # We usually recommend not to specify default resources and to leave this as a conscious 57 | # choice for the user. This also increases chances charts run on environments with little 58 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 59 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 60 | # limits: 61 | # cpu: 100m 62 | # memory: 128Mi 63 | # requests: 64 | # cpu: 100m 65 | # memory: 128Mi 66 | 67 | nodeSelector: {} 68 | 69 | tolerations: [] 70 | 71 | affinity: {} 72 | 73 | logging: 74 | loggers: 75 | root: 76 | level: info 77 | output: 78 | stdout: 79 | sink: stdout 80 | sinks: 81 | stdout: 82 | type: stdout 83 | stdout: {} 84 | -------------------------------------------------------------------------------- /onos-mlb/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-mlb/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-mlb 8 | description: ONOS MLB xAPP 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 0.3.7 12 | appVersion: v0.3.8 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-mlb/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS MLB 8 | 9 | Provides a [Helm] chart for deploying µONOS MLB xApp on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-mlb/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-mlb/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-mlb/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-mlb/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-mlb/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-mlb.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-mlb.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | config.json: |- 20 | {{ .Values.config.mlb.config_json | toPrettyJson | indent 4 }} 21 | -------------------------------------------------------------------------------- /onos-mlb/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-mlb.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-mlb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | --- 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ template "onos-mlb.fullname" . }} 9 | labels: 10 | app: {{ template "onos-mlb.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | {{- include "onos-mlb.labels" . | nindent 4 }} 15 | spec: 16 | type: ClusterIP 17 | selector: 18 | name: {{ template "onos-mlb.fullname" . }} 19 | app: onos 20 | type: mlb 21 | resource: {{ template "onos-mlb.fullname" . }} 22 | {{- include "onos-mlb.selectorLabels" . | nindent 4 }} 23 | ports: 24 | - name: exporter 25 | port: {{ .Values.service.exporter.port }} 26 | - name: grpc 27 | port: {{ .Values.service.grpc.port}} 28 | - name: gnmi 29 | port: {{.Values.service.gnmi.port}} 30 | 31 | {{- if .Values.service.exporter.nodePort.enabled }} 32 | --- 33 | apiVersion: v1 34 | kind: Service 35 | metadata: 36 | name: {{ template "onos-mlb.fullname" . }}-external 37 | labels: 38 | app: {{ template "onos-mlb.fullname" . }} 39 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 40 | release: "{{ .Release.Name }}" 41 | heritage: "{{ .Release.Service }}" 42 | {{- include "onos-mlb.labels" . | nindent 4 }} 43 | spec: 44 | type: NodePort 45 | selector: 46 | name: {{ template "onos-mlb.fullname" . }} 47 | app: onos 48 | type: mlb 49 | resource: {{ template "onos-mlb.fullname" . }} 50 | {{- include "onos-mlb.selectorLabels" . | nindent 4 }} 51 | ports: 52 | - name: exporter 53 | port: {{ .Values.service.exporter.port }} 54 | nodePort: {{ .Values.service.exporter.nodePort.port }} 55 | protocol: TCP 56 | {{- end }} 57 | --- 58 | 59 | -------------------------------------------------------------------------------- /onos-mlb/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-mlb. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/onos-mlb 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | imagePullSecrets: [] 24 | nameOverride: "" 25 | fullnameOverride: "onos-mlb" 26 | 27 | storage: {} 28 | 29 | service: 30 | # TODO: External NodePort service should be disabled by default 31 | grpc: 32 | port: 5150 33 | gnmi: 34 | port: 9339 35 | exporter: 36 | port: 7001 37 | nodePort: 38 | enabled: false 39 | port: 31701 40 | 41 | config: 42 | mlb: 43 | e2tEndpoint: "onos-e2t:5150" 44 | thresholds: 45 | overload: 100 46 | target: 0 47 | config_json: 48 | controller: 49 | interval: 10 50 | 51 | resources: {} 52 | # We usually recommend not to specify default resources and to leave this as a conscious 53 | # choice for the user. This also increases chances charts run on environments with little 54 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 55 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 56 | # limits: 57 | # cpu: 100m 58 | # memory: 128Mi 59 | # requests: 60 | # cpu: 100m 61 | # memory: 128Mi 62 | 63 | nodeSelector: {} 64 | 65 | tolerations: [] 66 | 67 | affinity: {} 68 | 69 | logging: 70 | loggers: 71 | root: 72 | level: info 73 | output: 74 | stdout: 75 | sink: stdout 76 | sinks: 77 | stdout: 78 | type: stdout 79 | stdout: {} 80 | -------------------------------------------------------------------------------- /onos-o1t/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-o1t/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v2 6 | name: onos-o1t 7 | description: ONOS O1 Termination 8 | kubeVersion: ">=1.17.0" 9 | type: application 10 | version: 0.3.5 11 | appVersion: v0.8.3 12 | keywords: 13 | - onos 14 | - sdn 15 | - ric 16 | - o1 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org -------------------------------------------------------------------------------- /onos-o1t/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-o1t.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-o1t.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | -------------------------------------------------------------------------------- /onos-o1t/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-o1t.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-o1t/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ include "onos-o1t.fullname" . }}-hs 9 | labels: 10 | {{- include "onos-o1t.labels" . | nindent 4 }} 11 | spec: 12 | clusterIP: None 13 | selector: 14 | name: {{ template "onos-o1t.fullname" . }} 15 | app: onos 16 | type: o1t 17 | resource: {{ template "onos-o1t.fullname" . }} 18 | {{- include "onos-o1t.selectorLabels" . | nindent 4 }} 19 | ports: 20 | - port: {{ .Values.service.port }} 21 | name: grpc 22 | - port: {{ .Values.service.netconf }} 23 | name: netconf 24 | 25 | --- 26 | apiVersion: v1 27 | kind: Service 28 | metadata: 29 | name: {{ include "onos-o1t.fullname" . }} 30 | labels: 31 | {{- include "onos-o1t.labels" . | nindent 4 }} 32 | spec: 33 | type: ClusterIP 34 | selector: 35 | name: {{ template "onos-o1t.fullname" . }} 36 | app: onos 37 | type: o1t 38 | resource: {{ template "onos-o1t.fullname" . }} 39 | {{- include "onos-o1t.selectorLabels" . | nindent 4 }} 40 | ports: 41 | - port: {{ .Values.service.port }} 42 | name: grpc 43 | - port: {{ .Values.service.netconf }} 44 | name: netconf 45 | -------------------------------------------------------------------------------- /onos-o1t/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: ServiceAccount 8 | metadata: 9 | name: onos-o1t 10 | namespace: {{ .Release.Namespace }} -------------------------------------------------------------------------------- /onos-o1t/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-o1t. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | replicaCount: 1 10 | 11 | global: 12 | image: 13 | registry: "" 14 | tag: "" 15 | storage: 16 | controller: "" 17 | config: 18 | name: "" 19 | 20 | 21 | image: 22 | repository: onosproject/onos-o1t 23 | tag: '{{ .Chart.AppVersion }}' 24 | registry: "" 25 | pullPolicy: IfNotPresent 26 | pullSecrets: [] 27 | 28 | imagePullSecrets: [] 29 | nameOverride: "" 30 | fullnameOverride: "onos-o1t" 31 | 32 | 33 | 34 | storage: {} 35 | 36 | service: 37 | # TODO: External NodePort service should be disabled by default 38 | external: 39 | nodePort: 40 | netconf: 41 | 8300 42 | port: 43 | 5150 44 | type: 45 | ClusterIP 46 | 47 | resources: {} 48 | # We usually recommend not to specify default resources and to leave this as a conscious 49 | # choice for the user. This also increases chances charts run on environments with little 50 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 51 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 52 | # limits: 53 | # cpu: 100m 54 | # memory: 128Mi 55 | # requests: 56 | # cpu: 100m 57 | # memory: 128Mi 58 | 59 | nodeSelector: {} 60 | 61 | tolerations: [] 62 | 63 | affinity: {} 64 | 65 | logging: 66 | loggers: 67 | root: 68 | level: info 69 | output: 70 | stdout: 71 | sink: stdout 72 | sinks: 73 | stdout: 74 | type: stdout 75 | stdout: {} 76 | -------------------------------------------------------------------------------- /onos-pci/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-pci/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-pci 8 | description: ONOS PCI xAPP 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 0.9.18 12 | appVersion: v0.4.17 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-pci/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS PCI 8 | 9 | Provides a [Helm] chart for deploying µONOS PCI xApp on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-pci/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-pci/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-pci/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-pci/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-pci/files/test/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | # Helmit Test Files 8 | 9 | These files are intended for use by the PCI scale tests. There 10 | is no need to incorporate them into deployment via templates. -------------------------------------------------------------------------------- /onos-pci/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-pci.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-pci.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | config.json: |- 20 | {{ .Values.config.pci.config_json | toPrettyJson | indent 4 }} 21 | -------------------------------------------------------------------------------- /onos-pci/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-pci.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-pci/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: Service 8 | metadata: 9 | name: {{ template "onos-pci.fullname" . }} 10 | labels: 11 | app: {{ template "onos-pci.fullname" . }} 12 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 13 | release: "{{ .Release.Name }}" 14 | heritage: "{{ .Release.Service }}" 15 | {{- include "onos-pci.labels" . | nindent 4 }} 16 | spec: 17 | type: ClusterIP 18 | selector: 19 | name: {{ template "onos-pci.fullname" . }} 20 | app: onos 21 | type: pci 22 | resource: {{ template "onos-pci.fullname" . }} 23 | {{- include "onos-pci.selectorLabels" . | nindent 4 }} 24 | ports: 25 | - name: exporter 26 | port: {{ .Values.service.exporter.port }} 27 | - name: grpc 28 | port: {{ .Values.service.grpc.port}} 29 | - name: gnmi 30 | port: {{.Values.service.gnmi.port}} 31 | 32 | {{- if .Values.service.exporter.nodePort.enabled }} 33 | --- 34 | apiVersion: v1 35 | kind: Service 36 | metadata: 37 | name: {{ template "onos-pci.fullname" . }}-external 38 | labels: 39 | app: {{ template "onos-pci.fullname" . }} 40 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 41 | release: "{{ .Release.Name }}" 42 | heritage: "{{ .Release.Service }}" 43 | {{- include "onos-pci.labels" . | nindent 4 }} 44 | spec: 45 | type: NodePort 46 | selector: 47 | name: {{ template "onos-pci.fullname" . }} 48 | app: onos 49 | type: pci 50 | resource: {{ template "onos-pci.fullname" . }} 51 | {{- include "onos-pci.selectorLabels" . | nindent 4 }} 52 | ports: 53 | - name: exporter 54 | port: {{ .Values.service.exporter.port }} 55 | nodePort: {{ .Values.service.exporter.nodePort.port }} 56 | protocol: TCP 57 | {{- end }} 58 | --- 59 | 60 | -------------------------------------------------------------------------------- /onos-pci/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-pci`. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/onos-pci 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | imagePullSecrets: [] 24 | nameOverride: "" 25 | fullnameOverride: "onos-pci" 26 | 27 | storage: {} 28 | 29 | service: 30 | # TODO: External NodePort service should be disabled by default 31 | grpc: 32 | port: 5150 33 | gnmi: 34 | port: 9339 35 | exporter: 36 | port: 7001 37 | nodePort: 38 | enabled: false 39 | port: 31701 40 | 41 | config: 42 | pci: 43 | e2tEndpoint: "onos-e2t:5150" 44 | config_json: 45 | report_period: 46 | interval: 1000 # ms 47 | 48 | 49 | resources: {} 50 | # We usually recommend not to specify default resources and to leave this as a conscious 51 | # choice for the user. This also increases chances charts run on environments with little 52 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 53 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 54 | # limits: 55 | # cpu: 100m 56 | # memory: 128Mi 57 | # requests: 58 | # cpu: 100m 59 | # memory: 128Mi 60 | 61 | nodeSelector: {} 62 | 63 | tolerations: [] 64 | 65 | affinity: {} 66 | 67 | logging: 68 | loggers: 69 | root: 70 | level: info 71 | output: 72 | stdout: 73 | sink: stdout 74 | sinks: 75 | stdout: 76 | type: stdout 77 | stdout: {} 78 | -------------------------------------------------------------------------------- /onos-rsm/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-rsm/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-rsm 8 | description: ONOS RSM xAPP 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 0.2.7 12 | appVersion: v0.2.7 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-rsm/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS RSM 8 | 9 | Provides a [Helm] chart for deploying µONOS RSM xApp on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-rsm/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-e2t.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-e2t/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-rsm/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-rsm/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-rsm/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-rsm/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-rsm.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-rsm.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{- if .Values.logging }} 17 | {{ toYaml .Values.logging | indent 4 }} 18 | {{- end}} 19 | config.json: |- 20 | {{ .Values.config.rsm.config_json | toPrettyJson | indent 4 }} 21 | -------------------------------------------------------------------------------- /onos-rsm/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-rsm.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-rsm/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | --- 6 | apiVersion: v1 7 | kind: Service 8 | metadata: 9 | name: {{ template "onos-rsm.fullname" . }} 10 | labels: 11 | app: {{ template "onos-rsm.fullname" . }} 12 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 13 | release: "{{ .Release.Name }}" 14 | heritage: "{{ .Release.Service }}" 15 | {{- include "onos-rsm.labels" . | nindent 4 }} 16 | spec: 17 | type: ClusterIP 18 | selector: 19 | name: {{ template "onos-rsm.fullname" . }} 20 | app: onos 21 | type: rsm 22 | resource: {{ template "onos-rsm.fullname" . }} 23 | {{- include "onos-rsm.selectorLabels" . | nindent 4 }} 24 | ports: 25 | - name: exporter 26 | port: {{ .Values.service.exporter.port }} 27 | - name: grpc 28 | port: {{ .Values.service.grpc.port}} 29 | - name: gnmi 30 | port: {{.Values.service.gnmi.port}} 31 | 32 | {{- if .Values.service.exporter.nodePort.enabled }} 33 | --- 34 | apiVersion: v1 35 | kind: Service 36 | metadata: 37 | name: {{ template "onos-rsm.fullname" . }}-external 38 | labels: 39 | app: {{ template "onos-rsm.fullname" . }} 40 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 41 | release: "{{ .Release.Name }}" 42 | heritage: "{{ .Release.Service }}" 43 | {{- include "onos-rsm.labels" . | nindent 4 }} 44 | spec: 45 | type: NodePort 46 | selector: 47 | name: {{ template "onos-rsm.fullname" . }} 48 | app: onos 49 | type: rsm 50 | resource: {{ template "onos-rsm.fullname" . }} 51 | {{- include "onos-rsm.selectorLabels" . | nindent 4 }} 52 | ports: 53 | - name: exporter 54 | port: {{ .Values.service.exporter.port }} 55 | nodePort: {{ .Values.service.exporter.nodePort.port }} 56 | protocol: TCP 57 | {{- end }} 58 | --- 59 | 60 | -------------------------------------------------------------------------------- /onos-rsm/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for onos-rsm. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/onos-rsm 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | imagePullSecrets: [] 24 | nameOverride: "" 25 | fullnameOverride: "onos-rsm" 26 | 27 | storage: {} 28 | 29 | service: 30 | # TODO: External NodePort service should be disabled by default 31 | grpc: 32 | port: 5150 33 | gnmi: 34 | port: 9339 35 | exporter: 36 | port: 7001 37 | nodePort: 38 | enabled: false 39 | port: 31701 40 | 41 | config: 42 | rsm: 43 | e2tEndpoint: "onos-e2t:5150" 44 | config_json: 45 | report_period: 46 | interval: 1000 # ms 47 | 48 | 49 | resources: {} 50 | # We usually recommend not to specify default resources and to leave this as a conscious 51 | # choice for the user. This also increases chances charts run on environments with little 52 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 53 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 54 | # limits: 55 | # cpu: 100m 56 | # memory: 128Mi 57 | # requests: 58 | # cpu: 100m 59 | # memory: 128Mi 60 | 61 | nodeSelector: {} 62 | 63 | tolerations: [] 64 | 65 | affinity: {} 66 | 67 | logging: 68 | loggers: 69 | root: 70 | level: info 71 | output: 72 | stdout: 73 | sink: stdout 74 | sinks: 75 | stdout: 76 | type: stdout 77 | stdout: {} 78 | -------------------------------------------------------------------------------- /onos-uenib/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /onos-uenib/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: onos-uenib 8 | description: ONOS UE-NIB Subsystem 9 | kubeVersion: ">=1.17.0" 10 | type: application 11 | version: 1.4.2 12 | appVersion: v0.3.5 13 | keywords: 14 | - onos 15 | - sdn 16 | - ric 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /onos-uenib/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## ONOS UE-NIB 8 | 9 | Provides a [Helm] chart for deploying µONOS UE-NIB Subsystem on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/onos-ran/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /onos-uenib/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh onos-uenib.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/onos-uenib/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /onos-uenib/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /onos-uenib/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDcTCCAlkCFErBGzsXHo1l8bmZRmDkF+h2bsdVMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMjAwOTAxMDYwNTI2WhcNMzAwODMwMDYwNTI2 6 | WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEkMCIGA1UEAwwb 8 | b25vcy1lMnQub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOC 9 | AQ8AMIIBCgKCAQEAuNm6b+CvdyNUDUhqU8VNuldAVJtvtXInm7+WCCjpXJtYBw+2 10 | Amsa1S20Y5h6HnHIxXEsmB8wehQ9jl03CU8Z3YgXI7MJNjFEAHS7AKNfKz7SS92x 11 | oA46wukV3njmN4xk/JZfFrbaUJ4HcE5PVi5dJyyQxg6mPcpdbiYHQ4+uDN4cKU8m 12 | CRWdj4gNUaC+m8+qHqt3V3Vfa8iBMdpskTwT+1jBQcDGt+Ay2iinCAmf5m0pgEka 13 | VghtXIKLUjG/a17FAkgy/sTWJ7J4waD0iRQsEBeQ+4r2MCIttLRk/mTTdBLOkGUi 14 | unzjeh+1EiFslNUwXxu0qfhhJB3KNfwe0bF+LQIDAQABMA0GCSqGSIb3DQEBCwUA 15 | A4IBAQCAron90Id5rzqn73M7FcCN9pFtu1MZ/WYNBxPmrcRc/yZ80PecZoHgTnJh 16 | mBDTLwpoRLPimxTL4OzrnA6Go0kD/CPAThehGb8BBZ+aiSJ17I0/EL1HDmXStgRk 17 | WuqP2DxenckWHaNmPVE0PbB6BCsd5HP0tCC4vGBbGYbJmAhhjzhzEmEypqskt+Np 18 | eFe1DgDyfVrroIHmDLPCEu2ny9Syr/LslDmndGses8/QSVDDyAK/LFFMukCJRWsQ 19 | uIUJM/aDEAqbZUs4bb60hVfcZTU1HVPcp2xuOmVUFKUvHyCpt/n65Y/5XKQYQpTr 20 | 1qa1krCQOnuwSstIpqBCnX+TecP7 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /onos-uenib/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC42bpv4K93I1QN 3 | SGpTxU26V0BUm2+1ciebv5YIKOlcm1gHD7YCaxrVLbRjmHoeccjFcSyYHzB6FD2O 4 | XTcJTxndiBcjswk2MUQAdLsAo18rPtJL3bGgDjrC6RXeeOY3jGT8ll8WttpQngdw 5 | Tk9WLl0nLJDGDqY9yl1uJgdDj64M3hwpTyYJFZ2PiA1RoL6bz6oeq3dXdV9ryIEx 6 | 2myRPBP7WMFBwMa34DLaKKcICZ/mbSmASRpWCG1cgotSMb9rXsUCSDL+xNYnsnjB 7 | oPSJFCwQF5D7ivYwIi20tGT+ZNN0Es6QZSK6fON6H7USIWyU1TBfG7Sp+GEkHco1 8 | /B7RsX4tAgMBAAECggEBAIvky0HsKx7g77V1vnJTebWyXo8pa2tIT02BusvGGoXp 9 | Ur9VVouR/yaihkhxlsn/ltBGDFe8EvXw530ccpBq+so7OjfcQPZwZmRp8zRSb63M 10 | x15/EvRskG/98n0Bxkj3yV2Xd7M7AxHL5xlJSqWQRRNmmNIrOAi/Y+H+ibTJwhEd 11 | pV6pULHmvu4mU2YdkX/6RLOS89aAxOzXgs6nUzp826/ugb4X34izp/WwMzCs+QJd 12 | QVvjA/zuLnzIqspqt9bNJ3bCs+/ovqpdYlDBYbYHA0kLEMYOQsAkrWjJWPoLoDyD 13 | HLZZgG9jkQzkxdUzquku4UahsZZi8317jyT5b/GX0AECgYEA43jvJk887exwc04q 14 | s2/ef0spPD4JGVmblyD1upWdiWNgyRxxNbOkqaR1Gp5TqcdCmNRaraP3ZKbpngmp 15 | QKvKGLf/RH7H1b9/NuAlLAI8rSiP6h1MDyTbO1wwdSU4f1HO/3pVyRJfXd2h8+eD 16 | VfXe8rfXafWBBXWOeJ52JuDStC0CgYEA0Ahn7ikHKo8HM2FIJkrhm2Y4jwSL9TvO 17 | S6ikBbQPUbhcdyLbHVrOLlmiiBqNnuqe8AzaHrH+T6TeP312M5GGVT9CUkIb1Vq6 18 | fC8yVTDg4gPlSuz974xRSujWWLutX/6Hr8eAN8L/E78LD/Ojy+DISnIzmTC2B5lM 19 | o6WJ+BcmMgECgYAxrrY9Hc1nAd9Fr+rvqh1knBvzhnEiUkoDZjWFfSwdV9FJ26Z2 20 | Xjg2vS6+k5oeWOEY1DjB+DAOkc4wsFeBQoQvhfCBG1e2Pc8hQy+bPxnVkChur9tu 21 | 61Pe0THcRDbkyA94CVY3RoYB0GiRBx3OZpc9WB36jJ6TfKuTeLjBoRUkOQKBgHl9 22 | Pzy9pxq6lojx+hGqz2BSbRtQm2+m8o4KuWc/RWcDFLTanT3iZuB4pkt3vlcdS56C 23 | 0ur0JcFbVhOb8GijRuEH5XJmexy5NIkLgwhvWBWGEuUTzCSWPG9T1MHTMKgL3C/S 24 | gVWPQinE+u/g6DpLVozrbqi64sNDSpeTOCSzWDIBAoGAWBxIN1k+xQQYneI1+uvi 25 | d8NpUcLRilayIKQkaZFA+efXpyPOq8r0WtAh8tpTA3NFXunMiejJUF1wkzL4+NLt 26 | 3ct4RY4eHoPQHtxOqZn7aMx+8/V4yz6IDKEsAsxK1p7AP6yt6GEWzj8OvrP7cm4Z 27 | NVQirzdY6fbkOULBISdVSWk= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /onos-uenib/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "onos-uenib.fullname" . }}-config 9 | labels: 10 | app: {{ template "onos-uenib.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | onos.yaml: "" 16 | logging.yaml: |- 17 | {{- if .Values.logging }} 18 | {{ toYaml .Values.logging | indent 4 }} 19 | {{- end}} 20 | -------------------------------------------------------------------------------- /onos-uenib/templates/raftcluster.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | {{- if .Values.atomix.store.consensus.enabled }} 7 | apiVersion: raft.atomix.io/v1beta3 8 | kind: RaftCluster 9 | metadata: 10 | name: {{ template "onos-uenib.atomix.consensus.cluster.name" . }} 11 | namespace: {{ .Release.Namespace }} 12 | labels: 13 | name: {{ template "onos-uenib.atomix.consensus.cluster.name" . }} 14 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 15 | release: "{{ .Release.Name }}" 16 | heritage: "{{ .Release.Service }}" 17 | spec: 18 | replicas: {{ .Values.atomix.store.consensus.replicas }} 19 | {{- if .Values.atomix.store.consensus.image.tag }} 20 | image: "{{ .Values.atomix.store.consensus.image.repository }}:{{ .Values.atomix.store.consensus.image.tag }}" 21 | {{- end }} 22 | {{- with .Values.atomix.store.consensus.image.pullPolicy }} 23 | imagePullPolicy: {{ . }} 24 | {{- end }} 25 | {{- with .Values.atomix.store.consensus.image.pullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 4 }} 28 | {{- end }} 29 | {{- with .Values.atomix.store.consensus.securityContext }} 30 | securityContext: 31 | {{- toYaml . | nindent 4 }} 32 | {{- end }} 33 | persistence: {{- .Values.atomix.store.consensus.persistence | toYaml | nindent 4 }} 34 | logging: 35 | encoding: {{ .Values.atomix.store.consensus.logging.encoding }} 36 | rootLevel: {{ .Values.atomix.store.consensus.logging.level }} 37 | {{- if .Values.atomix.store.consensus.logging.loggers }} 38 | loggers: 39 | {{- range $key, $value := .Values.atomix.store.consensus.logging.loggers }} 40 | - name: {{ $key }} 41 | level: {{ $value }} 42 | {{- end }} 43 | {{- end }} 44 | {{- end }} 45 | -------------------------------------------------------------------------------- /onos-uenib/templates/raftstore.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: raft.atomix.io/v1beta3 7 | kind: RaftStore 8 | metadata: 9 | name: {{ template "onos-uenib.atomix.consensus.store.name" . }} 10 | namespace: {{ .Release.Namespace }} 11 | labels: 12 | name: {{ template "onos-uenib.atomix.consensus.store.name" . }} 13 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 14 | release: "{{ .Release.Name }}" 15 | heritage: "{{ .Release.Service }}" 16 | spec: 17 | cluster: 18 | name: {{ template "onos-uenib.atomix.consensus.cluster.name" . }} 19 | partitions: {{ .Values.atomix.store.consensus.partitions }} 20 | {{- with .Values.atomix.store.consensus.config.electionRTT }} 21 | electionRTT: {{ . }} 22 | {{- end }} 23 | {{- with .Values.atomix.store.consensus.config.heartbeatRTT }} 24 | heartbeatRTT: {{ . }} 25 | {{- end }} 26 | {{- with .Values.atomix.store.consensus.config.snapshotEntries }} 27 | snapshotEntries: {{ . }} 28 | {{- end }} 29 | {{- with .Values.atomix.store.consensus.config.compactionOverhead }} 30 | compactionOverhead: {{ . }} 31 | {{- end }} 32 | {{- with .Values.atomix.store.consensus.config.maxInMemLogSize }} 33 | maxInMemLogSize: {{ . }} 34 | {{- end }} 35 | -------------------------------------------------------------------------------- /onos-uenib/templates/role.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: rbac.authorization.k8s.io/v1 6 | kind: Role 7 | metadata: 8 | creationTimestamp: null 9 | name: {{ template "onos-uenib.fullname" . }} 10 | namespace: {{ .Release.Namespace }} 11 | rules: 12 | - apiGroups: 13 | - primitives.atomix.io 14 | resources: 15 | - '*' 16 | resourceNames: 17 | - {{ template "onos-uenib.fullname" . }}-objects 18 | verbs: 19 | - '*' -------------------------------------------------------------------------------- /onos-uenib/templates/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | kind: RoleBinding 6 | apiVersion: rbac.authorization.k8s.io/v1 7 | metadata: 8 | name: {{ template "onos-uenib.fullname" . }} 9 | namespace: {{ .Release.Namespace }} 10 | subjects: 11 | - kind: ServiceAccount 12 | name: {{ template "onos-uenib.fullname" . }} 13 | roleRef: 14 | kind: Role 15 | name: {{ template "onos-uenib.fullname" . }} 16 | apiGroup: rbac.authorization.k8s.io -------------------------------------------------------------------------------- /onos-uenib/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "onos-uenib.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /onos-uenib/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | --- 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ template "onos-uenib.fullname" . }} 9 | labels: 10 | app: {{ template "onos-uenib.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | {{- include "onos-uenib.labels" . | nindent 4 }} 15 | spec: 16 | type: ClusterIP 17 | selector: 18 | name: {{ template "onos-uenib.fullname" . }} 19 | app: onos 20 | type: uenib 21 | resource: {{ template "onos-uenib.fullname" . }} 22 | {{- include "onos-uenib.selectorLabels" . | nindent 4 }} 23 | ports: 24 | - name: grpc 25 | port: {{ .Values.service.grpc.port }} 26 | --- 27 | apiVersion: v1 28 | kind: Service 29 | metadata: 30 | name: {{ include "onos-uenib.fullname" . }}-hs 31 | labels: 32 | app: {{ template "onos-uenib.fullname" . }} 33 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 34 | release: "{{ .Release.Name }}" 35 | heritage: "{{ .Release.Service }}" 36 | {{- include "onos-uenib.labels" . | nindent 4 }} 37 | spec: 38 | clusterIP: None 39 | selector: 40 | name: {{ template "onos-uenib.fullname" . }} 41 | app: onos 42 | type: uenib 43 | resource: {{ template "onos-uenib.fullname" . }} 44 | {{- include "onos-uenib.selectorLabels" . | nindent 4 }} 45 | ports: 46 | - name: grpc 47 | port: {{ .Values.service.grpc.port }} 48 | --- 49 | -------------------------------------------------------------------------------- /onos-uenib/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ServiceAccount 7 | metadata: 8 | name: {{ template "onos-uenib.fullname" . }} 9 | namespace: {{ .Release.Namespace }} -------------------------------------------------------------------------------- /onos-uenib/templates/storageprofile.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: atomix.io/v3beta4 7 | kind: StorageProfile 8 | metadata: 9 | name: {{ template "onos-uenib.fullname" . }} 10 | namespace: {{ .Release.Namespace }} 11 | labels: 12 | name: {{ template "onos-uenib.fullname" . }} 13 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 14 | release: "{{ .Release.Name }}" 15 | heritage: "{{ .Release.Service }}" 16 | spec: 17 | routes: 18 | - store: 19 | name: {{ template "onos-uenib.atomix.consensus.store.name" . }} 20 | {{- with .Values.atomix.store.consensus.rules }} 21 | rules: 22 | {{ . | toYaml | nindent 8 }} 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /ran-simulator/.helmignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Patterns to ignore when building packages. 6 | # This supports shell glob matching, relative path matching, and 7 | # negation (prefixed with !). Only one pattern per line. 8 | .DS_Store 9 | # Common VCS dirs 10 | .git/ 11 | .gitignore 12 | .bzr/ 13 | .bzrignore 14 | .hg/ 15 | .hgignore 16 | .svn/ 17 | # Common backup files 18 | *.swp 19 | *.bak 20 | *.tmp 21 | *~ 22 | # Various IDEs 23 | .project 24 | .idea/ 25 | *.tmproj 26 | .vscode/ 27 | -------------------------------------------------------------------------------- /ran-simulator/Chart.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 2 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | apiVersion: v2 7 | name: ran-simulator 8 | description: ONOS RAN Simulator 9 | kubeVersion: ">=1.15.0" 10 | type: application 11 | version: 1.4.18 12 | appVersion: v0.10.16 13 | keywords: 14 | - onos 15 | - sdn 16 | - ran 17 | home: https://onosproject.org 18 | maintainers: 19 | - name: ONOS Support 20 | email: support@opennetworking.org 21 | -------------------------------------------------------------------------------- /ran-simulator/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## RAN Simulator 8 | 9 | Provides a [Helm] chart for deploying µONOS Ran Simulator on [Kubernetes]. 10 | See the [documentation](https://docs.onosproject.org/ran-simulator/docs/deployment/) for more info. 11 | -------------------------------------------------------------------------------- /ran-simulator/files/certs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | This folder contains self-signed certificates for use in testing. _DO NOT USE THESE 8 | CERTIFICATES IN PRODUCTION!_ 9 | 10 | The certificates were generated with the 11 | https://github.com/onosproject/simulators/blob/master/pkg/certs/generate_certs.sh 12 | script as 13 | ```bash 14 | generate-certs.sh ran-simulator.opennetworking.org 15 | ``` 16 | 17 | In this folder they **must** be (re)named 18 | * tls.cacrt 19 | * tls.crt 20 | * tls.key 21 | 22 | Use 23 | ```bash 24 | openssl x509 -in deployments/helm/ran-simulator/files/certs/tls.crt -text -noout 25 | ``` 26 | to verify the contents (especially the subject). 27 | -------------------------------------------------------------------------------- /ran-simulator/files/certs/tls.cacrt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYDCCAkgCCQDe99fSN9qxSTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFyazEMMAoGA1UECgwDT05G 4 | MRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UEAwwVY2Eub3Blbm5ldHdvcmtp 5 | bmcub3JnMB4XDTE5MDQxMTA5MDYxM1oXDTI5MDQwODA5MDYxM1owcjELMAkGA1UE 6 | BhMCVVMxCzAJBgNVBAgMAkNBMRIwEAYDVQQHDAlNZW5sb1BhcmsxDDAKBgNVBAoM 7 | A09ORjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNhLm9wZW5uZXR3 8 | b3JraW5nLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEg7CZR 9 | X8Y+syKHaQCh6mNIL1D065trwX8RnuKM2kBwSu034zefQAPloWugSoJgJnf5fe0j 10 | nUD8gN3Sm8XRhCkvf67pzfabgw4n8eJmHScyL/ugyExB6Kahwzn37bt3oT3gSqhr 11 | 6PUznWJ8fvfVuCHZZkv/HPRp4eyAcGzbJ4TuB0go4s6VE0WU5OCxCSlAiK3lvpVr 12 | 3DOLdYLVoCa5q8Ctl3wXDrfTLw5/Bpfrg9fF9ED2/YKIdV8KZ2ki/gwEOQqWcKp8 13 | 0LkTlfOWsdGjp4opPuPT7njMBGXMJzJ8/J1e1aJvIsoB7n8XrfvkNiWL5U3fM4N7 14 | UZN9jfcl7ULmm7cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh6FjkQuTfXddmZY 15 | FYpoTen/VD5iu2Xxc1TexwmKeH+YtaKp1Zk8PTgbCtMEwEiyslfeHTMtODfnpUIk 16 | DwvtB4W0PAnreRsqh9MBzdU6YZmzGyZ92vSUB3yukkHaYzyjeKM0AwgVl9yRNEZw 17 | Y/OM070hJXXzJh3eJpLl9dlUbMKzaoAh2bZx6y3ZJIZFs/zrpGfg4lvBAvfO/59i 18 | mxJ9bQBSN3U2Hwp6ioOQzP0LpllfXtx9N5LanWpB0cu/HN9vAgtp3kRTBZD0M1XI 19 | Ctit8bXV7Mz+1iGqoyUhfCYcCSjuWTgAxzir+hrdn7uO67Hv4ndCoSj4SQaGka3W 20 | eEfVeA== 21 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /ran-simulator/files/certs/tls.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDdDCCAlwCFBveh0tyYQtXayQPaXgW+5dLuK8DMA0GCSqGSIb3DQEBCwUAMHIx 3 | CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTESMBAGA1UEBwwJTWVubG9QYXJrMQww 4 | CgYDVQQKDANPTkYxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQDDBVjYS5v 5 | cGVubmV0d29ya2luZy5vcmcwHhcNMTkwNzE2MTkwNjU2WhcNMjkwNzEzMTkwNjU2 6 | WjB7MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCU1lbmxvUGFy 7 | azEMMAoGA1UECgwDT05GMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEnMCUGA1UEAwwe 8 | b25vcy1jb25maWcub3Blbm5ldHdvcmtpbmcub3JnMIIBIjANBgkqhkiG9w0BAQEF 9 | AAOCAQ8AMIIBCgKCAQEAs1ER/FG9COwYnyDOxxPIGJb8p9l59GLqYdnb3PH5EI6y 10 | AfhpJDhp+Z/RN8v+/NhH6JPYquPxRKWmHhRXmwEHgYREfkqK+HikTv86H5Tq/Xzz 11 | BqadHkopMz+Q66Wo4LoD3M+Vl/11gUU9s7SIWBmcJly9ETQN5nddeGa+v+Mg9QoS 12 | W/8CK7Y1iCguu3h2FYju+OQ7HJ9hO5abs3XiuJJJN9hPJRr1O1UtgUzlVbj2QLcT 13 | BDntIxPKUc3/M5IpzgLt2vgHW9VMO5vFOXsr+UyQd/lByVXTxQKS5aw0kwMUJSdN 14 | vasV3FAz4usP9IBx5Pq3MwMQF1uO5zJ8Xo2ytlsI0wIDAQABMA0GCSqGSIb3DQEB 15 | CwUAA4IBAQB9W8/ygG87QLR37GZfutYLi9hBJQHSppCxZB2SBP1yl/Js1hHM0paP 16 | ywlbRbmuCv7LM3CiaXdJo9w7onYha/BtJIYG0YHZqnXLjk0uufP07CBISGKXnfp0 17 | y35YqruHjXtkoKdcqOGZsuz88iQ579PrvJpWCOon936FM7vBzKeBoNbBso52vt7b 18 | FtKISoGAr8XwCrFYxgHOjYUP8A9d9ylaa3Hgfd7Xul2BKO3tPx/7oFxiaz40ATuQ 19 | wN9OEsvNmP2TcrLEFKoUJBtyYV9gFCqQPuf7obwbTV5m1JW+1+NEsKNcWemdKU6x 20 | N0u+jCC7D7so8pjqfZRouCW2dKVlIRjj 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /ran-simulator/files/certs/tls.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzURH8Ub0I7Bif 3 | IM7HE8gYlvyn2Xn0Yuph2dvc8fkQjrIB+GkkOGn5n9E3y/782Efok9iq4/FEpaYe 4 | FFebAQeBhER+Sor4eKRO/zoflOr9fPMGpp0eSikzP5DrpajgugPcz5WX/XWBRT2z 5 | tIhYGZwmXL0RNA3md114Zr6/4yD1ChJb/wIrtjWIKC67eHYViO745Dscn2E7lpuz 6 | deK4kkk32E8lGvU7VS2BTOVVuPZAtxMEOe0jE8pRzf8zkinOAu3a+Adb1Uw7m8U5 7 | eyv5TJB3+UHJVdPFApLlrDSTAxQlJ029qxXcUDPi6w/0gHHk+rczAxAXW47nMnxe 8 | jbK2WwjTAgMBAAECggEBALE57iHIk6Hu3wLfhR9DUN/k0r/+dMdywB6IGQKNcVHJ 9 | BuxlnV08GJmsODcCevlhteiLv3hfI4Vqhv1xs4gygz2iAaQkfqfHbPXa0ZKHN53j 10 | 0bqAEAfw2jmZmN0edQPvNYQW8s4upuVmDu6+/oa8gRV1UTRgk2B2Fz65pcu3a0pi 11 | yVeZzeAO/vD7WNP3uM7Yuv0AQTKKLvOqZmKLeDwPeC+2sbi03opYbIaEl+OJ94DX 12 | 9hCm1/vqojlzw+BHrxGS8bqXMnJnqxLep/gmbvL0Iy92SJgEBk6l8t7xzpBqSjDW 13 | +DjDLqpda6r/Dy9b5hBZ0a/4V+fRJPz4S/k+qjp9DyECgYEA7KMQur7QZcSAWPPM 14 | ZV5TM6+SDYn6TP9csbyB4IbOfeLdIkVKY+svVz2m7FynfQb4whtxERbMy0QjYEgc 15 | us3p/QVjHBs/JZIdtIg5ff6qgOFAkuaCXEJKyH4wcEA091cr6HWslWCHzop2SD+T 16 | dpvSgXJXpx1RYP/6X3sUf1mKAOMCgYEAwf1K4fOYZwyT44VPurxhmzgDWW2PKm6I 17 | gCOZN9EN2Mvt0J5zKKoHw8ORHGN9zxLMyB11803Uwm7nceApM3FUacmLHP05Q1Vo 18 | ukHVLoFQYwXLQzSWiZbtxcbMK3P1EU2Sg5+yfoRf6usmRIWDlr4+TIzT3a20nhV0 19 | olOj3xFtC1ECgYBHyeiHXuAGH6j4U24MyqLfKUJbzSIcPdQ3L4MPRJZcZnjDrtW0 20 | nmLMSq3bQvik23qYGI8iqhITEGbTDM16doGn+vxoSHPNyBgu7qzSZnH/i1Z1umyN 21 | 5KafUHkNdM0cxFtTuG9VGeXZaPQdUvw/nWItVyz0S9amYMHqOYKsZ9OQFQKBgQC6 22 | tfYq//CBzqNQ63DPxJ0VbpYars6LApQy8RB5nqb7MVyV3MvuKakLjOHQNxpSAkBD 23 | o8dxBEpxUZlGC4DcWInsv+U7Y6aH3l7MVqy+9AvRIzR+XNE/YJs+Lpc4g4UuwEDy 24 | mvSLvREs5GOStAbxQe5oc2tAA/7B4Ni/nE0vWHBh4QKBgDUukLjK4i+AqCm6Z4iu 25 | /FcKtNC2+BLxZ2sjaRVn78aQ2DXWaKWVaKwSBJOtLghOyjAzvH8VDOtvp92rQgDk 26 | ltnoTp09B9B80dNOVqIi113Inr89N/QDNVYctqPbzizbWHlf3ENwVklwAXhmOIbN 27 | 1l0Cge8ERKGcAIl9SsTl+5Se 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /ran-simulator/files/metrics/metrics.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | metrics: 6 | rc: 7 | pci: 8 | cells: 9 | -------------------------------------------------------------------------------- /ran-simulator/files/metrics/three-cell-metrics.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | metrics: 6 | rc: 7 | pci: 8 | cells: 9 | 343332707639553: 10 | cellSize: FEMTO 11 | earfcn: 43 12 | pci: 207 13 | pciPool: 14 | - min: 166 15 | max: 248 16 | 343332707639554: 17 | cellSize: OUTDOOR_SMALL 18 | earfcn: 44 19 | pci: 419 20 | pciPool: 21 | - min: 332 22 | max: 414 23 | 343332707639555: 24 | cellSize: OUTDOOR_SMALL 25 | earfcn: 42 26 | pci: 419 27 | pciPool: 28 | - min: 415 29 | max: 497 30 | - min: 332 31 | max: 414 32 | -------------------------------------------------------------------------------- /ran-simulator/files/metrics/three-cell-n-node-metrics.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | metrics: 6 | rc: 7 | pci: 8 | cells: 9 | -------------------------------------------------------------------------------- /ran-simulator/files/model/one-cell-model.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | layout: 6 | center: 7 | lat: 52.52 8 | lng: 13.405 9 | zoom: 0 10 | locationsscale: 1.25 11 | fademap: false 12 | showroutes: false 13 | showpower: false 14 | 15 | nodes: 16 | node1: 17 | gnbid: 20819 18 | controllers: 19 | - e2t-1 20 | servicemodels: 21 | - rc 22 | - kpm2 23 | cells: 24 | - 87893173159116801 25 | status: stopped 26 | cells: 27 | cell1: 28 | ncgi: 87893173159116801 29 | sector: 30 | center: 31 | lat: 52.486405366824926 32 | lng: 13.40 33 | azimuth: 0 34 | arc: 120 35 | tilt: 1 36 | height: 43 37 | color: green 38 | maxues: 99999 39 | neighbors: 40 | - 87893173159116801 41 | txpowerdb: 11 42 | measurementparams: 43 | timetotrigger: 0 44 | frequencyoffset: 0 45 | pcellindividualoffset: 0 46 | ncellindividualoffsets: {} 47 | hysteresis: 0 48 | eventa3params: 49 | a3offset: 0 50 | reportonleave: false 51 | pci: 218 52 | earfcn: 42 53 | celltype: 2 54 | rrcidlecount: 0 55 | rrcconnectedcount: 0 56 | controllers: 57 | e2t-1: 58 | id: e2t-1 59 | address: onos-e2t 60 | port: 36421 61 | servicemodels: 62 | kpm2: 63 | id: 4 64 | description: kpm2 service model 65 | version: 1.0.0 66 | rc: 67 | id: 6 68 | description: RAN Control service model 69 | version: 1.0.0 70 | 71 | ueCount: 1 72 | ueCountPerCell: 15 73 | plmnID: "138426" 74 | plmnNumber: 1279014 75 | apiKey: "" 76 | guami: 77 | amfregionid: 221 78 | amfsetid: 819 79 | amfpointer: 63 80 | -------------------------------------------------------------------------------- /ran-simulator/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing {{ .Chart.Name }} Helm chart. 2 | 3 | Your release is named {{ .Release.Name }} in namespace {{.Release.Namespace}}. 4 | See https://docs.onosproject.org/developers/deploy_with_helm/ 5 | 6 | To learn more about the release, try: 7 | $ helm -n {{.Release.Namespace}} status {{ .Release.Name }} 8 | $ helm -n {{.Release.Namespace}} get all {{ .Release.Name }} 9 | 10 | {{ .Release.Name }} depends on the "onos-topo" micro service. 11 | -------------------------------------------------------------------------------- /ran-simulator/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ template "ran-simulator.fullname" . }}-config 9 | labels: 10 | app: {{ template "ran-simulator.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | data: 15 | logging.yaml: |- 16 | {{ toYaml .Values.logging | indent 4 }} 17 | {{- $files := .Files }} 18 | {{- range $key, $value := .Files }} 19 | {{- if hasPrefix "files/metrics/" $key }} 20 | {{ $key | trimPrefix "files/metrics/" }}: |- 21 | {{ $files.Get $key | indent 4 }} 22 | {{- end }} 23 | {{- if hasPrefix "files/model/" $key }} 24 | {{ $key | trimPrefix "files/model/" }}: |- 25 | {{ $files.Get $key | indent 4 }} 26 | {{- end }} 27 | {{- end }} -------------------------------------------------------------------------------- /ran-simulator/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Secret 7 | metadata: 8 | name: {{ template "ran-simulator.fullname" . }}-secret 9 | labels: 10 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 11 | release: "{{ .Release.Name }}" 12 | heritage: "{{ .Release.Service }}" 13 | data: 14 | {{ $root := . }} 15 | {{ range $path, $bytes := .Files.Glob "files/certs/tls.*" }} 16 | {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}' 17 | {{ end }} 18 | type: Opaque 19 | -------------------------------------------------------------------------------- /ran-simulator/templates/service.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: Service 7 | metadata: 8 | name: {{ include "ran-simulator.fullname" . }} 9 | labels: 10 | app: {{ template "ran-simulator.fullname" . }} 11 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 12 | release: "{{ .Release.Name }}" 13 | heritage: "{{ .Release.Service }}" 14 | {{- include "ran-simulator.labels" . | nindent 4 }} 15 | spec: 16 | type: {{ .Values.service.type }} 17 | selector: 18 | name: {{ template "ran-simulator.fullname" . }} 19 | app: onos 20 | type: sim 21 | resource: {{ template "ran-simulator.fullname" . }} 22 | {{- include "ran-simulator.selectorLabels" . | nindent 4 }} 23 | ports: 24 | - name: trafficsim 25 | port: 5150 26 | - name: exporter 27 | port: 9090 28 | # Other ports will be added here dynamically by the application for E2 interface 29 | -------------------------------------------------------------------------------- /ran-simulator/values.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Default values for ran-simulator. 6 | # This is a YAML-formatted file. 7 | # Declare variables to be passed into your templates. 8 | 9 | global: 10 | image: 11 | registry: "" 12 | tag: "" 13 | 14 | replicaCount: 1 15 | 16 | image: 17 | registry: "" 18 | repository: onosproject/ran-simulator 19 | tag: '{{ .Chart.AppVersion }}' 20 | pullPolicy: IfNotPresent 21 | pullSecrets: [] 22 | 23 | googleApiKey: "YOUR_API_KEY_HERE" 24 | 25 | imagePullSecrets: [] 26 | nameOverride: "" 27 | fullnameOverride: "ran-simulator" 28 | 29 | store: {} 30 | 31 | ingress: 32 | enabled: false 33 | 34 | service: 35 | type: ClusterIP 36 | 37 | pci: 38 | modelName: "model" 39 | metricName: "metrics" 40 | 41 | mobility: 42 | # hoLogic: "mho" 43 | hoLogic: "local" 44 | 45 | servicemodels: {} 46 | 47 | resources: {} 48 | # We usually recommend not to specify default resources and to leave this as a conscious 49 | # choice for the user. This also increases chances charts run on environments with little 50 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 51 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 52 | # limits: 53 | # cpu: 100m 54 | # memory: 128Mi 55 | # requests: 56 | # cpu: 100m 57 | # memory: 128Mi 58 | 59 | nodeSelector: {} 60 | 61 | tolerations: [] 62 | 63 | affinity: {} 64 | 65 | logging: 66 | loggers: 67 | root: 68 | level: info 69 | output: 70 | stdout: 71 | sink: stdout 72 | sinks: 73 | stdout: 74 | type: stdout 75 | stdout: {} 76 | -------------------------------------------------------------------------------- /rimedo-ts/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /rimedo-ts/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: rimedo-ts 3 | description: RIMEDO-Labs xApp Traffic Steering 4 | kubeVersion: ">=1.16.0" 5 | type: application 6 | version: 0.1.2 7 | appVersion: v0.1.3 8 | home: https://rimedolabs.com 9 | maintainers: 10 | - name: Lukasz Kulacz 11 | email: lukasz.kulacz@rimedolabs.com 12 | - name: Adam Samorzewski 13 | email: adam.samorzewski@rimedolabs.com 14 | -------------------------------------------------------------------------------- /rimedo-ts/README.md: -------------------------------------------------------------------------------- 1 | ## RIMEDO-Labs Traffic Steering xApp 2 | 3 | Provides a [Helm] chart for deploying Traffic Steering xApp on [Kubernetes]. 4 | -------------------------------------------------------------------------------- /rimedo-ts/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "rimedo-ts.name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 7 | {{- end }} 8 | 9 | {{/* 10 | Create a default fully qualified app name. 11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 12 | If release name contains chart name it will be used as a full name. 13 | */}} 14 | {{- define "rimedo-ts.fullname" -}} 15 | {{- if .Values.fullnameOverride }} 16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 17 | {{- else }} 18 | {{- $name := default .Chart.Name .Values.nameOverride }} 19 | {{- if contains $name .Release.Name }} 20 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 21 | {{- else }} 22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 23 | {{- end }} 24 | {{- end }} 25 | {{- end }} 26 | 27 | {{/* 28 | Create chart name and version as used by the chart label. 29 | */}} 30 | {{- define "rimedo-ts.chart" -}} 31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 32 | {{- end }} 33 | 34 | {{/* 35 | Common labels 36 | */}} 37 | {{- define "rimedo-ts.labels" -}} 38 | helm.sh/chart: {{ include "rimedo-ts.chart" . }} 39 | {{ include "rimedo-ts.selectorLabels" . }} 40 | {{- if .Chart.AppVersion }} 41 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 42 | {{- end }} 43 | app.kubernetes.io/managed-by: {{ .Release.Service }} 44 | {{- end }} 45 | 46 | {{/* 47 | Selector labels 48 | */}} 49 | {{- define "rimedo-ts.selectorLabels" -}} 50 | app.kubernetes.io/name: {{ include "rimedo-ts.name" . }} 51 | app.kubernetes.io/instance: {{ .Release.Name }} 52 | {{- end }} 53 | 54 | {{/* 55 | Create the name of the service account to use 56 | */}} 57 | {{- define "rimedo-ts.serviceAccountName" -}} 58 | {{- if .Values.serviceAccount.create }} 59 | {{- default (include "rimedo-ts.fullname" .) .Values.serviceAccount.name }} 60 | {{- else }} 61 | {{- default "default" .Values.serviceAccount.name }} 62 | {{- end }} 63 | {{- end }} 64 | -------------------------------------------------------------------------------- /rimedo-ts/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "rimedo-ts.fullname" . }} 5 | labels: 6 | app: {{ include "rimedo-ts.fullname" . }} 7 | spec: 8 | type: NodePort 9 | ports: 10 | - name: grpc 11 | port: {{ .Values.service.grpc.port }} 12 | selector: 13 | name: {{ include "rimedo-ts.fullname" . }} 14 | -------------------------------------------------------------------------------- /rimedo-ts/values.yaml: -------------------------------------------------------------------------------- 1 | image: 2 | repository: onosproject/rimedo-ts 3 | pullPolicy: IfNotPresent 4 | tag: v0.0.5 5 | 6 | service: 7 | grpc: 8 | port: 5150 9 | -------------------------------------------------------------------------------- /sd-ran/.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | requirements.lock 6 | charts 7 | Chart.lock -------------------------------------------------------------------------------- /sd-ran/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## SD-RAN Umbrella chart 8 | 9 | SD-RAN™ is building open source components for the mobile RAN space, complementing O-RAN’s focus on architecture and interfaces by building and trialing O-RAN compliant open source components. This will foster the creation of true multi-vendor RAN solutions and help invigorate innovation across the RAN ecosystem. 10 | 11 | SD-RAN is developing a near-real-time RIC (nRT-RIC) and a set of exemplar xApps for controlling the RAN. This RIC is cloud-native and builds on several of ONF’s well established platforms including the ONOS SDN Controller. The architecture for the SD-RAN nRT-RIC will leverage the O-RAN architecture and vision. 12 | 13 | As the O-RAN specifications evolve, SD-RAN will follow them. As the SD-RAN project creates new functionality, all extensions and learning that come from building the system will be contributed back to the O-RAN Alliance with the intent that these extensions can help advance the O-RAN specifications. 14 | 15 | This repo provides a [Helm] chart for deploying SD-RAN™ 16 | in a [Kubernetes] environment. 17 | See the [documentation] for more info. 18 | 19 | [Kubernetes]: https://kubernetes.io/ 20 | [Helm]: https://helm.sh/ 21 | [documentation]: https://docs.sd-ran.org 22 | -------------------------------------------------------------------------------- /sd-ran/files/configs/README.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | # Config files 8 | 9 | Copied here from ran-simulator/pkg/config 10 | 11 | Available in /home/onos at runtime. Needed 12 | to populate onos-topo and onos-config through 13 | a post-install action on startup of sd-ran. 14 | 15 | > TODO: automate the process of copying these -------------------------------------------------------------------------------- /sd-ran/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing {{ .Chart.Name }} Helm chart. 2 | 3 | Your release is named {{ .Release.Name }} in namespace {{.Release.Namespace}}. 4 | See https://docs.onosproject.org/developers/deploy_with_helm/ 5 | 6 | To learn more about the release, try: 7 | $ helm -n {{.Release.Namespace}} status {{ .Release.Name }} 8 | $ helm -n {{.Release.Namespace}} get all {{ .Release.Name }} 9 | $ watch kubectl -n {{.Release.Namespace}} get pods 10 | 11 | You can attach to: 12 | * Onos CLI pod with 13 | $ kubectl -n {{.Release.Namespace}} exec -it $(kubectl -n {{.Release.Namespace}} get pods -l type=cli -o name) -- /bin/sh 14 | -------------------------------------------------------------------------------- /sd-ran/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | apiVersion: v1 6 | kind: ConfigMap 7 | metadata: 8 | name: {{ .Release.Name }}-post 9 | namespace: {{ .Release.Namespace }} 10 | data: 11 | {{ (.Files.Glob "files/configs/*.yaml").AsConfig | indent 2 }} 12 | -------------------------------------------------------------------------------- /sd-ran/templates/raftcluster.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | # SPDX-FileCopyrightText: 2022-present Intel Corporation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | 6 | 7 | apiVersion: raft.atomix.io/v1beta3 8 | kind: RaftCluster 9 | metadata: 10 | name: {{ template "global.atomix.consensus.cluster.name" . }} 11 | namespace: {{ .Release.Namespace }} 12 | labels: 13 | name: {{ template "global.atomix.consensus.cluster.name" . }} 14 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 15 | release: "{{ .Release.Name }}" 16 | heritage: "{{ .Release.Service }}" 17 | spec: 18 | replicas: {{ .Values.atomix.store.consensus.replicas }} 19 | {{- if .Values.atomix.store.consensus.image.tag }} 20 | image: "{{ .Values.atomix.store.consensus.image.repository }}:{{ .Values.atomix.store.consensus.image.tag }}" 21 | {{- end }} 22 | {{- with .Values.atomix.store.consensus.image.pullPolicy }} 23 | imagePullPolicy: {{ . }} 24 | {{- end }} 25 | {{- with .Values.atomix.store.consensus.image.pullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 4 }} 28 | {{- end }} 29 | {{- with .Values.atomix.store.consensus.securityContext }} 30 | securityContext: 31 | {{- toYaml . | nindent 4 }} 32 | {{- end }} 33 | persistence: {{- .Values.atomix.store.consensus.persistence | toYaml | nindent 4 }} 34 | logging: 35 | encoding: {{ .Values.atomix.store.consensus.logging.encoding }} 36 | rootLevel: {{ .Values.atomix.store.consensus.logging.level }} 37 | {{- if .Values.atomix.store.consensus.logging.loggers }} 38 | loggers: 39 | {{- range $key, $value := .Values.atomix.store.consensus.logging.loggers }} 40 | - name: {{ $key }} 41 | level: {{ $value }} 42 | {{- end }} 43 | {{- end }} 44 | -------------------------------------------------------------------------------- /sd-ran/templates/topo-kinds.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # A topology kind representing an E2 node 6 | apiVersion: topo.onosproject.org/v1beta1 7 | kind: Kind 8 | metadata: 9 | name: e2node 10 | spec: 11 | aspects: 12 | onos.topo.Location: 13 | lat: 50.08834 14 | lng: 14.40372 15 | onos.topo.E2Node: 16 | service_models: 17 | --- 18 | 19 | # A topology kind representing an E2 cell 20 | apiVersion: topo.onosproject.org/v1beta1 21 | kind: Kind 22 | metadata: 23 | name: e2cell 24 | spec: 25 | aspects: 26 | onos.topo.Location: 27 | lat: 50.08834 28 | lng: 14.40372 29 | onos.topo.E2Cell: 30 | cid: 0 31 | antenna_count: 1 32 | earfcn: 0 33 | cell_type: FEMTO 34 | onos.topo.Coverage: 35 | height: 0 36 | arc_width: 120 37 | azimuth: 0 38 | tilt: 0 39 | --- 40 | # A topology kind representing an E2 termination point 41 | apiVersion: topo.onosproject.org/v1beta1 42 | kind: Kind 43 | metadata: 44 | name: e2t 45 | spec: 46 | aspects: {} 47 | --- 48 | # A topology kind representing one entity controlling another, e.g. E2T and E2NODE E2 connection relation 49 | apiVersion: topo.onosproject.org/v1beta1 50 | kind: Kind 51 | metadata: 52 | name: controls 53 | spec: 54 | aspects: {} 55 | --- 56 | # A topology kind representing one entity containing another, logically or physically, e.g. node-cell containment relation 57 | apiVersion: topo.onosproject.org/v1beta1 58 | kind: Kind 59 | metadata: 60 | name: contains 61 | spec: 62 | aspects: {} 63 | --- 64 | # A topology kind representing a neighbor relation, e.g. E2CELL neighboring another E2CELL 65 | apiVersion: topo.onosproject.org/v1beta1 66 | kind: Kind 67 | metadata: 68 | name: neighbors 69 | spec: 70 | aspects: {} 71 | --- -------------------------------------------------------------------------------- /test/main.go: -------------------------------------------------------------------------------- 1 | // SPDX-FileCopyrightText: 2020-present Open Networking Foundation 2 | // 3 | // SPDX-License-Identifier: Apache-2.0 4 | 5 | package main 6 | 7 | import ( 8 | "github.com/onosproject/helmit/pkg/registry" 9 | "github.com/onosproject/helmit/pkg/test" 10 | sdran "github.com/onosproject/sdran-helm-charts/sd-ran/tests" 11 | _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" 12 | ) 13 | 14 | func main() { 15 | registry.RegisterTestSuite("sd-ran", &sdran.SDRANSuite{}) 16 | test.Main() 17 | } 18 | --------------------------------------------------------------------------------