From 0252a426f078886a68cea6f00f7731850fca7cff Mon Sep 17 00:00:00 2001 From: sergio-tarazona Date: Mon, 20 Jun 2022 17:54:30 -0500 Subject: [PATCH 1/2] new oai-helm procedure created --- oai-helm/5g_params.yaml | 8 + oai-helm/5gcore_ns/5gcore_nsd.yaml | 59 ++++ oai-helm/README.md | 113 ++++++++ oai-helm/ext-dn_vnf/.sample_ee_vnfd.yaml.swp | Bin 0 -> 16384 bytes oai-helm/ext-dn_vnf/ext-dn_vnfd.yaml | 130 +++++++++ .../helm-charts/eechart/.helmignore | 22 ++ .../ext-dn_vnf/helm-charts/eechart/Chart.yaml | 5 + .../eechart/charts.sample/mysql-8.8.26.tgz | Bin 0 -> 40369 bytes .../helm-charts/eechart/charts/.gitkeep | 0 .../eechart/source/docker-compose.yaml | 224 +++++++++++++++ .../helm-charts/eechart/source/install.sh | 36 +++ .../eechart/source/install_docker.sh | 31 ++ .../helm-charts/eechart/source/mylib.py | 80 ++++++ .../helm-charts/eechart/source/playbook.yaml | 14 + .../helm-charts/eechart/source/run_ssh.sh | 43 +++ .../helm-charts/eechart/source/vnf_ee.py | 206 ++++++++++++++ .../helm-charts/eechart/templates/NOTES.txt | 21 ++ .../eechart/templates/_helpers.tpl | 56 ++++ .../eechart/templates/configmap.yaml | 6 + .../eechart/templates/generator.yaml | 7 + .../eechart/templates/ingress.yaml | 41 +++ .../helm-charts/eechart/templates/mibs.yaml | 6 + .../helm-charts/eechart/templates/secret.yaml | 9 + .../eechart/templates/service.yaml | 16 ++ .../eechart/templates/serviceaccount.yaml | 8 + .../eechart/templates/statefulset.yaml | 65 +++++ .../templates/tests/test-connection.yaml | 15 + .../helm-charts/eechart/values.yaml | 77 +++++ oai-helm/gnbsim_vnf/.sample_ee_vnfd.yaml.swp | Bin 0 -> 16384 bytes oai-helm/gnbsim_vnf/gnbsim_vnfd.yaml | 183 ++++++++++++ .../helm-charts/eechart/.helmignore | 22 ++ .../gnbsim_vnf/helm-charts/eechart/Chart.yaml | 5 + .../eechart/charts.sample/mysql-8.8.26.tgz | Bin 0 -> 40369 bytes .../helm-charts/eechart/charts/.gitkeep | 0 .../eechart/source/docker-compose-gnbsim.yaml | 265 ++++++++++++++++++ .../helm-charts/eechart/source/install.sh | 36 +++ .../eechart/source/install_docker.sh | 31 ++ .../helm-charts/eechart/source/mylib.py | 80 ++++++ .../helm-charts/eechart/source/playbook.yaml | 14 + .../helm-charts/eechart/source/run_ssh.sh | 43 +++ .../helm-charts/eechart/source/vnf_ee.py | 206 ++++++++++++++ .../helm-charts/eechart/templates/NOTES.txt | 21 ++ .../eechart/templates/_helpers.tpl | 56 ++++ .../eechart/templates/configmap.yaml | 6 + .../eechart/templates/generator.yaml | 7 + .../eechart/templates/ingress.yaml | 41 +++ .../helm-charts/eechart/templates/mibs.yaml | 6 + .../helm-charts/eechart/templates/secret.yaml | 9 + .../eechart/templates/service.yaml | 16 ++ .../eechart/templates/serviceaccount.yaml | 8 + .../eechart/templates/statefulset.yaml | 65 +++++ .../templates/tests/test-connection.yaml | 15 + .../helm-charts/eechart/values.yaml | 77 +++++ oai-helm/img/architecture.png | Bin 0 -> 80519 bytes oai-helm/img/ext-server.png | Bin 0 -> 22933 bytes oai-helm/img/gnbsim.png | Bin 0 -> 23065 bytes oai-helm/img/login.png | Bin 0 -> 102435 bytes oai-helm/infra.sh | 4 + oai-helm/oai_knf/oai_vnfd.yaml | 18 ++ oai-helm/pdu.yaml | 9 + .../vyos_pnf/helm-charts/eechart/.helmignore | 22 ++ .../vyos_pnf/helm-charts/eechart/Chart.yaml | 5 + .../eechart/charts.sample/mysql-8.8.26.tgz | Bin 0 -> 40369 bytes .../helm-charts/eechart/charts/.gitkeep | 0 .../eechart/source/configure-remote.yaml | 11 + .../helm-charts/eechart/source/install.sh | 36 +++ .../eechart/source/install_nginx.sh | 9 + .../helm-charts/eechart/source/mylib.py | 80 ++++++ .../helm-charts/eechart/source/playbook.yaml | 14 + .../helm-charts/eechart/source/run_ssh.sh | 43 +++ .../helm-charts/eechart/source/vnf_ee.py | 74 +++++ .../helm-charts/eechart/templates/NOTES.txt | 21 ++ .../eechart/templates/_helpers.tpl | 56 ++++ .../eechart/templates/configmap.yaml | 6 + .../eechart/templates/generator.yaml | 7 + .../eechart/templates/ingress.yaml | 41 +++ .../helm-charts/eechart/templates/mibs.yaml | 6 + .../helm-charts/eechart/templates/secret.yaml | 9 + .../eechart/templates/service.yaml | 16 ++ .../eechart/templates/serviceaccount.yaml | 8 + .../eechart/templates/statefulset.yaml | 65 +++++ .../templates/tests/test-connection.yaml | 15 + .../vyos_pnf/helm-charts/eechart/values.yaml | 77 +++++ oai-helm/vyos_pnf/vyos_pnfd.yaml | 65 +++++ 84 files changed, 3227 insertions(+) create mode 100644 oai-helm/5g_params.yaml create mode 100644 oai-helm/5gcore_ns/5gcore_nsd.yaml create mode 100644 oai-helm/README.md create mode 100644 oai-helm/ext-dn_vnf/.sample_ee_vnfd.yaml.swp create mode 100644 oai-helm/ext-dn_vnf/ext-dn_vnfd.yaml create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/.helmignore create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/Chart.yaml create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/charts/.gitkeep create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/source/docker-compose.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/source/install.sh create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/source/install_docker.sh create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/source/mylib.py create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/source/playbook.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/source/run_ssh.sh create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/source/vnf_ee.py create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/NOTES.txt create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/_helpers.tpl create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/configmap.yaml create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/generator.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/ingress.yaml create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/mibs.yaml create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/secret.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/service.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/serviceaccount.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/statefulset.yaml create mode 100755 oai-helm/ext-dn_vnf/helm-charts/eechart/templates/tests/test-connection.yaml create mode 100644 oai-helm/ext-dn_vnf/helm-charts/eechart/values.yaml create mode 100644 oai-helm/gnbsim_vnf/.sample_ee_vnfd.yaml.swp create mode 100644 oai-helm/gnbsim_vnf/gnbsim_vnfd.yaml create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/.helmignore create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/Chart.yaml create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/charts/.gitkeep create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/source/docker-compose-gnbsim.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/source/install.sh create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/source/install_docker.sh create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/source/mylib.py create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/source/playbook.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/source/run_ssh.sh create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/source/vnf_ee.py create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/NOTES.txt create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/_helpers.tpl create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/configmap.yaml create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/generator.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/ingress.yaml create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/mibs.yaml create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/secret.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/service.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/serviceaccount.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/statefulset.yaml create mode 100755 oai-helm/gnbsim_vnf/helm-charts/eechart/templates/tests/test-connection.yaml create mode 100644 oai-helm/gnbsim_vnf/helm-charts/eechart/values.yaml create mode 100644 oai-helm/img/architecture.png create mode 100644 oai-helm/img/ext-server.png create mode 100644 oai-helm/img/gnbsim.png create mode 100644 oai-helm/img/login.png create mode 100644 oai-helm/infra.sh create mode 100644 oai-helm/oai_knf/oai_vnfd.yaml create mode 100644 oai-helm/pdu.yaml create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/.helmignore create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/Chart.yaml create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/charts/.gitkeep create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/source/configure-remote.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/source/install.sh create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/source/install_nginx.sh create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/source/mylib.py create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/source/playbook.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/source/run_ssh.sh create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/source/vnf_ee.py create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/NOTES.txt create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/_helpers.tpl create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/configmap.yaml create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/templates/generator.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/ingress.yaml create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/templates/mibs.yaml create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/templates/secret.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/service.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/serviceaccount.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/statefulset.yaml create mode 100755 oai-helm/vyos_pnf/helm-charts/eechart/templates/tests/test-connection.yaml create mode 100644 oai-helm/vyos_pnf/helm-charts/eechart/values.yaml create mode 100644 oai-helm/vyos_pnf/vyos_pnfd.yaml diff --git a/oai-helm/5g_params.yaml b/oai-helm/5g_params.yaml new file mode 100644 index 00000000..3b110ea8 --- /dev/null +++ b/oai-helm/5g_params.yaml @@ -0,0 +1,8 @@ +ssh_keys: +- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrcvnKVl3o2cN7YFmajQ2RqGGRVgL0OhdkQCXpehJSL/7rxD0rURlUCipqAvqzDQ0UvfPDxWKOJSxhZRY0SCOlb4W6WNBW7hTE31AjS0YtH/JUimc99567y3F1937sy3nzt4yAlIAoI3y7ZZKJI4EP29A47TZ2WbAuQhI/TsDbJmNpXLB0XtBvzTMJuPffwJep0nWp2nYyv21NBBk5rQF6yTi2dDJ3DwcatfaIv5o0UeI07mbyEmxV2hVrIxPKv3KG65dBvbvF+sjdFMp0tJUfqDn/FJso+jqlwmmvrtk+8bmhL7vzzMyUXyfCjUV2G+u0GOPjl3Q+rnxjCsl2yEib +k8s-namespace: oai +vnf: +- member-vnf-index: gnbsim + vimAccountId: b0fe741c-37d9-4f42-bce7-b163122a9790 +- member-vnf-index: ext-server + vimAccountId: 74c9e008-28ce-45c4-9634-9aec3177fb76 diff --git a/oai-helm/5gcore_ns/5gcore_nsd.yaml b/oai-helm/5gcore_ns/5gcore_nsd.yaml new file mode 100644 index 00000000..de20b1a8 --- /dev/null +++ b/oai-helm/5gcore_ns/5gcore_nsd.yaml @@ -0,0 +1,59 @@ +nsd: + nsd: + - description: NS with 1 VNF for gnbsim, 1 VNF for ext server, 1 PNF for VyOS router and 1 KNF for 5G OAI Core + df: + - id: default-df + vnf-profile: + - id: gnbsim + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: gnbsim + constituent-cpd-id: vnf-mgmt-ext + virtual-link-profile-id: mgmtnet + - constituent-cpd-id: + - constituent-base-element-id: gnbsim + constituent-cpd-id: vnf-internal-ext + ip-address: 192.168.1.5 + virtual-link-profile-id: datanet + vnfd-id: gnbsim-vnf + - id: ext-server + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: ext-server + constituent-cpd-id: vnf-mgmt-ext + virtual-link-profile-id: mgmtnet + - constituent-cpd-id: + - constituent-base-element-id: ext-server + constituent-cpd-id: vnf-internal-ext + ip-address: 192.168.1.6 + virtual-link-profile-id: datanet + vnfd-id: ext-dn-vnf + - id: vyos-pnf + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: vyos-pnf + constituent-cpd-id: gateway_public-ext + virtual-link-profile-id: mgmtnet + vnfd-id: vyos_pnf + - id: 5gcore_knf + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: 5gcore_knf + constituent-cpd-id: mgmt-ext + virtual-link-profile-id: mgmtnet + vnfd-id: oai_knf + id: 5gcore-ns + name: 5gcore-ns + version: 1.0 + virtual-link-desc: + - id: mgmtnet + mgmt-network: true + vim-network-name: osm-ext + - id: datanet + vim-network-name: 5g-inter-vm + vnfd-id: + - gnbsim-vnf + - oai_knf + - ext-dn-vnf + - vyos_pnf + diff --git a/oai-helm/README.md b/oai-helm/README.md new file mode 100644 index 00000000..74ead57e --- /dev/null +++ b/oai-helm/README.md @@ -0,0 +1,113 @@ +# OAI 5G Core deployment using helm-based EE + +This guide is intended to give all the considerations and descriptors needed to deploy a 5G Core, a gnbsim to emulate access (gNB and UE) and a external network to test. This guide also includes a PNF VyOS Router and its configuration to ensure the connectivity between elements in this architecture. + +## Architecture + +This architecture considers: + +![architecture](img/architecture.png) + +- gnbsim: the open source software to emulate gNB and UE, it's used to connect a gNB and register a UE to the 5G Core. In this case we're deploying it as a VNF. +- 5gcore: The open source project created by OAI (Open Air Interface), it deploys the 5G SA core including NF like NRF, AMF, SMF, UDR, UDM, UPF. In this case we're going to deploy it as a CNF. +- ext-dn: this is the external network we're implementing to test the 5G core, it implements an iperf server to test from the UE. In this case we're deploying it as a VNF. + +## Preparation + +### Infrastructure preparation + +#### Openstack + +Two networks should be defined, one for 5gcore and other for communication between access and external-network: + +- 5g-core-cp: 192.168.18.0/24 (could be shorter), gateway and port-security in the VMs must be disabled +- 5g-inter-vm: 192.168.1.0/29, gateway and port-security in the VMs must be disabled + +#### Kubernetes cluster + +Since 5G Core is going to be deployed on a K8s cluster, take note of what you need in your K8s Cluster first: + +1. K8s cluster must have multus and macvlan installed since 5G core needs PODs with two interfaces. +2. Worker nodes must have one additional interface (ens8) in the network 192.168.18.0/24 (could be shorter), for example worker01 could have 192.168.18.3, worker02 could have 192.168.18.4 and so on. + +#### PNF + +VyOS Router will provide connectivity. It must have 3 interfaces: + +- One should be the default for 5g-core-cp network: 192.168.18.129 +- One should be the default for 5g-inter-vm network: 192.168.1.1 +- One for management, this depends on the infra and will be used to connect from OSM. + +You could use the infra.sh script to create PDU in OSM. You also have the pdu.yaml file, make sure to put there the management IP you have for your VyOS VM. Specific configuration for this deployment will be performed from OSM later. + +## Launching the network service (NS) + +Make sure that VNF/KNF packages are already onboarded in OSM (osm nfpkg-list), if not, you can create them: +``` +osm nfpkg-create gnbsim_vnf +osm nfpkg-create ext-dn_vnf +osm nfpkg-create oai_knf +osm nfpkg-create vyos_ns +``` +Make sure that NS package is already onboarded in OSM (osm nspkg-list), if not, you can create it: +``` +osm nspkg-create 5gcore_ns +``` +Then you have the 5g_core.yaml file which passes additional configuration to the NS, in this case: + +- ssh_keys: this ssh key is of the server we'll be using to ssh to the VNF gnbsim and ext-dn. Another option is using cloud-init to set a password. +- k8s-namespace: a specific namespace is used to deploy the 5G Core in K8s cluster. +- vimAccountId: a different VIM is used to deploy gnbsim and ext-server. +``` +ssh_keys: +- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrcvnKVl3o2cN7YFmajQ2RqGGRVgL0OhdkQCXpehJSL/7rxD0rURlUCipqAvqzDQ0UvfPDxWKOJSxhZRY0SCOlb4W6WNBW7hTE31AjS0YtH/JUimc99567y3F1937sy3nzt4yAlIAoI3y7ZZKJI4EP29A47TZ2WbAuQhI/TsDbJmNpXLB0XtBvzTMJuPffwJep0nWp2nYyv21NBBk5rQF6yTi2dDJ3DwcatfaIv5o0UeI07mbyEmxV2hVrIxPKv3KG65dBvbvF+sjdFMp0tJUfqDn/FJso+jqlwmmvrtk+8bmhL7vzzMyUXyfCjUV2G+u0GOPjl3Q+rnxjCsl2yEib +k8s-namespace: oai +vnf: +- member-vnf-index: gnbsim + vimAccountId: b0fe741c-37d9-4f42-bce7-b163122a9790 +- member-vnf-index: ext-server + vimAccountId: 74c9e008-28ce-45c4-9634-9aec3177fb76 +``` +The command to instantiate this NS is: +``` +osm ns-create --ns_name 5g --nsd_name 5gcore-ns --vim_account whitecloud --config_file 5g_params.yaml +``` + +## Starting services from OSM + +Since Helm-based EE is used to create primitives for day-1 and day-2, we're going to use the GUI to start external server and gnbsim services: + +### Starting external server service + +First log in OSM and find the NS created, then click in "Action" and click in "Exec Primitive" + +![architecture](img/login.png) + +In the opened window select "VNF Level Primitive", "ext-server", "ext_dn_up", "file" and type "ext-dn-oai", then click in Execute: + +![architecture](img/ext-server.png) + +### Starting gnbsim service + +First log in OSM and find the NS created, then click in "Action" and click in "Exec Primitive" + +![architecture](img/login.png) + +In the opened window select "VNF Level Primitive", "gnbsim", "gnbsim_up", "file" and type "gnbsim", then click in Execute: + +![architecture](img/gnbsim.png) + +With these two primitives executed we're ready to test traffic. + +## Testing traffic + +1. Using management IP assigned to the external server proceed to ssh to the instance (remember to do it from the server you have copied the ssh keys) +2. Execute the iperf command: + ``` + docker exec -ti oai-ext-dn iperf3 -s + ``` +3. Using the management IP assigned to gnbsim proceed to ssh to the instance (remember to do it from the server you have copied the ssh keys) + ``` + docker exec -ti gnbsim iperf3 -c 192.168.70.135 -B 12.1.1.2 + ``` +4. You should be able to see traffic going from gnbsim to external server passing through 5G Core. \ No newline at end of file diff --git a/oai-helm/ext-dn_vnf/.sample_ee_vnfd.yaml.swp b/oai-helm/ext-dn_vnf/.sample_ee_vnfd.yaml.swp new file mode 100644 index 0000000000000000000000000000000000000000..27c3c82570353f02745284eb028f5ae643a57a87 GIT binary patch literal 16384 zcmYc?2=nw+u+TGPU|?VnU|?9MJt1kwS8;~v3#A!KlS=bSNWfkf@{9G06LSl4QsYxo3Es8x4Wc5Fj=LN=wpo zEqFtXjSLMyT9lO(6@-OCLCjG+8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFhWA0q=1Q` zo`HdZ3F=>OD9wmQGeh~lP&yk*!_+~!qts{!jE2By2#kinXb6mkz-S1JhQMeDjE2By z2#kinXb6mkz#t5P#1saGVpax*-E5Hge^~$j7e52TaefAdgZvB(>-ZTMrt&i|pfuV(mfgzZOfx(1_fkBps zf#EMV1H%Ju28QF@3=HeJ85nxF85r`p85lgd85jh)85lltF)&=`Vqn7 z4A~hNWY`%PUa~PTTwsHQ+YB}ahEz5N26Z+D1|BvBhF7c%3>R4$7`C%AFto5TF!-}F zFc`2hF#KgP3=GZ83=9Fx z3=9Iy3=Hp?7#PknF)(amVqloS#K2I_#J~{2#K54+#K7>Hk%8eA@dGdlaG5RRSakk_2NA z2fLTR(qICo8n7&gz^VcyL5`Qn(Sy?gSS3J$Sc4oS0d_XN)PPkdSQkh;Mqq+vzywxl zkRWao@gz#znm|TkcLq)wtP&tWu){$Fh=biw65~r*0hBF3MnW)FgF%8MdJv=qVj_qH z@i3eV62xjM#7(Kmr6rm9dAg~2Wtm0!dAX^1CAvkaX;upGHEC!?AlL$9G(nK?uB|LB|kYkwMaKPKer&i zI8`@2FR3^)7u{zFU!`T{q#`*-K>@2*6rjPFoL^8G57JVMq=#G&7%3&V zVva7vB;A6d%-qb9%(7JEq@J0Alx=m(^3qUzfFg?`laZQ}tDBsWSX5%AkeUi+AjyNA zS^^3)u;qEF$>8#$AU_jUQk3PT>4L&cH?;yeT0zYK%(5jXv$zD=&7g=YN-ZqSEJ{tW zQYa}ZMa>5a3Mr{+iKRIu;CQoAz!JHjNKH&mPAx7*HWwOBm=YihL6K*r07|+b9+F={ zIWi@&BvH4dvLMw;Avh$+)6X469&a=kr{<-^C+FwpCg!D}=)xWrILld3kYg*15V5X+ z(<)dYL4Dsr3bFW<{PH{+dk&XP$bLg{g02Duu?DrR6uE9v0JmZ>lP@JvhG~zk0yLQ- zA{Oqgl*CFyT_aeM&M!zUN-RkQWoq600%$1!k<3ZX)rClB=I0edrAmtuLD>|dLO~%n zGfy|KG&d==NH;%C7hJOEC8ri!DL~3lT?LfFK{w17?2NLMQr&{0d{9b)8Kj^962z(+ zly~sh0nwS0T9%pvF$`iUEPF%TRFVmHwk}v1*bP|3LE2F@r+`Yjlr)e;N-Cs&$;{8Q zQgBKv&P+zcqykbSM9fkBIhfkA?YfkBXmf#DA~1H*f628J8l3=FHe85pK;GcYu8 zGccrbGcfpYGccHPGca&K#|G|lF)$qBVqjRw#lSF$i-94Pi-Ez9i-Ez4i-AF&i-CcS zi-F-iCj-M}P6meUoD2*zI2jl!IT;udIT;wdIT;vaI2jn2I2jn8b1*R6;9y`lz`?+< zn1g{~5(fiAB?kjTDhC5YC_$?3>ZL-8}wF>E>r=7f)#1k`7OtIf|XC@o2aJE1JK zs2JQBGK9K77csP>8|DjhGPtn?GXv@|xETm%L+yjepc({~0vn_Y?Wh?U=oy&krYA$1 z)~KS1Ri#BBhbt%~=79T`pzf@0ak*}0ZelvZ{R#@GLdYhA?NU%k%Fi#+1$O{aia=dr zL^rayw4fj-6*Q=on4=3<1_^aYClEf&1#9$zqD(;n(*Fx^3~~(f3<`nTg9wJqypq(S zw8Uhj?sq|caVEIQtzZOI4jVE6wU|>&GGM~6K+a1oDbFv;)`gp;3+)GkoC|Rxq?HTP z4^jy=8stbyoCs<5gAz3)6rfhXgvoWHAr+kn$u1a9gb9=DL<6`JLE{(61u3AAhJ-U( zQYcF)1<8RTJr_D2087Z=6bc)R(9JK_P0q!u~dO*vJ2Q6D+TAoy!^b(8QlD9TSM zO)dcs1=E<4IW{gTdZ`7@As9q6=~oIQT$W8EMAD98C}sQ^^^r$=UIsA}%Sh7*c4$ z^x+yS!Z}g_8c)YDhz}jS&aDJ>`SnUrhVww$U?mzz8qJ+p$HhQ;ARZ{mFHJ@sK&E8! W!4%DEhz%JfB?a-|a6*wLGI#*W)l*{t literal 0 HcmV?d00001 diff --git a/oai-helm/ext-dn_vnf/ext-dn_vnfd.yaml b/oai-helm/ext-dn_vnf/ext-dn_vnfd.yaml new file mode 100644 index 00000000..7053886f --- /dev/null +++ b/oai-helm/ext-dn_vnf/ext-dn_vnfd.yaml @@ -0,0 +1,130 @@ +vnfd: + description: ext-dn VNF with 2 networks attached + df: + - id: default-df + instantiation-level: + - id: default-instantiation-level + vdu-level: + - number-of-instances: 1 + vdu-id: ext-dn-VM + vdu-profile: + - id: ext-dn-VM + min-number-of-instances: 1 + lcm-operations-configuration: + operate-vnf-op-config: + day1-2: + - config-primitive: + - execution-environment-primitive: ext_dn_up + execution-environment-ref: ext-dn + name: ext_dn_up + parameter: + - data-type: STRING + name: file + - execution-environment-primitive: ext_dn_down + execution-environment-ref: ext-dn + name: ext_dn_down + parameter: + - data-type: STRING + name: file + - execution-environment-primitive: send_command + execution-environment-ref: ext-dn + name: send_command + parameter: + - data-type: STRING + name: file + config-access: + ssh-access: + default-user: ubuntu + required: true + execution-environment-list: + - external-connection-point-ref: vnf-mgmt-ext + helm-chart: eechart + id: ext-dn + id: ext-dn-vnf + initial-config-primitive: + - execution-environment-ref: ext-dn + name: config + parameter: + - name: ssh-hostname + value: + - name: ssh-username + value: ubuntu + seq: 1 + - execution-environment-ref: ext-dn + name: run_script + parameter: + - name: file + value: install_docker.sh + seq: 2 + - execution-environment-ref: ext-dn + name: copy_files + parameter: + - name: file + value: docker-compose.yaml + seq: 3 + ext-cpd: + - id: vnf-mgmt-ext + int-cpd: + cpd: vdu-eth0-int + vdu-id: ext-dn-VM + - id: vnf-internal-ext + int-cpd: + cpd: vdu-eth1-int + vdu-id: ext-dn-VM + id: ext-dn-vnf + mgmt-cp: vnf-mgmt-ext + product-name: ext-dn-vnf + sw-image-desc: + - id: ubuntu20.04 + image: ubuntu20.04 + name: ubuntu20.04 + - id: ubuntu20.04-azure + name: ubuntu20.04-azure + image: Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest + vim-type: azure + - id: ubuntu20.04-gcp + name: ubuntu20.04-gcp + image: ubuntu-os-cloud:image-family:ubuntu-2004-lts + vim-type: gcp + vdu: + - id: ext-dn-VM + int-cpd: + - id: vdu-eth0-int + virtual-network-interface-requirement: + - name: vdu-eth0 + position: 0 + virtual-interface: + type: PARAVIRT + - id: vdu-eth1-int + port-security-enabled: false + virtual-network-interface-requirement: + - name: vdu-eth1 + position: 1 + virtual-interface: + type: PARAVIRT + - id: vdu-eth2-int + virtual-network-interface-requirement: + - name: vdu-eth2 + position: 2 + virtual-interface: + type: PARAVIRT + name: ext-dn-VM + supplemental-boot-data: + boot-data-drive: true + sw-image-desc: ubuntu20.04 + alternative-sw-image-desc: + - ubuntu20.04-azure + - ubuntu20.04-gcp + virtual-compute-desc: ext-dn-VM-compute + virtual-storage-desc: + - ext-dn-VM-storage + version: 1.0 + virtual-compute-desc: + - id: ext-dn-VM-compute + virtual-cpu: + num-virtual-cpu: 1 + virtual-memory: + size: 4.0 + virtual-storage-desc: + - id: ext-dn-VM-storage + size-of-storage: 20 diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/.helmignore b/oai-helm/ext-dn_vnf/helm-charts/eechart/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/Chart.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/Chart.yaml new file mode 100644 index 00000000..414c5f1a --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: OSM EE helm chart +name: eechart +version: 0.1.0 diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz b/oai-helm/ext-dn_vnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2cfb9b29533b6f6837de93a2022eec32c11b0b4b GIT binary patch literal 40369 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 /dev/null +apt-get -y update +apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin +groupadd docker +usermod -aG docker ubuntu +newgrp docker + +curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose + +sysctl net.ipv4.conf.all.forwarding=1 +iptables -P FORWARD ACCEPT +ip route add 192.168.18.0/24 via 192.168.1.1 dev ens4 +ip route add 12.1.1.0/24 via 192.168.1.1 dev ens4 + +EOF diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/source/mylib.py b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/mylib.py new file mode 100644 index 00000000..c0bd3bc8 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/mylib.py @@ -0,0 +1,80 @@ +## +# Copyright 2022 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + +import logging +import asyncio +import asyncssh +import time + + +from mysql.connector import connect, Error + +logger = logging.getLogger("osm_ee.vnf") + + +async def ssh_exec(host: str, user: str, command: str + ) -> (int, str): + """ + Execute a remote command via SSH. + """ + + try: + async with asyncssh.connect(host, + username=user, + known_hosts=None) as conn: + logger.debug("Executing command '{}'".format(command)) + result = await conn.run(command) + logger.debug("Result: {}".format(result)) + return result.exit_status, result.stderr + except Exception as e: + logger.error("Error: {}".format(repr(e))) + return -1, str(e) + + +def mysql_query(host: str, user: str, password: str, retries: int, query: str + ) -> (int, str): + """ + Execute a query to a MySQL database. + """ + + text = "" + logger.debug("Host: '{}', user: '{}', password: '{}', query: '{}'".format(host, user, password, query)) + for i in range(0, retries): + try: + with connect( + host=host, + user=user, + password=password, + ) as connection: + with connection.cursor() as cursor: + cursor.execute(query) + for (db) in cursor: + logger.debug(db) + text = text + str(db[0]) + ", " + return 0, text[0:len(text)-2] + except Error as e: + text = str(e) + logger.debug("Error: {}".format(e)) + time.sleep(3) + continue + + return -1, text diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/source/playbook.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/playbook.yaml new file mode 100644 index 00000000..bc6013d7 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/playbook.yaml @@ -0,0 +1,14 @@ +--- +- hosts: all + become: yes + tasks: + - name: Wait 120 seconds, but only start checking after 10 seconds + wait_for_connection: + delay: 20 + timeout: 120 + - name: Install packages + apt: + name: + - "{{ app }}" + state: latest + cache_valid_time: 3600 diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/source/run_ssh.sh b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/run_ssh.sh new file mode 100755 index 00000000..8b58b3cc --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/run_ssh.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +date "+%H:%M:%S Starting $0..." +IP=$1 +USERNAME=$2 +SCRIPT=$3 +PARAMS=$4 + +DIR=$(dirname $0) + +date "+%H:%M:%S Waiting for $IP to be ready..." +i=5 +while ! ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" 'exit' ; do + date "+%H:%M:%S Error accessing $IP, retrying..." + sleep 5 + i=$(( $i - 1 )) + [ $i -ge 0 ] || exit 1 +done + +date "+%H:%M:%S SSH server is up, sending script '${DIR}/${SCRIPT}'..." +scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${DIR}/${SCRIPT} "$USERNAME"@"$IP": +if [ $? -ne 0 ]; then + date "+%H:%M:%S scp error" + exit 1 +fi +date "+%H:%M:%S OK. Setting file permissions" +ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" "chmod a+x $SCRIPT" +if [ $? -ne 0 ]; then + date "+%H:%M:%S ssh error" + exit 1 +fi + +COMMAND="./$SCRIPT" +[ ${#PARAMS} -ge 0 ] || COMMAND="${COMMAND=} $PARAMS" +date "+%H:%M:%S Running '$COMMAND' on $IP..." +ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" "$COMMAND" +if [ $? -ne 0 ]; then + date "+%H:%M:%S ssh error" + exit 1 +fi + +date "+%H:%M:%S End" +exit 0 diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/source/vnf_ee.py b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/vnf_ee.py new file mode 100644 index 00000000..fea9bc75 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/source/vnf_ee.py @@ -0,0 +1,206 @@ +## +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +## + +import asyncio +import asyncssh +import requests +import logging +import os + + +from osm_ee.exceptions import VnfException + +import osm_ee.util.util_ee as util_ee +import osm_ee.util.util_ansible as util_ansible +import osm_ee.vnf.mylib as mylib + +class VnfEE: + + PLAYBOOK_PATH = "/app/EE/osm_ee/vnf" + SSH_SCRIPT = "/app/EE/osm_ee/vnf/run_ssh.sh" + + def __init__(self, config_params): + self.logger = logging.getLogger('osm_ee.vnf') + self.config_params = config_params + + # config method saves SSH access parameters (host and username) for future use by other methods. + # It is mandatory in any case. + async def config(self, id, params): + self.logger.debug("Execute action config, params: {}".format(params)) + # Config action is special, params are merged with previous config calls + self.config_params.update(params) + required_params = ["ssh-hostname"] + self._check_required_params(self.config_params, required_params) + yield "OK", "Configured" + + # This method implements the "run_script" primitive. Uncomment and modify it if a primitive requires executing a user + # script in the VDU. It needs "file" parameter (script's file to run, must be in "source" directory) + # and optionally "parameters" (command-line arguments for script). + async def run_script(self, id, params): + self.logger.debug("Execute action run_script, params: '{}'".format(params)) + self._check_required_params(params, ["file"]) + + command = "bash " + self.SSH_SCRIPT + " " + self.config_params["ssh-hostname"] + " " + self.config_params["ssh-username"] + " " + params["file"] + if "parameters" in params: + command += " \"" + params.get("parameters", "") + "\"" + self.logger.debug("Command: '{}'".format(command)) + return_code, stdout, stderr = await util_ee.local_async_exec(command) + if return_code != 0: + yield "ERROR", "return code {}: {}".format(return_code, stderr.decode()) + else: + yield "OK", stdout.decode() + + # This method implements the "copy_files" primitive. Uncomment and modify it if a primitive requires + # to copy files to a VNF. It needs file name parameter (file must be in "source" directory). + + async def copy_files(self, id, params): + self.logger.debug("Execute action copy_files, params: '{}'".format(params)) + self._check_required_params(params, ["file"]) + + command= "scp" + " -o StrictHostKeyChecking=no /app/EE/osm_ee/vnf/" + params["file"] + " " + self.config_params["ssh-username"] + "@" + self.config_params["ssh-hostname"] + ":" + params["file"] + self.logger.debug("Command: '{}'".format(command)) + return_code, stdout, stderr = await util_ee.local_async_exec(command) + if return_code != 0: + yield "ERROR", "return code {}: {}".format(return_code, stderr.decode()) + else: + yield "OK", stdout.decode() + + # This method implements the "ansible_playbook" primitive. Uncomment and modify it if a primitive requires + # executing an Ansible Playbook. It needs "playbook-name" parameter (playbook file, must be in "source" directory). + # async def ansible_playbook(self, id, params): + # self.logger.debug("Execute action ansible_playbook, params: '{}'".format(params)) + + # try: + # self._check_required_params(params, ["playbook-name"]) + # params["ansible_user"] = self.config_params["ssh-username"] + # inventory = self.config_params["ssh-hostname"] + "," + # playbook = self.PLAYBOOK_PATH + "/" + params["playbook-name"] + # os.environ["ANSIBLE_HOST_KEY_CHECKING"] = "False" + # return_code, stdout, stderr = await util_ansible.execute_playbook(playbook, inventory, params) + # status = "OK" if return_code == 0 else "ERROR" + # yield status, stdout + stderr + # except Exception as e: + # self.logger.debug("Error executing ansible playbook: {}".format(repr(e))) + # yield "ERROR", str(e) + + # This method implements the "ping" primitive. Uncomment and modify it if a primitive requires + # executing a local command (such as ping) on EE. It uses "ssh-hostname" as ping destination. + # async def ping(self, id, params): + # self.logger.debug("Execute action ping, params: '{}'".format(params)) + + # command = "ping -c 3 " + self.config_params["ssh-hostname"] + # return_code, stdout, stderr = await util_ee.local_async_exec(command) + # if return_code != 0: + # yield "ERROR", "return code {}: {}".format(return_code, stderr.decode()) + # else: + # yield "OK", stdout.decode() + + # This method implements the "http_check" primitive. Uncomment and modify it if a primitive requires + # executing embedded python code on VfnEE class. It requests "http:///" using a HTTP library. + # async def http_check(self, id, params): + # self.logger.debug("Execute action http_check, params: '{}'".format(params)) + + # try: + # session = requests.Session() + # url = 'http://' + self.config_params["ssh-hostname"] + # self.logger.debug("HTTP GET {}...".format(url)) + # req = session.get(url) + # self.logger.debug("{}".format(req.text)) + # if req.status_code == 200: + # yield "OK", req.text + # else: + # yield "ERROR", req.text + # except Exception as e: + # self.logger.error("HTTP error: {}".format(repr(e))) + # yield "ERROR", str(e) + + # This method implements the "touch" primitive. Uncomment and modify it if you need a primitive that + # imports a user-defined python library. It only needs "file" parameter for creating it in VDU via SSH. + # async def touch(self, id, params): + # self.logger.debug("Execute action touch, params: '{}'".format(params)) + # + # self._check_required_params(params, ["file"]) + # command = "touch" + " " + params["file"] + # return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + # if return_code != 0: + # yield "ERROR", description + # else: + # yield "OK", description + + # This method implements the "gnbsim_up" primitive. Uncomment and modify it if you need a primitive that + # starts up the gnbsim to test 5G OAI Core. It only needs "file" parameter, in this case use gnbsim. + async def ext_dn_up(self, id, params): + self.logger.debug("Execute action gnbsim_up, params: '{}'".format(params)) + + self._check_required_params(params, ["file"]) + command = "docker-compose up -d oai-ext-dn" + return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + if return_code != 0: + yield "ERROR", description + else: + yield "OK", description + + # This method implements the "gnbsim_down" primitive. Uncomment and modify it if you need a primitive that + # stops the gnbsim for testing 5G OAI Core. It only needs "file" parameter, in this case use gnbsim. + async def ext_dn_down(self, id, params): + self.logger.debug("Execute action gnbsim_down, params: '{}'".format(params)) + + self._check_required_params(params, ["file"]) + command = "docker-compose down" + return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + if return_code != 0: + yield "ERROR", description + else: + yield "OK", description + + # This method implements the "send_command" primitive. Uncomment and modify it if you need a primitive that + # sends any command to the VM through SSH. It only needs "file" parameter which contains the command to send. + async def send_command(self, id, params): + self.logger.debug("Execute action send_command, params: '{}'".format(params)) + + self._check_required_params(params, ["file"]) + command = params["file"] + return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + if return_code != 0: + yield "ERROR", description + else: + yield "OK", description + + # This method implements the "check_database" primitive. Uncomment and modify it if a primitive requires + # accessing to a service provided by a helm subchart. Access parameters are read from environment variables + # async def check_database(self, id, params): + # self.logger.debug("Execute action check_database, params: '{}'".format(params)) + + # host = os.getenv('mysql_host') + # user = os.getenv('mysql_user') + # password = os.getenv('mysql_password') + # retries = 3 + # query = "SHOW DATABASES" + # return_code, description = mylib.mysql_query(host, user, password, retries, query) + # if return_code != 0: + # yield "ERROR", description + # else: + # yield "OK", description + + + # Static method that verifies whether a parameter exists in the map + @staticmethod + def _check_required_params(params, required_params): + for required_param in required_params: + if required_param not in params: + raise VnfException("Missing required param: {}".format(required_param)) + diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/NOTES.txt b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/NOTES.txt new file mode 100755 index 00000000..c52fc2c4 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/NOTES.txt @@ -0,0 +1,21 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "eechart.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "eechart.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "eechart.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "eechart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/_helpers.tpl b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/_helpers.tpl new file mode 100755 index 00000000..d3e28e02 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "eechart.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "eechart.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "eechart.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "eechart.labels" -}} +app.kubernetes.io/name: {{ include "eechart.name" . }} +helm.sh/chart: {{ include "eechart.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "eechart.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "eechart.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/configmap.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/configmap.yaml new file mode 100755 index 00000000..5b9634c7 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/configmap.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "eechart.fullname" . }} +data: +{{ (.Files.Glob "source/*").AsConfig | indent 2 }} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/generator.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/generator.yaml new file mode 100644 index 00000000..96f7e237 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/generator.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vnf-snmp-generator-{{ .Values.global.osm.vnf_id | lower }}" +data: + generator.yml: |- + {{ .Files.Get "snmp/generator.yml" | nindent 4}} \ No newline at end of file diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/ingress.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/ingress.yaml new file mode 100755 index 00000000..264f8909 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/ingress.yaml @@ -0,0 +1,41 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "eechart.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: +{{ include "eechart.labels" . | indent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: +{{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} +{{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + backend: + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} +{{- end }} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/mibs.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/mibs.yaml new file mode 100644 index 00000000..e7b5eab5 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/mibs.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vnf-snmp-mibs-{{ .Values.global.osm.vnf_id | lower}}" +data: +{{ (.Files.Glob "snmp/mibs/**").AsConfig | indent 2 }} \ No newline at end of file diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/secret.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/secret.yaml new file mode 100644 index 00000000..62d4b267 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "eechart.fullname" . }} +type: Opaque +data: + mysql_host: {{ .Values.mysql.fullnameOverride | b64enc | quote }} + mysql_user: {{ "root" | b64enc | quote }} + mysql_password: {{ .Values.mysql.auth.rootPassword | b64enc | quote }} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/service.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/service.yaml new file mode 100755 index 00000000..88d38d66 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "eechart.fullname" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: grpc + protocol: TCP + name: grpc + selector: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/serviceaccount.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/serviceaccount.yaml new file mode 100755 index 00000000..be615a5f --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "eechart.serviceAccountName" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +{{- end -}} diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/statefulset.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/statefulset.yaml new file mode 100755 index 00000000..a13cfa6e --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/statefulset.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "eechart.fullname" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +spec: + serviceName: {{ include "eechart.fullname" . }} + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + vnf: {{ .Values.global.osm.vnf_id | lower}} + spec: + imagePullSecrets: + - name: regcred + serviceAccountName: {{ template "eechart.serviceAccountName" . }} + securityContext: + runAsUser: 0 + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + envFrom: + - secretRef: + name: {{ include "eechart.fullname" . }} + ports: + - name: grpc + containerPort: 50051 + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + volumeMounts: + - name: osm-ee + mountPath: /app/storage + - name: osm-ee-source + mountPath: /app/EE/osm_ee/vnf + - name: snmp-config-volume + mountPath: /etc/snmp_exporter + - name: vnf-mibs + mountPath: /root/.snmp/mibs + - name: vnf-generator + mountPath: /app/vnf/generator + volumes: + - name: osm-ee-source + configMap: + name: {{ include "eechart.fullname" . }} + - name: snmp-config-volume + hostPath: + path: "/var/lib/osm/snmp_exporter/{{ .Values.global.osm.vnf_id | lower }}/" + - name: vnf-mibs + configMap: + name: "vnf-snmp-mibs-{{ .Values.global.osm.vnf_id | lower}}" + - name: vnf-generator + configMap: + name: "vnf-snmp-generator-{{ .Values.global.osm.vnf_id | lower}}" + - name: osm-ee + hostPath: + path: /var/lib/osm/osm/osm_osm_packages/_data diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/tests/test-connection.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/tests/test-connection.yaml new file mode 100755 index 00000000..e52b7b8b --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "eechart.fullname" . }}-test-connection" + labels: +{{ include "eechart.labels" . | indent 4 }} + annotations: + "helm.sh/hook": test-success +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "eechart.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/oai-helm/ext-dn_vnf/helm-charts/eechart/values.yaml b/oai-helm/ext-dn_vnf/helm-charts/eechart/values.yaml new file mode 100644 index 00000000..c63644a2 --- /dev/null +++ b/oai-helm/ext-dn_vnf/helm-charts/eechart/values.yaml @@ -0,0 +1,77 @@ +global: + osm: + vnf_id: AVNFId + +# Default values for eechart. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: opensourcemano/api-fe + tag: latest + pullPolicy: IfNotPresent + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: false + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 50050 + +ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: [] + + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +mysql: + auth: + rootPassword: "123456" + fullnameOverride: "eechart-mysql" diff --git a/oai-helm/gnbsim_vnf/.sample_ee_vnfd.yaml.swp b/oai-helm/gnbsim_vnf/.sample_ee_vnfd.yaml.swp new file mode 100644 index 0000000000000000000000000000000000000000..27c3c82570353f02745284eb028f5ae643a57a87 GIT binary patch literal 16384 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 W!4%DEhz%JfB?a-|a6*wLGI#*W)l*{t literal 0 HcmV?d00001 diff --git a/oai-helm/gnbsim_vnf/gnbsim_vnfd.yaml b/oai-helm/gnbsim_vnf/gnbsim_vnfd.yaml new file mode 100644 index 00000000..0bfa7678 --- /dev/null +++ b/oai-helm/gnbsim_vnf/gnbsim_vnfd.yaml @@ -0,0 +1,183 @@ +vnfd: + description: gnbsim VNF with 2 networks attached + df: + - id: default-df + instantiation-level: + - id: default-instantiation-level + vdu-level: + - number-of-instances: 1 + vdu-id: gnbsim-VM + vdu-profile: + - id: gnbsim-VM + min-number-of-instances: 1 + lcm-operations-configuration: + operate-vnf-op-config: + day1-2: + - config-primitive: + - execution-environment-primitive: gnbsim_up + execution-environment-ref: gnbsim + name: gnbsim_up + parameter: + - data-type: STRING + name: file + - execution-environment-primitive: gnbsim_down + execution-environment-ref: gnbsim + name: gnbsim_down + parameter: + - data-type: STRING + name: file + - execution-environment-primitive: send_command + execution-environment-ref: gnbsim + name: send_command + parameter: + - data-type: STRING + name: file + # - execution-environment-primitive: run_script + # execution-environment-ref: gnbsim + # name: run_script + # parameter: + # - data-type: STRING + # name: file + # - data-type: STRING + # name: parameters + # - execution-environment-primitive: ansible_playbook + # execution-environment-ref: gnbsim + # name: ansible_playbook + # parameter: + # - data-type: STRING + # name: playbook-name + # - data-type: STRING + # name: app + # - execution-environment-primitive: ping + # execution-environment-ref: gnbsim + # name: ping + # - execution-environment-primitive: http_check + # execution-environment-ref: gnbsim + # name: http_check + # - execution-environment-primitive: touch + # execution-environment-ref: gnbsim + # name: touch + # parameter: + # - data-type: STRING + # name: file + # - execution-environment-primitive: check_database + # execution-environment-ref: gnbsim + # name: check_database + config-access: + ssh-access: + default-user: ubuntu + required: true + execution-environment-list: + - external-connection-point-ref: vnf-mgmt-ext + helm-chart: eechart + id: gnbsim + id: gnbsim-vnf + initial-config-primitive: + - execution-environment-ref: gnbsim + name: config + parameter: + - name: ssh-hostname + value: + - name: ssh-username + value: ubuntu + seq: 1 + - execution-environment-ref: gnbsim + name: run_script + parameter: + - name: file + value: install_docker.sh + seq: 2 + - execution-environment-ref: gnbsim + name: copy_files + parameter: + - name: file + value: docker-compose-gnbsim.yaml + seq: 3 + # - execution-environment-ref: gnbsim + # name: ansible_playbook + # parameter: + # - name: playbook-name + # value: playbook.yaml + # - name: app + # value: ntp + # seq: 3 + # - execution-environment-ref: gnbsim + # name: ping + # seq: 4 + # - execution-environment-ref: gnbsim + # name: http_check + # seq: 5 + # - execution-environment-ref: gnbsim + # name: touch + # parameter: + # - name: file + # value: myfile.txt + # seq: 3 + # - execution-environment-ref: gnbsim + # name: check_database + # seq: 7 + ext-cpd: + - id: vnf-mgmt-ext + int-cpd: + cpd: vdu-eth0-int + vdu-id: gnbsim-VM + - id: vnf-internal-ext + int-cpd: + cpd: vdu-eth1-int + vdu-id: gnbsim-VM + id: gnbsim-vnf + mgmt-cp: vnf-mgmt-ext + product-name: gnbsim-vnf + sw-image-desc: + - id: ubuntu20.04 + image: ubuntu20.04 + name: ubuntu20.04 + - id: ubuntu20.04-azure + name: ubuntu20.04-azure + image: Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest + vim-type: azure + - id: ubuntu20.04-gcp + name: ubuntu20.04-gcp + image: ubuntu-os-cloud:image-family:ubuntu-2004-lts + vim-type: gcp + vdu: + - id: gnbsim-VM + int-cpd: + - id: vdu-eth0-int + virtual-network-interface-requirement: + - name: vdu-eth0 + position: 0 + virtual-interface: + type: PARAVIRT + - id: vdu-eth1-int + virtual-network-interface-requirement: + - name: vdu-eth1 + position: 1 + virtual-interface: + type: PARAVIRT + - id: vdu-eth2-int + virtual-network-interface-requirement: + - name: vdu-eth2 + position: 2 + virtual-interface: + type: PARAVIRT + name: gnbsim-VM + supplemental-boot-data: + boot-data-drive: true + sw-image-desc: ubuntu20.04 + alternative-sw-image-desc: + - ubuntu20.04-azure + - ubuntu20.04-gcp + virtual-compute-desc: gnbsim-VM-compute + virtual-storage-desc: + - gnbsim-VM-storage + version: 1.0 + virtual-compute-desc: + - id: gnbsim-VM-compute + virtual-cpu: + num-virtual-cpu: 1 + virtual-memory: + size: 4.0 + virtual-storage-desc: + - id: gnbsim-VM-storage + size-of-storage: 20 diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/.helmignore b/oai-helm/gnbsim_vnf/helm-charts/eechart/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/Chart.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/Chart.yaml new file mode 100644 index 00000000..414c5f1a --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: OSM EE helm chart +name: eechart +version: 0.1.0 diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz b/oai-helm/gnbsim_vnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2cfb9b29533b6f6837de93a2022eec32c11b0b4b GIT binary patch literal 40369 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 /dev/null +apt-get -y update +apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin +groupadd docker +usermod -aG docker ubuntu +newgrp docker + +curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose + +sysctl net.ipv4.conf.all.forwarding=1 +iptables -P FORWARD ACCEPT +ip route add 192.168.70.128/26 via 192.168.1.1 dev ens4 +ip route add 192.168.18.0/24 via 192.168.1.1 dev ens4 + +EOF diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/source/mylib.py b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/mylib.py new file mode 100644 index 00000000..c0bd3bc8 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/mylib.py @@ -0,0 +1,80 @@ +## +# Copyright 2022 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + +import logging +import asyncio +import asyncssh +import time + + +from mysql.connector import connect, Error + +logger = logging.getLogger("osm_ee.vnf") + + +async def ssh_exec(host: str, user: str, command: str + ) -> (int, str): + """ + Execute a remote command via SSH. + """ + + try: + async with asyncssh.connect(host, + username=user, + known_hosts=None) as conn: + logger.debug("Executing command '{}'".format(command)) + result = await conn.run(command) + logger.debug("Result: {}".format(result)) + return result.exit_status, result.stderr + except Exception as e: + logger.error("Error: {}".format(repr(e))) + return -1, str(e) + + +def mysql_query(host: str, user: str, password: str, retries: int, query: str + ) -> (int, str): + """ + Execute a query to a MySQL database. + """ + + text = "" + logger.debug("Host: '{}', user: '{}', password: '{}', query: '{}'".format(host, user, password, query)) + for i in range(0, retries): + try: + with connect( + host=host, + user=user, + password=password, + ) as connection: + with connection.cursor() as cursor: + cursor.execute(query) + for (db) in cursor: + logger.debug(db) + text = text + str(db[0]) + ", " + return 0, text[0:len(text)-2] + except Error as e: + text = str(e) + logger.debug("Error: {}".format(e)) + time.sleep(3) + continue + + return -1, text diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/source/playbook.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/playbook.yaml new file mode 100644 index 00000000..bc6013d7 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/playbook.yaml @@ -0,0 +1,14 @@ +--- +- hosts: all + become: yes + tasks: + - name: Wait 120 seconds, but only start checking after 10 seconds + wait_for_connection: + delay: 20 + timeout: 120 + - name: Install packages + apt: + name: + - "{{ app }}" + state: latest + cache_valid_time: 3600 diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/source/run_ssh.sh b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/run_ssh.sh new file mode 100755 index 00000000..8b58b3cc --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/run_ssh.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +date "+%H:%M:%S Starting $0..." +IP=$1 +USERNAME=$2 +SCRIPT=$3 +PARAMS=$4 + +DIR=$(dirname $0) + +date "+%H:%M:%S Waiting for $IP to be ready..." +i=5 +while ! ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" 'exit' ; do + date "+%H:%M:%S Error accessing $IP, retrying..." + sleep 5 + i=$(( $i - 1 )) + [ $i -ge 0 ] || exit 1 +done + +date "+%H:%M:%S SSH server is up, sending script '${DIR}/${SCRIPT}'..." +scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${DIR}/${SCRIPT} "$USERNAME"@"$IP": +if [ $? -ne 0 ]; then + date "+%H:%M:%S scp error" + exit 1 +fi +date "+%H:%M:%S OK. Setting file permissions" +ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" "chmod a+x $SCRIPT" +if [ $? -ne 0 ]; then + date "+%H:%M:%S ssh error" + exit 1 +fi + +COMMAND="./$SCRIPT" +[ ${#PARAMS} -ge 0 ] || COMMAND="${COMMAND=} $PARAMS" +date "+%H:%M:%S Running '$COMMAND' on $IP..." +ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" "$COMMAND" +if [ $? -ne 0 ]; then + date "+%H:%M:%S ssh error" + exit 1 +fi + +date "+%H:%M:%S End" +exit 0 diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/source/vnf_ee.py b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/vnf_ee.py new file mode 100644 index 00000000..393763c8 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/source/vnf_ee.py @@ -0,0 +1,206 @@ +## +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +## + +import asyncio +import asyncssh +import requests +import logging +import os + + +from osm_ee.exceptions import VnfException + +import osm_ee.util.util_ee as util_ee +import osm_ee.util.util_ansible as util_ansible +import osm_ee.vnf.mylib as mylib + +class VnfEE: + + PLAYBOOK_PATH = "/app/EE/osm_ee/vnf" + SSH_SCRIPT = "/app/EE/osm_ee/vnf/run_ssh.sh" + + def __init__(self, config_params): + self.logger = logging.getLogger('osm_ee.vnf') + self.config_params = config_params + + # config method saves SSH access parameters (host and username) for future use by other methods. + # It is mandatory in any case. + async def config(self, id, params): + self.logger.debug("Execute action config, params: {}".format(params)) + # Config action is special, params are merged with previous config calls + self.config_params.update(params) + required_params = ["ssh-hostname"] + self._check_required_params(self.config_params, required_params) + yield "OK", "Configured" + + # This method implements the "run_script" primitive. Uncomment and modify it if a primitive requires executing a user + # script in the VDU. It needs "file" parameter (script's file to run, must be in "source" directory) + # and optionally "parameters" (command-line arguments for script). + async def run_script(self, id, params): + self.logger.debug("Execute action run_script, params: '{}'".format(params)) + self._check_required_params(params, ["file"]) + + command = "bash " + self.SSH_SCRIPT + " " + self.config_params["ssh-hostname"] + " " + self.config_params["ssh-username"] + " " + params["file"] + if "parameters" in params: + command += " \"" + params.get("parameters", "") + "\"" + self.logger.debug("Command: '{}'".format(command)) + return_code, stdout, stderr = await util_ee.local_async_exec(command) + if return_code != 0: + yield "ERROR", "return code {}: {}".format(return_code, stderr.decode()) + else: + yield "OK", stdout.decode() + + # This method implements the "copy_files" primitive. Uncomment and modify it if a primitive requires + # to copy files to a VNF. It needs file name parameter (file must be in "source" directory). + + async def copy_files(self, id, params): + self.logger.debug("Execute action copy_files, params: '{}'".format(params)) + self._check_required_params(params, ["file"]) + + command= "scp" + " -o StrictHostKeyChecking=no /app/EE/osm_ee/vnf/" + params["file"] + " " + self.config_params["ssh-username"] + "@" + self.config_params["ssh-hostname"] + ":" + params["file"] + self.logger.debug("Command: '{}'".format(command)) + return_code, stdout, stderr = await util_ee.local_async_exec(command) + if return_code != 0: + yield "ERROR", "return code {}: {}".format(return_code, stderr.decode()) + else: + yield "OK", stdout.decode() + + # This method implements the "ansible_playbook" primitive. Uncomment and modify it if a primitive requires + # executing an Ansible Playbook. It needs "playbook-name" parameter (playbook file, must be in "source" directory). + # async def ansible_playbook(self, id, params): + # self.logger.debug("Execute action ansible_playbook, params: '{}'".format(params)) + + # try: + # self._check_required_params(params, ["playbook-name"]) + # params["ansible_user"] = self.config_params["ssh-username"] + # inventory = self.config_params["ssh-hostname"] + "," + # playbook = self.PLAYBOOK_PATH + "/" + params["playbook-name"] + # os.environ["ANSIBLE_HOST_KEY_CHECKING"] = "False" + # return_code, stdout, stderr = await util_ansible.execute_playbook(playbook, inventory, params) + # status = "OK" if return_code == 0 else "ERROR" + # yield status, stdout + stderr + # except Exception as e: + # self.logger.debug("Error executing ansible playbook: {}".format(repr(e))) + # yield "ERROR", str(e) + + # This method implements the "ping" primitive. Uncomment and modify it if a primitive requires + # executing a local command (such as ping) on EE. It uses "ssh-hostname" as ping destination. + # async def ping(self, id, params): + # self.logger.debug("Execute action ping, params: '{}'".format(params)) + + # command = "ping -c 3 " + self.config_params["ssh-hostname"] + # return_code, stdout, stderr = await util_ee.local_async_exec(command) + # if return_code != 0: + # yield "ERROR", "return code {}: {}".format(return_code, stderr.decode()) + # else: + # yield "OK", stdout.decode() + + # This method implements the "http_check" primitive. Uncomment and modify it if a primitive requires + # executing embedded python code on VfnEE class. It requests "http:///" using a HTTP library. + # async def http_check(self, id, params): + # self.logger.debug("Execute action http_check, params: '{}'".format(params)) + + # try: + # session = requests.Session() + # url = 'http://' + self.config_params["ssh-hostname"] + # self.logger.debug("HTTP GET {}...".format(url)) + # req = session.get(url) + # self.logger.debug("{}".format(req.text)) + # if req.status_code == 200: + # yield "OK", req.text + # else: + # yield "ERROR", req.text + # except Exception as e: + # self.logger.error("HTTP error: {}".format(repr(e))) + # yield "ERROR", str(e) + + # This method implements the "touch" primitive. Uncomment and modify it if you need a primitive that + # imports a user-defined python library. It only needs "file" parameter for creating it in VDU via SSH. + # async def touch(self, id, params): + # self.logger.debug("Execute action touch, params: '{}'".format(params)) + # + # self._check_required_params(params, ["file"]) + # command = "touch" + " " + params["file"] + # return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + # if return_code != 0: + # yield "ERROR", description + # else: + # yield "OK", description + + # This method implements the "gnbsim_up" primitive. Uncomment and modify it if you need a primitive that + # starts up the gnbsim to test 5G OAI Core. It only needs "file" parameter, in this case use gnbsim. + async def gnbsim_up(self, id, params): + self.logger.debug("Execute action gnbsim_up, params: '{}'".format(params)) + + self._check_required_params(params, ["file"]) + command = "docker-compose -f docker-compose-gnbsim.yaml up -d" + " " + params["file"] + return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + if return_code != 0: + yield "ERROR", description + else: + yield "OK", description + + # This method implements the "gnbsim_down" primitive. Uncomment and modify it if you need a primitive that + # stops the gnbsim for testing 5G OAI Core. It only needs "file" parameter, in this case use gnbsim. + async def gnbsim_down(self, id, params): + self.logger.debug("Execute action gnbsim_down, params: '{}'".format(params)) + + self._check_required_params(params, ["file"]) + command = "docker-compose -f docker-compose-gnbsim.yaml down" + return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + if return_code != 0: + yield "ERROR", description + else: + yield "OK", description + + # This method implements the "send_command" primitive. Uncomment and modify it if you need a primitive that + # sends any command to the VM through SSH. It only needs "file" parameter which contains the command to send. + async def send_command(self, id, params): + self.logger.debug("Execute action send_command, params: '{}'".format(params)) + + self._check_required_params(params, ["file"]) + command = params["file"] + return_code, description = await mylib.ssh_exec(self.config_params["ssh-hostname"], self.config_params["ssh-username"], command) + if return_code != 0: + yield "ERROR", description + else: + yield "OK", description + + # This method implements the "check_database" primitive. Uncomment and modify it if a primitive requires + # accessing to a service provided by a helm subchart. Access parameters are read from environment variables + # async def check_database(self, id, params): + # self.logger.debug("Execute action check_database, params: '{}'".format(params)) + + # host = os.getenv('mysql_host') + # user = os.getenv('mysql_user') + # password = os.getenv('mysql_password') + # retries = 3 + # query = "SHOW DATABASES" + # return_code, description = mylib.mysql_query(host, user, password, retries, query) + # if return_code != 0: + # yield "ERROR", description + # else: + # yield "OK", description + + + # Static method that verifies whether a parameter exists in the map + @staticmethod + def _check_required_params(params, required_params): + for required_param in required_params: + if required_param not in params: + raise VnfException("Missing required param: {}".format(required_param)) + diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/NOTES.txt b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/NOTES.txt new file mode 100755 index 00000000..c52fc2c4 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/NOTES.txt @@ -0,0 +1,21 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "eechart.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "eechart.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "eechart.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "eechart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/_helpers.tpl b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/_helpers.tpl new file mode 100755 index 00000000..d3e28e02 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "eechart.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "eechart.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "eechart.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "eechart.labels" -}} +app.kubernetes.io/name: {{ include "eechart.name" . }} +helm.sh/chart: {{ include "eechart.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "eechart.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "eechart.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/configmap.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/configmap.yaml new file mode 100755 index 00000000..5b9634c7 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/configmap.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "eechart.fullname" . }} +data: +{{ (.Files.Glob "source/*").AsConfig | indent 2 }} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/generator.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/generator.yaml new file mode 100644 index 00000000..96f7e237 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/generator.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vnf-snmp-generator-{{ .Values.global.osm.vnf_id | lower }}" +data: + generator.yml: |- + {{ .Files.Get "snmp/generator.yml" | nindent 4}} \ No newline at end of file diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/ingress.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/ingress.yaml new file mode 100755 index 00000000..264f8909 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/ingress.yaml @@ -0,0 +1,41 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "eechart.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: +{{ include "eechart.labels" . | indent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: +{{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} +{{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + backend: + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} +{{- end }} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/mibs.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/mibs.yaml new file mode 100644 index 00000000..e7b5eab5 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/mibs.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vnf-snmp-mibs-{{ .Values.global.osm.vnf_id | lower}}" +data: +{{ (.Files.Glob "snmp/mibs/**").AsConfig | indent 2 }} \ No newline at end of file diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/secret.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/secret.yaml new file mode 100644 index 00000000..62d4b267 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "eechart.fullname" . }} +type: Opaque +data: + mysql_host: {{ .Values.mysql.fullnameOverride | b64enc | quote }} + mysql_user: {{ "root" | b64enc | quote }} + mysql_password: {{ .Values.mysql.auth.rootPassword | b64enc | quote }} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/service.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/service.yaml new file mode 100755 index 00000000..88d38d66 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "eechart.fullname" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: grpc + protocol: TCP + name: grpc + selector: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/serviceaccount.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/serviceaccount.yaml new file mode 100755 index 00000000..be615a5f --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "eechart.serviceAccountName" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +{{- end -}} diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/statefulset.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/statefulset.yaml new file mode 100755 index 00000000..a13cfa6e --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/statefulset.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "eechart.fullname" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +spec: + serviceName: {{ include "eechart.fullname" . }} + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + vnf: {{ .Values.global.osm.vnf_id | lower}} + spec: + imagePullSecrets: + - name: regcred + serviceAccountName: {{ template "eechart.serviceAccountName" . }} + securityContext: + runAsUser: 0 + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + envFrom: + - secretRef: + name: {{ include "eechart.fullname" . }} + ports: + - name: grpc + containerPort: 50051 + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + volumeMounts: + - name: osm-ee + mountPath: /app/storage + - name: osm-ee-source + mountPath: /app/EE/osm_ee/vnf + - name: snmp-config-volume + mountPath: /etc/snmp_exporter + - name: vnf-mibs + mountPath: /root/.snmp/mibs + - name: vnf-generator + mountPath: /app/vnf/generator + volumes: + - name: osm-ee-source + configMap: + name: {{ include "eechart.fullname" . }} + - name: snmp-config-volume + hostPath: + path: "/var/lib/osm/snmp_exporter/{{ .Values.global.osm.vnf_id | lower }}/" + - name: vnf-mibs + configMap: + name: "vnf-snmp-mibs-{{ .Values.global.osm.vnf_id | lower}}" + - name: vnf-generator + configMap: + name: "vnf-snmp-generator-{{ .Values.global.osm.vnf_id | lower}}" + - name: osm-ee + hostPath: + path: /var/lib/osm/osm/osm_osm_packages/_data diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/tests/test-connection.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/tests/test-connection.yaml new file mode 100755 index 00000000..e52b7b8b --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "eechart.fullname" . }}-test-connection" + labels: +{{ include "eechart.labels" . | indent 4 }} + annotations: + "helm.sh/hook": test-success +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "eechart.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/oai-helm/gnbsim_vnf/helm-charts/eechart/values.yaml b/oai-helm/gnbsim_vnf/helm-charts/eechart/values.yaml new file mode 100644 index 00000000..c63644a2 --- /dev/null +++ b/oai-helm/gnbsim_vnf/helm-charts/eechart/values.yaml @@ -0,0 +1,77 @@ +global: + osm: + vnf_id: AVNFId + +# Default values for eechart. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: opensourcemano/api-fe + tag: latest + pullPolicy: IfNotPresent + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: false + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 50050 + +ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: [] + + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +mysql: + auth: + rootPassword: "123456" + fullnameOverride: "eechart-mysql" diff --git a/oai-helm/img/architecture.png b/oai-helm/img/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0fd567247b366b5920d8027ea5d8990fd6f1a5 GIT binary patch literal 80519 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 PU|{fc^>bP0l+XkK7;RjX literal 0 HcmV?d00001 diff --git a/oai-helm/img/ext-server.png b/oai-helm/img/ext-server.png new file mode 100644 index 0000000000000000000000000000000000000000..b92e22db624f76463c8355e5327a704a4207793a GIT binary patch literal 22933 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 RWnf@n@O1TaS?83{1OT3W1_}TG literal 0 HcmV?d00001 diff --git a/oai-helm/img/gnbsim.png b/oai-helm/img/gnbsim.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cf695360ac53dfdea161be295a3cb42536745c GIT binary patch literal 23065 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

dyXuVY)%`@xLn5z99Yj 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 Q3=9kmp00i_>zopr0C*3bv;Y7A literal 0 HcmV?d00001 diff --git a/oai-helm/infra.sh b/oai-helm/infra.sh new file mode 100644 index 00000000..f4126876 --- /dev/null +++ b/oai-helm/infra.sh @@ -0,0 +1,4 @@ +# Add PDU, replace "etsi-openstack" for the name of the VIM you're using +VIMID=`osm vim-list | grep "etsi-openstack " | awk '{ print $4 }'` +sed -i "s/vim_accounts: .*/vim_accounts: [ $VIMID ]/" pdu.yaml +osm pdu-create --descriptor_file pdu.yaml diff --git a/oai-helm/oai_knf/oai_vnfd.yaml b/oai-helm/oai_knf/oai_vnfd.yaml new file mode 100644 index 00000000..96cef579 --- /dev/null +++ b/oai-helm/oai_knf/oai_vnfd.yaml @@ -0,0 +1,18 @@ +vnfd: + description: KNF with single KDU using a helm-chart for 5G OAI Core version 1.0 + df: + - id: default-df + ext-cpd: + - id: mgmt-ext + k8s-cluster-net: osm-ext + id: oai_knf + k8s-cluster: + nets: + - id: osm-ext + kdu: + - name: mecplatform + helm-chart: helm-plugtest/oai-5gcore + mgmt-cp: mgmt-ext + product-name: oai_knf + provider: OAI + version: '1.0' diff --git a/oai-helm/pdu.yaml b/oai-helm/pdu.yaml new file mode 100644 index 00000000..d0448476 --- /dev/null +++ b/oai-helm/pdu.yaml @@ -0,0 +1,9 @@ +name: router01 +description: router +type: gateway +vim_accounts: [ 42ee7fda-2996-4de0-877f-61abc792ad92 ] +shared: false +interfaces: + - name: eth0 + ip-address: 172.21.250.200 + mgmt: true diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/.helmignore b/oai-helm/vyos_pnf/helm-charts/eechart/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/Chart.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/Chart.yaml new file mode 100644 index 00000000..414c5f1a --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: OSM EE helm chart +name: eechart +version: 0.1.0 diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz b/oai-helm/vyos_pnf/helm-charts/eechart/charts.sample/mysql-8.8.26.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2cfb9b29533b6f6837de93a2022eec32c11b0b4b GIT binary patch literal 40369 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 (int, str): + """ + Execute a remote command via SSH. + """ + + try: + async with asyncssh.connect(host, + username=user, + known_hosts=None) as conn: + logger.debug("Executing command '{}'".format(command)) + result = await conn.run(command) + logger.debug("Result: {}".format(result)) + return result.exit_status, result.stderr + except Exception as e: + logger.error("Error: {}".format(repr(e))) + return -1, str(e) + + +def mysql_query(host: str, user: str, password: str, retries: int, query: str + ) -> (int, str): + """ + Execute a query to a MySQL database. + """ + + text = "" + logger.debug("Host: '{}', user: '{}', password: '{}', query: '{}'".format(host, user, password, query)) + for i in range(0, retries): + try: + with connect( + host=host, + user=user, + password=password, + ) as connection: + with connection.cursor() as cursor: + cursor.execute(query) + for (db) in cursor: + logger.debug(db) + text = text + str(db[0]) + ", " + return 0, text[0:len(text)-2] + except Error as e: + text = str(e) + logger.debug("Error: {}".format(e)) + time.sleep(3) + continue + + return -1, text diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/source/playbook.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/source/playbook.yaml new file mode 100644 index 00000000..bc6013d7 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/source/playbook.yaml @@ -0,0 +1,14 @@ +--- +- hosts: all + become: yes + tasks: + - name: Wait 120 seconds, but only start checking after 10 seconds + wait_for_connection: + delay: 20 + timeout: 120 + - name: Install packages + apt: + name: + - "{{ app }}" + state: latest + cache_valid_time: 3600 diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/source/run_ssh.sh b/oai-helm/vyos_pnf/helm-charts/eechart/source/run_ssh.sh new file mode 100755 index 00000000..8b58b3cc --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/source/run_ssh.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +date "+%H:%M:%S Starting $0..." +IP=$1 +USERNAME=$2 +SCRIPT=$3 +PARAMS=$4 + +DIR=$(dirname $0) + +date "+%H:%M:%S Waiting for $IP to be ready..." +i=5 +while ! ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" 'exit' ; do + date "+%H:%M:%S Error accessing $IP, retrying..." + sleep 5 + i=$(( $i - 1 )) + [ $i -ge 0 ] || exit 1 +done + +date "+%H:%M:%S SSH server is up, sending script '${DIR}/${SCRIPT}'..." +scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${DIR}/${SCRIPT} "$USERNAME"@"$IP": +if [ $? -ne 0 ]; then + date "+%H:%M:%S scp error" + exit 1 +fi +date "+%H:%M:%S OK. Setting file permissions" +ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" "chmod a+x $SCRIPT" +if [ $? -ne 0 ]; then + date "+%H:%M:%S ssh error" + exit 1 +fi + +COMMAND="./$SCRIPT" +[ ${#PARAMS} -ge 0 ] || COMMAND="${COMMAND=} $PARAMS" +date "+%H:%M:%S Running '$COMMAND' on $IP..." +ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o LogLevel=ERROR "$USERNAME"@"$IP" "$COMMAND" +if [ $? -ne 0 ]; then + date "+%H:%M:%S ssh error" + exit 1 +fi + +date "+%H:%M:%S End" +exit 0 diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/source/vnf_ee.py b/oai-helm/vyos_pnf/helm-charts/eechart/source/vnf_ee.py new file mode 100644 index 00000000..c4015c3f --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/source/vnf_ee.py @@ -0,0 +1,74 @@ +## +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +## + +import asyncio +import asyncssh +import requests +import logging +import os + +from osm_ee.exceptions import VnfException + +import osm_ee.util.util_ee as util_ee +import osm_ee.util.util_ansible as util_ansible +import osm_ee.vnf.mylib as mylib + +class VnfEE: + + PLAYBOOK_PATH = "/app/EE/osm_ee/vnf" + SSH_SCRIPT = "/app/EE/osm_ee/vnf/run_ssh.sh" + + def __init__(self, config_params): + self.logger = logging.getLogger('osm_ee.vnf') + self.config_params = config_params + + # config method saves SSH access parameters (host and username) for future use by other methods. + # It is mandatory in any case. + async def config(self, id, params): + self.logger.debug("Execute action config, params: {}".format(params)) + # Config action is special, params are merged with previous config calls + self.config_params.update(params) + required_params = ["ssh-hostname"] + self._check_required_params(self.config_params, required_params) + yield "OK", "Configured" + + # This method implements the "ansible_playbook" primitive. Uncomment and modify it if a primitive requires + # executing an Ansible Playbook. It needs "playbook-name" parameter (playbook file, must be in "source" directory). + async def ansible_playbook(self, id, params): + self.logger.debug("Execute action ansible_playbook, params: '{}'".format(params)) + + try: + self._check_required_params(params, ["playbook-name"]) + params["ansible_user"] = self.config_params["ssh-username"] + params["ansible_password"] = self.config_params["ssh-password"] + inventory = self.config_params["ssh-hostname"] + "," + playbook = self.PLAYBOOK_PATH + "/" + params["playbook-name"] + os.environ["ANSIBLE_HOST_KEY_CHECKING"] = "False" + return_code, stdout, stderr = await util_ansible.execute_playbook(playbook, inventory, params) + status = "OK" if return_code == 0 else "ERROR" + yield status, stdout + stderr + except Exception as e: + self.logger.debug("Error executing ansible playbook: {}".format(repr(e))) + yield "ERROR", str(e) + + # Static method that verifies whether a parameter exists in the map + @staticmethod + def _check_required_params(params, required_params): + for required_param in required_params: + if required_param not in params: + raise VnfException("Missing required param: {}".format(required_param)) + diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/NOTES.txt b/oai-helm/vyos_pnf/helm-charts/eechart/templates/NOTES.txt new file mode 100755 index 00000000..c52fc2c4 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/NOTES.txt @@ -0,0 +1,21 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "eechart.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "eechart.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "eechart.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "eechart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/_helpers.tpl b/oai-helm/vyos_pnf/helm-charts/eechart/templates/_helpers.tpl new file mode 100755 index 00000000..d3e28e02 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "eechart.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "eechart.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "eechart.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "eechart.labels" -}} +app.kubernetes.io/name: {{ include "eechart.name" . }} +helm.sh/chart: {{ include "eechart.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "eechart.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "eechart.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/configmap.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/configmap.yaml new file mode 100755 index 00000000..5b9634c7 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/configmap.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "eechart.fullname" . }} +data: +{{ (.Files.Glob "source/*").AsConfig | indent 2 }} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/generator.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/generator.yaml new file mode 100644 index 00000000..96f7e237 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/generator.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vnf-snmp-generator-{{ .Values.global.osm.vnf_id | lower }}" +data: + generator.yml: |- + {{ .Files.Get "snmp/generator.yml" | nindent 4}} \ No newline at end of file diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/ingress.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/ingress.yaml new file mode 100755 index 00000000..264f8909 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/ingress.yaml @@ -0,0 +1,41 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "eechart.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: +{{ include "eechart.labels" . | indent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: +{{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} +{{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + backend: + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} +{{- end }} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/mibs.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/mibs.yaml new file mode 100644 index 00000000..e7b5eab5 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/mibs.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vnf-snmp-mibs-{{ .Values.global.osm.vnf_id | lower}}" +data: +{{ (.Files.Glob "snmp/mibs/**").AsConfig | indent 2 }} \ No newline at end of file diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/secret.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/secret.yaml new file mode 100644 index 00000000..62d4b267 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "eechart.fullname" . }} +type: Opaque +data: + mysql_host: {{ .Values.mysql.fullnameOverride | b64enc | quote }} + mysql_user: {{ "root" | b64enc | quote }} + mysql_password: {{ .Values.mysql.auth.rootPassword | b64enc | quote }} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/service.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/service.yaml new file mode 100755 index 00000000..88d38d66 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "eechart.fullname" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: grpc + protocol: TCP + name: grpc + selector: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/serviceaccount.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/serviceaccount.yaml new file mode 100755 index 00000000..be615a5f --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "eechart.serviceAccountName" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +{{- end -}} diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/statefulset.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/statefulset.yaml new file mode 100755 index 00000000..a13cfa6e --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/statefulset.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "eechart.fullname" . }} + labels: +{{ include "eechart.labels" . | indent 4 }} +spec: + serviceName: {{ include "eechart.fullname" . }} + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "eechart.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + vnf: {{ .Values.global.osm.vnf_id | lower}} + spec: + imagePullSecrets: + - name: regcred + serviceAccountName: {{ template "eechart.serviceAccountName" . }} + securityContext: + runAsUser: 0 + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + envFrom: + - secretRef: + name: {{ include "eechart.fullname" . }} + ports: + - name: grpc + containerPort: 50051 + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + volumeMounts: + - name: osm-ee + mountPath: /app/storage + - name: osm-ee-source + mountPath: /app/EE/osm_ee/vnf + - name: snmp-config-volume + mountPath: /etc/snmp_exporter + - name: vnf-mibs + mountPath: /root/.snmp/mibs + - name: vnf-generator + mountPath: /app/vnf/generator + volumes: + - name: osm-ee-source + configMap: + name: {{ include "eechart.fullname" . }} + - name: snmp-config-volume + hostPath: + path: "/var/lib/osm/snmp_exporter/{{ .Values.global.osm.vnf_id | lower }}/" + - name: vnf-mibs + configMap: + name: "vnf-snmp-mibs-{{ .Values.global.osm.vnf_id | lower}}" + - name: vnf-generator + configMap: + name: "vnf-snmp-generator-{{ .Values.global.osm.vnf_id | lower}}" + - name: osm-ee + hostPath: + path: /var/lib/osm/osm/osm_osm_packages/_data diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/templates/tests/test-connection.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/templates/tests/test-connection.yaml new file mode 100755 index 00000000..e52b7b8b --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "eechart.fullname" . }}-test-connection" + labels: +{{ include "eechart.labels" . | indent 4 }} + annotations: + "helm.sh/hook": test-success +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "eechart.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/oai-helm/vyos_pnf/helm-charts/eechart/values.yaml b/oai-helm/vyos_pnf/helm-charts/eechart/values.yaml new file mode 100644 index 00000000..c63644a2 --- /dev/null +++ b/oai-helm/vyos_pnf/helm-charts/eechart/values.yaml @@ -0,0 +1,77 @@ +global: + osm: + vnf_id: AVNFId + +# Default values for eechart. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: opensourcemano/api-fe + tag: latest + pullPolicy: IfNotPresent + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: false + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 50050 + +ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: [] + + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +mysql: + auth: + rootPassword: "123456" + fullnameOverride: "eechart-mysql" diff --git a/oai-helm/vyos_pnf/vyos_pnfd.yaml b/oai-helm/vyos_pnf/vyos_pnfd.yaml new file mode 100644 index 00000000..c3edebc4 --- /dev/null +++ b/oai-helm/vyos_pnf/vyos_pnfd.yaml @@ -0,0 +1,65 @@ +vnfd: + description: VyOS Router PNF + df: + - id: default-df + instantiation-level: + - id: default-instantiation-level + vdu-level: + - number-of-instances: 1 + vdu-id: gateway_pdu + vdu-profile: + - id: gateway_pdu + min-number-of-instances: 1 + lcm-operations-configuration: + operate-vnf-op-config: + day1-2: + - config-primitive: + # - execution-environment-primitive: ansible_playbook + # execution-environment-ref: vyos-config-ee + # name: ansible_playbook + # parameter: + # - data-type: STRING + # name: playbook-name + config-access: + ssh-access: + default-user: vyos + required: true + execution-environment-list: + - id: vyos-config-ee + helm-chart: eechart + id: vyos_pnf + initial-config-primitive: + - execution-environment-ref: vyos-config-ee + name: config + parameter: + - name: ssh-hostname + value: + - name: ssh-username + value: vyos + - name: ssh-password + value: vyos + seq: 1 + - execution-environment-ref: vyos-config-ee + name: ansible_playbook + parameter: + - name: playbook-name + value: configure-remote.yaml + seq: 2 + ext-cpd: + - id: gateway_public-ext + int-cpd: + cpd: eth0-int + vdu-id: gateway_pdu + id: vyos_pnf + mgmt-cp: gateway_public-ext + product-name: vyos_pnf + vdu: + - description: gateway_pdu + name: gateway_pdu + id: gateway_pdu + int-cpd: + - id: eth0-int + virtual-network-interface-requirement: + - name: eth0 + pdu-type: gateway + version: 1.0 -- GitLab From aff698f2b44261e98b728d521b858a2e50ce2344 Mon Sep 17 00:00:00 2001 From: sergio-tarazona Date: Mon, 20 Jun 2022 18:11:26 -0500 Subject: [PATCH 2/2] replacing architecture image --- oai-helm/img/architecture.png | Bin 80519 -> 72499 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/oai-helm/img/architecture.png b/oai-helm/img/architecture.png index 1c0fd567247b366b5920d8027ea5d8990fd6f1a5..a34b19ea5936c45c1d95a62d2e27334a6a769192 100644 GIT binary patch literal 72499 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 E08#vk7ytkO literal 80519 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 PU|{fc^>bP0l+XkK7;RjX -- GitLab