Squashed commit of the following:
commit
5ef8e951103f7084c94d1db0628e46cf82c5d06b
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Fri May 19 11:42:13 2023 +0200
Clarify messages and minor refactors in full_install_osm
Change-Id: I33182aa1f7c53117ae0b645a4f02b3cbde7bfb1c
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
b254c0268b0ce5969e50fd79fecd1a82fa635ce5
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Mon May 22 00:47:42 2023 +0200
Update stage3 to archive logs from Airflow DAGs
Change-Id: I99b6d6b9afe94135be8909c7aa96866615532389
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
e78f5a762565fe67b2637b560fdc829a9d71ccd0
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 17 17:53:37 2023 +0200
Update tests and NBI Dockerfile to patch pyangbing and install libmagic1
Change-Id: If262e372ce26b04df5ac54961336620f27897933
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
2aab0d77d06ee94a10ffed431d1b270871ce319e
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 17 16:24:22 2023 +0200
ubuntu20 as base image for OSM installation
Change-Id: I9372211baabe88c83c5f86e32dff35686968c1d4
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
ef78c3c64d4a203334b7935e83e29bac56ccba97
Author: Patricia Reinoso <patricia.reinoso@canonical.com>
Date: Tue May 16 08:12:58 2023 +0000
Fix charmcraft pack for keystone charm
Add missing cryptography dependencies.
Change-Id: Id933b7b83ad81014bdbd2832379d202e8bc07e3f
Signed-off-by: Patricia Reinoso <patricia.reinoso@canonical.com>
commit
3f26c2c08271e5ff2beb3ee97909a035e322761f
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 17 12:19:36 2023 +0200
Update stage2 to use Ubuntu22 as Openstack base image
Change-Id: I91c710a86f7fba14f3e39d95e8d3fb96a7f14662
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
7e3c1483c5face876176644191a9ccaf9e8c0f0e
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Tue May 16 11:04:40 2023 +0200
Update jenkins-stage3 to use ubuntu22 as default image and DEBUG loglevel for sshCommand
Change-Id: I852e0f706176fda4f24ea4afd8a23e27280624ba
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
836354fe4faf5ec29acfabcaf1a79cefd86b5848
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 10 18:12:00 2023 +0200
Enable NGSA installation (Airflow, AlertMgr and PushGW) by default
This reverts commit
64885c283f162872a85ea05142d3ebf927aaacdc.
Change-Id: I5afc552335f8f25656f1947c5b212750683b807b
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
4e8024f71bb6651a447f100c1c0fbd5081ae79f5
Author: Patricia Reinoso <patricia.reinoso@canonical.com>
Date: Thu May 11 14:02:35 2023 +0000
Set focal series in OSM bundle.
Even if model-config 'default-series' is 'focal'
juju pulls the 'jammy' series for OSM charms
that's why we need to explicitly specify the series.
Change-Id: I4b2024f92f33817771cb40305d979213d7546af5
Signed-off-by: Patricia Reinoso <patricia.reinoso@canonical.com>
commit
be5864a7da380b52e846465466c3363a32d5882b
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu May 11 15:34:13 2023 +0200
Update tests/Dockerfile to make it work with Ubuntu22 base image
Change-Id: I0a7db076f5e9db92a8891d13636f5ac0a845ab4a
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
02feb8ef9ae5f545a111759cbbe9f01b1741cc85
Author: Mark Beierl <mark.beierl@canonical.com>
Date: Wed May 10 11:44:11 2023 -0400
Updates to Python 3.10 and Ubuntu22.04
Updates all dockerfiles for stage 3 to use newer versions
Change-Id: I4d73e04e11be4e12c98467f5d24ee5daff699d89
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
commit
54f21dc2e06cc72582026cf28b2206042f87133d
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 10 18:11:21 2023 +0200
Revert "Enable NGSA installation (Airflow, AlertMgr and PushGW) by default"
This reverts commit
82afc03ffce54cf3415e91ed077fb2338e2de7e9.
Change-Id: I511d4b9d9c7410999d135d217f33dd96f83e1d84
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
1233df73c57b1c72e282218839c18b139b3b5aa6
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 10 17:02:39 2023 +0200
Update Airflow Dockerfile to unpack python3.10 versions of osm_common and osm_ngsa
Change-Id: I2a650b66cfdf8bb2249882947d0a47622c673806
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
82afc03ffce54cf3415e91ed077fb2338e2de7e9
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu May 4 14:20:20 2023 +0200
Enable NGSA installation (Airflow, AlertMgr and PushGW) by default
Change-Id: Ia2ba77b7cfbd961a6b70f4257dab3470048d1117
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
0b7ef27773763a547581023f7b72f3d193bc898f
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed May 10 10:50:34 2023 +0200
Update Airflow version to 2.5.3 and Airflow Helm chart version to 1.9.0
Change-Id: I98928685b3f3d5399f8c97d306e2ba7878b5515d
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
3763099835a202bb52a6d5db7b8e9c89261aec7a
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Tue May 9 13:33:22 2023 +0200
Update install_ngsa.sh to use docker registry and user from CICD
Change-Id: I33b96d876a0dbe95846b6c6b123438f6fb17f7f0
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
53b217f94a1c19c58eb3f3077779b3dcdfb741e7
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu May 4 17:57:47 2023 +0200
Split generate_docker_images and pull_docker_images in installer
Change-Id: I09fc0f0c566b481f78d818715be64dbcb855c955
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
2efbda22f27241546145752035a759016dd87430
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu May 4 13:38:46 2023 +0200
Update db_upgrade.py to append osm to metric_name to be BWC
Change-Id: I8ed6497fe21a3db3ccf841795f8b92af1a95cc0b
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
986c308d5d89b8dbb3361ce2f1638b3285859d8e
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu May 4 11:54:30 2023 +0200
Refactor MongoUpgrade1214 in db_upgrade.py
Change-Id: I1da050701c20d1a04c34457743b43a89a2786929
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
05ee8ab29eb39cc34bd679e238c8051f29d93c35
Author: sritharan <priyadarshini@tataelxsi.co.in>
Date: Fri Apr 28 05:38:10 2023 +0000
Feature 10986: Autoheal switch and Autoscale switch
Change-Id: I851299bf9bf57e9e50d6e1ad387766bbe13a192d
Signed-off-by: sritharan <priyadarshini@tataelxsi.co.in>
commit
fc5714cf86a58590c2516dff0562ce859aace267
Author: aguilard <e.dah.tid@telefonica.com>
Date: Tue Apr 25 16:25:42 2023 +0000
Feature 10981: update alerts collections in Mongo from OSM v12 to v14
Change-Id: If9e7133439fa4c856d96a9108e4306a37b2fd167
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
e556fe0f1afc690e86e3d9de12e7ccea6e1edf7f
Author: aguilard <e.dah.tid@telefonica.com>
Date: Tue May 2 10:20:21 2023 +0000
Feature 10981: enable REST API in Airflow
Change-Id: Iaae27b9917d8cc35bae6e67cce59bef3e9bd8b41
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
b798d06e0769138e57b682e446a2576b9bf2d575
Author: aguilard <e.dah.tid@telefonica.com>
Date: Tue May 2 09:54:44 2023 +0000
Fix typo in file alertmanager-values.yaml
Change-Id: If2c17971aab5d1c37987d18d2c24ec5864a132f1
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
64775ea32b74f6629e7adf4e8bb397513ec20b6c
Author: aguilard <e.dah.tid@telefonica.com>
Date: Thu Apr 27 11:02:21 2023 +0000
Feature 10981: fix bug in Airflow DAGs directory
Change-Id: I6e081306d1363401b27d7a3d4ca8d824862d05b6
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
02609d9c7d62448a1b51b41befdfd0bc6da14d75
Author: aguilard <e.dah.tid@telefonica.com>
Date: Thu Apr 27 09:47:27 2023 +0000
Feature 10981: fix bug in AlertMgr installation
Change-Id: I83fd859d14fc64dc2b2e3328ce79577fffd619ce
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
8177b9cb342c3f820e5ba3dab85f633970960a95
Author: SANDHYA.JS <sandhya.j@tataelxsi.co.in>
Date: Wed Apr 26 09:48:39 2023 +0530
Fix Bug 2121: NG-UI uses unmaintained Chokidar version
- Changed the node version from 10 to 14 incompatible with angular 14
version.
Change-Id: Ib27ac394e2a30b9f66be530eab7fa3678d6bae01
Signed-off-by: SANDHYA.JS <sandhya.j@tataelxsi.co.in>
commit
7ff88a60b6493380746c694c0fad1b251ce08878
Author: aguilard <e.dah.tid@telefonica.com>
Date: Wed Apr 26 11:26:07 2023 +0000
Feature 10981: changed repeat_interval parameter in AlertManager
Change-Id: I317a7f33ef49b9e2103fedbb611efb960cb0d28f
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
0eda3f7f9927fc191d8f004e6dfaa1f7259d5429
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Thu Apr 20 16:13:50 2023 +0200
Improve stage-test script: Split charms list according to tox envlist.
For newer charms the tox envlist includes lint, unit and integration: for these charms execute only lint and unit tests.
For older charms the tox envlist includes black, cover, flake8, pylint, yamllint, safety: for these charms execute all tests.
Change-Id: I6cfbe129440be1665f63572a1879060eccd822fd
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
6db47d485db75641a282f8da13720e23d6f6dfb5
Author: Mark Beierl <mark.beierl@canonical.com>
Date: Thu Mar 23 13:51:15 2023 -0400
OSM DB Update Charm
Initial load of code for the osm-update-db-operator charm
Change-Id: I2884249efaaa86f614df6c286a69f3546489b523
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
commit
f91f9c32f0d3cd4011a288235d0e4e1ba44b85d5
Author: aguilard <e.dah.tid@telefonica.com>
Date: Thu Apr 13 16:57:57 2023 +0000
Feature 10981: extended Prometheus sidecar to dump alerts rules in config files
Change-Id: Ic454c894b60d0b2b88b6ea81ca35a0bf4d54ebac
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
0e49b4aa3a8853ea5b9702e0bc58134d8a4bcd88
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Mon Apr 17 12:38:17 2023 +0200
Feature 10981: remove mon and pol for ng-sa installation
This change removes the deployment of POL for NG-SA installation.
In addition, it deploys a reduced MON, which will only run
mon-dashboarder. A new K8s manifest (ng-mon.yaml )file has been created
for the purpose.
Change-Id: I243a2710d7b883d505ff4b4d012f7d67920f0e73
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
cb9bb7a66ce49050e2ea005276f7d342673bbcc6
Author: aguilard <e.dah.tid@telefonica.com>
Date: Tue Apr 18 16:25:19 2023 +0000
Feature 10981: fix CMD in webhook Dockerfile
Change-Id: If8332c12c2f065c0a4d195873e24a98aa34b0ed4
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
1805613aa8e2eb92a6daa7f7883ff10089447d37
Author: aguilard <e.dah.tid@telefonica.com>
Date: Fri Apr 14 13:04:14 2023 +0000
Feature 10981: auto-scaling alerts rules for AlertManager
Change-Id: I7e8c3f7b1dd3201b75848ae6264eaa2375a5b06b
Signed-off-by: aguilard <e.dah.tid@telefonica.com>
commit
63868ab3519bd2ab56e7da695e3e661ac877e9d8
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Apr 20 10:04:55 2023 +0200
Add nohup to http.server in tools/local-build.sh
Change-Id: Ic21b33c22c069d6145ba9d60c7e3cebb75f99664
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
171bbd48411e256e22156c56aa10d1cd2f8ca0da
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Fri Apr 14 10:00:31 2023 +0200
Update helm version to 3.11.3
Change-Id: Ic95f32cd1fc311bf93a817da90f48a17d7c2bd13
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
325032a38c3cb0f433832e63241fa0a5ce5d95ea
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Apr 13 18:07:44 2023 +0200
Replace OSM_STACK_NAME by OSM_NAMESPACE in installers scripts
Change-Id: I5ce4bdc392fd64b4bed7479768b91adba53c67e4
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
4c246cfd7065f2a06191e97e0d7970ef2ffaf1f9
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Apr 13 11:01:15 2023 +0200
Add Dockerfile for Webhook translator
Change-Id: Id9a787e0fd3fd953b1b2ace190cdca6a77199f27
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
2c5b33f530801667937e9147829bf8b02bd00409
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Apr 13 11:00:14 2023 +0200
Update tools/local-build.sh to run python http server instead of qhttp
Change-Id: Id9857656e18e1487da7123e076bf00c0b9869d25
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
7e26f9a0142e12dceda03d4b6e8cbbcbb2460c19
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Mon Mar 27 12:49:43 2023 +0200
Remove unnecessary Makefile related to old docker image build process
Change-Id: Icc304cfe7124979584405ec6635ce2c7a9861eac
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
bacdfa852d07131631709fa16de142eb9257235e
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Tue Apr 4 10:52:46 2023 +0200
Feature 10981: installation of webhook translator as part of NG-SA
Change-Id: I5318460103a6b89b37931bf661618251a3837d04
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
bae51f695443abcd0e410a92161af05b497ddc7a
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Tue Mar 28 18:27:20 2023 +0200
Feature 10981: installation of AlertManager as part of NG-SA
Change-Id: I99bb5785081df4395be336f323d5d4ac3dfd68b6
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
9ab64a953b0a46d6e09c16387c851a56c8c809cd
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Mon Mar 27 10:38:22 2023 +0200
LCM integration tests: use RO charm from charmhub instead of building it
locally
Change-Id: I3c1aba9227d9ef5c28f559447da63035214c8ea1
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
f88cb4f7140fd4e56b797deb29a41bd69c37913d
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Wed Mar 15 14:55:07 2023 +0100
Integration tests for VCA Integrator Operator
Change-Id: I2bc362961edb19f3a0696c779aa9eeaacc361572
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
commit
9a5ceab597f52688dd0496d67a556146a0472cd8
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Tue Apr 4 10:51:51 2023 +0200
Minor indentation fixes in MON and POL K8s manifests
Change-Id: Ib96f1655df650587fc6255d5f98986e1332bbb2f
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
473c541d5bf7a126e426490f0228f8812cc70b28
Author: Mark Beierl <mark.beierl@canonical.com>
Date: Mon Apr 3 13:32:22 2023 -0400
Partial revert of 13026
The *.gz and *Packages are actually used in the creation of
the debian repository for the installers.
Change-Id: I56ba0ce478fba9bcaeb58d6f2abaf235a4eab78a
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
commit
0baeac7fd2079e87698fa1e3eea48833ee331cd7
Author: Guillermo Calvino <guillermo.calvino@canonical.com>
Date: Thu Mar 23 16:14:35 2023 +0100
Adding documentation to OSM bundles
Change-Id: I94b2d7467f4fba40b625acaf545dc20fc6079f8c
Signed-off-by: Guillermo Calvino <guillermo.calvino@canonical.com>
commit
f776ffa5a6a673a62c51559d690cc86799c3269a
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Fri Mar 31 16:47:35 2023 +0200
Update Dockerfile and stage-test script to run tests for charms
This patch updates Dockerfile to use Ubuntu 20.04 as base for building
and testing charms.
This patch updates stage-test script to execute testing for charms.
Tests will be executed only for charms modified by the review.
This patch updates tox configuration for charms setting the python
interpreter to python3.8.
Change-Id: Ib9046b78d6520188cc51ac776fe60ea16479f11c
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
be1ab182ee509d5b458fcd1379a9101a7d2a09b1
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Mon Apr 3 13:21:19 2023 +0200
Update bundle (standalone and HA) to use MongoDB charm from edge channel
Change-Id: Ie60a105a58c5838db90129f1d6d896907675a405
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
99325bd3a2891df4b88329931535619e96ae28ec
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Fri Mar 31 16:56:38 2023 +0200
Remove checks for copyright in charms
This patch removes the flake8 copyright plugin and configuration.
Change-Id: I65e362748e16efbc48055370f8f1590d4910c000
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
75e3d990ec1cdb318f40f40676724a42e6528381
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Mar 23 17:31:44 2023 +0100
Update base image for Airflow to support Python 3.10
Change-Id: I4d0bd5be38faff10de4bd2dbaaa9a6010ab12732
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
fb220c0cbdf0936d0cd52e4527832aeadc9ac2b4
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Mar 23 17:29:26 2023 +0100
Update base image for Airflow to 2.5.2
Change-Id: Id73a0de10b80a4154e1816c5695d3c96de1b03fe
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
d0303f5fff9c744aa101767166e94277c9e3259f
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Fri Mar 24 11:21:19 2023 +0100
Pin Charmed Operator Framework version for charms
Change-Id: Iff5659151e5678298b72e54b7b22a375bc7b7ebf
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
48eea891e08c1427b711d6890308854df4ccc78b
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Thu Mar 23 14:04:09 2023 +0100
Fix docker tag in stage3 to coexist with periodic clean-up
Change-Id: I1ce9a5de84e0bcedd7abaecfa0fb6d753b853cb7
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
ef27d2e228e3dcfe572dc77ce7e4342085630acf
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Wed Mar 22 22:03:13 2023 +0100
Remove duplicated lines in Airflow Dockerfile
Change-Id: Iaeb200d498c01e53a7748293d39b6d9a0ba3cfa9
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
57b89ae46f768a725e2ca7f01f7dfa97254e049a
Author: Patricia Reinoso <patricia.reinoso@canonical.com>
Date: Tue Mar 14 16:06:32 2023 +0000
Set K8s 1.26 in charmed OSM installation
storage is deprecated: replaced by hostpath-storage
Change-Id: I11dd6fc2c18f89c289ad80da696929a7c0236d63
Signed-off-by: Patricia Reinoso <patricia.reinoso@canonical.com>
commit
e64d8cfde60d376724327dddd17f343d1db0388d
Author: Daniel Arndt <daniel.arndt@canonical.com>
Date: Fri Feb 24 09:41:14 2023 -0400
Fix unit tests for NG-UI charm
Change-Id: If5b98446bb589a3346bcaf1d260a3ad2c5affd3b
Signed-off-by: Daniel Arndt <daniel.arndt@canonical.com>
commit
773dd9959e5684902e84cc4751d47ccf321a4f22
Author: Daniel Arndt <daniel.arndt@canonical.com>
Date: Tue Mar 7 19:51:20 2023 -0400
Integration tests for NG UI charm
Change-Id: I3c8958d54aeed84faf1ed2194bc818c1691cf755
Signed-off-by: Daniel Arndt <daniel.arndt@canonical.com>
commit
668b1469296df65fee65d62abbbbd087c69c2c04
Author: Mark Beierl <mark.beierl@canonical.com>
Date: Wed Feb 22 13:00:58 2023 -0500
Charm cleanup
Removal of obsolete charm code
Change-Id: Ifc5e83457cf580d8b236a636328470c527c5c3a9
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
commit
56db64f403eaea09530d1073640eee9b36ff2caf
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Thu Feb 16 20:50:38 2023 +0100
Integration of OSM Charms with new MongoDB
Change-Id: I9e723dc94ff4c5b7e691179be4e9e3c7b43b6ab0
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
740e877d19b5e77c8d7f64a85e805c0e68602d41
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date: Tue Feb 28 12:56:07 2023 +0100
Update the artifacts stored in stage2
This change updates the patterns of the artifacts to be stored by the
method `archive` in `ci_helper.groovy`.
The pattern "dists/*.gz" and "dists/*Packages" corresponding to index
files for debian repos are no longer required.
The pattern "dist/*.whl" corresponding to Python wheel files is now
required, since it is an additional artifact generated in stage2.
Change-Id: Id87fcb98b2d79a9bd0b64fdaca44da8acd9e1cb1
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
commit
68bc89407c14e9e25cae41a94f1bc2e0c7eed59b
Author: Daniel Arndt <daniel.arndt@canonical.com>
Date: Tue Feb 21 11:48:27 2023 -0400
Bug 2218: Fix command for `juju run-action`
Change-Id: Ife2e8e9f532f3c67c7e2f71d3f77d3e4e7dc5257
Signed-off-by: Daniel Arndt <daniel.arndt@canonical.com>
commit
4734de1c25c0be183d2b415c9692af902e817da7
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Wed Feb 15 10:52:55 2023 +0100
Add OSM-MON integration tests
Change-Id: I3199869880d0c9ce0784dcc623c844dd39f1180a
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
commit
bb2f914425f0e7f64014d3edd6e55a83fe108975
Author: Dario Faccin <dario.faccin@canonical.com>
Date: Wed Feb 15 09:29:55 2023 +0100
Add OSM-POL integration tests
Change-Id: I140b9eb271c0f03520660b676e075b3f0d62a128
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
Change-Id: I7020fe97c6f266c9ff3ca38a0141bcf15f606df2
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
# limitations under the License.
#######################################################################################
-FROM apache/airflow:2.5.2-python3.10
+FROM apache/airflow:2.5.3-python3.10
USER root
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
gcc git python3 python3-dev python3-venv python3-pip \
- python3-setuptools wget && \
+ python3-setuptools wget zstd && \
python3 -m pip install -U pip build
USER airflow
ARG PYTHON3_OSM_NGSA_URL
RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
RUN curl $PYTHON3_OSM_NGSA_URL -o osm_ngsa.deb
-RUN mkdir /tmp/osm
-RUN dpkg-deb -x osm_common.deb /tmp/osm
-RUN dpkg-deb -x osm_ngsa.deb /tmp/osm
+RUN ar x osm_common.deb && \
+ zstd -d < control.tar.zst | xz > control.tar.xz && \
+ zstd -d < data.tar.zst | xz > data.tar.xz && \
+ ar -m -c -a sdsd osm_common_repacked.deb debian-binary control.tar.xz data.tar.xz && \
+ rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst
+RUN ar x osm_ngsa.deb && \
+ zstd -d < control.tar.zst | xz > control.tar.xz && \
+ zstd -d < data.tar.zst | xz > data.tar.xz && \
+ ar -m -c -a sdsd osm_ngsa_repacked.deb debian-binary control.tar.xz data.tar.xz && \
+ rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst
+
+RUN mkdir /tmp/osm
+RUN dpkg-deb -x osm_common_repacked.deb /tmp/osm
+RUN dpkg-deb -x osm_ngsa_repacked.deb /tmp/osm
RUN mv /tmp/osm/usr/lib/python3/dist-packages/* /home/airflow/.local/lib/python3.10/site-packages/
RUN rm -rf /tmp/osm
RUN pip3 install \
- -r /home/airflow/.local/lib/python3.10/site-packages/osm_common/requirements.txt \
- -r /home/airflow/.local/lib/python3.10/site-packages/osm_ngsa/requirements.txt
+ -r /home/airflow/.local/lib/python3.10/site-packages/osm_common/requirements.txt \
+ -r /home/airflow/.local/lib/python3.10/site-packages/osm_ngsa/requirements.txt
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+########### End of common prepration
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- apt-transport-https=2.0.* \
+ apt-transport-https=2.4.* \
gnupg2=2.2.* \
- openssh-client=1:8.*
+ openssh-client=1:8.* \
+ && rm -rf /var/lib/apt/lists/*
# https://kubernetes.io/releases/
RUN curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
-r /usr/lib/python3/dist-packages/n2vc/requirements.txt
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
ca-certificates \
RUN rm -f /etc/apt/apt.conf.d/proxy.conf
-COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
-
COPY --from=INSTALL /usr/bin/kubectl /usr/bin/kubectl
COPY --from=INSTALL /usr/local/bin/helm /usr/local/bin/helm
COPY --from=INSTALL /usr/local/bin/helm3 /usr/local/bin/helm3
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common prepration
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-r /usr/lib/python3/dist-packages/osm_mon/requirements.txt
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+#######################################################################################
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
ca-certificates \
RUN rm -f /etc/apt/apt.conf.d/proxy.conf
-COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
COPY --from=INSTALL /usr/bin/osm* /usr/bin/
COPY --from=INSTALL /usr/bin/scp /usr/bin/scp
COPY --from=INSTALL /usr/bin/ssh-keygen /usr/bin/ssh-keygen
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common prepration
ARG PYTHON3_OSM_COMMON_URL
ARG PYTHON3_OSM_IM_URL
-r /usr/lib/python3/dist-packages/osm_im/requirements.txt \
-r /usr/lib/python3/dist-packages/osm_nbi/requirements.txt
+COPY pyangbind.patch ./
+RUN patch /usr/local/lib/python3.10/dist-packages/pyangbind/lib/yangtypes.py < ./pyangbind.patch
+
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
-RUN rm -f /etc/apt/apt.conf.d/proxy.conf
-
COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
+RUN rm -f /etc/apt/apt.conf.d/proxy.conf
# Creating the user for the app
RUN groupadd -g 1000 appuser && \
--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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.
+#######################################################################################
+
+*** .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py 2023-05-10 06:50:57.876027148 -0400
+--- .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py 2023-05-10 06:51:11.772022417 -0400
+*************** limitations under the License.
+*** 22,27 ****
+--- 22,28 ----
+ from __future__ import unicode_literals
+
+ import collections
++ from six.moves import collections_abc
+ import copy
+ import uuid
+ from decimal import Decimal
+*************** def TypedListType(*args, **kwargs):
+*** 372,378 ****
+ if not isinstance(allowed_type, list):
+ allowed_type = [allowed_type]
+
+! class TypedList(collections.MutableSequence):
+ _pybind_generated_by = "TypedListType"
+ _list = list()
+
+--- 373,379 ----
+ if not isinstance(allowed_type, list):
+ allowed_type = [allowed_type]
+
+! class TypedList(collections_abc.MutableSequence):
+ _pybind_generated_by = "TypedListType"
+ _list = list()
+
xz-utils=5.2.*
RUN curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
- echo "deb https://deb.nodesource.com/node_10.x focal main" | tee -a /etc/apt/sources.list.d/nodesource.list && \
+ echo "deb https://deb.nodesource.com/node_14.x focal main" | tee -a /etc/apt/sources.list.d/nodesource.list && \
DEBIAN_FRONTEND=noninteractive apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs=10.24.*
+ DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs
ARG OSM_NGUI_URL
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+########### End of common prepration
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- apt-transport-https=2.0.* \
+ apt-transport-https=2.4.* \
gnupg2=2.2.* \
- openssh-client=1:8.*
+ openssh-client=1:8.* \
+ && rm -rf /var/lib/apt/lists/*
# https://kubernetes.io/releases/
RUN curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
-r /usr/lib/python3/dist-packages/n2vc/requirements.txt
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
ca-certificates \
RUN rm -f /etc/apt/apt.conf.d/proxy.conf
-COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
-
COPY --from=INSTALL /usr/bin/kubectl /usr/bin/kubectl
COPY --from=INSTALL /usr/local/bin/helm /usr/local/bin/helm
COPY --from=INSTALL /usr/local/bin/helm3 /usr/local/bin/helm3
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common prepration
ARG PYTHON3_OSM_COMMON_URL
ARG PYTHON3_OSM_PLA_URL
mv /MiniZincIDE-2.4.2-bundle-linux /minizinc
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
RUN rm -f /etc/apt/apt.conf.d/proxy.conf
LABEL authors="Lars-Göran Magnusson"
-COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
COPY --from=INSTALL /usr/bin/osm* /usr/bin/
COPY --from=INSTALL /minizinc /minizinc
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common prepration
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-r /usr/lib/python3/dist-packages/osm_policy_module/requirements.txt
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
-RUN rm -f /etc/apt/apt.conf.d/proxy.conf
-
COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
COPY --from=INSTALL /usr/bin/osm* /usr/bin/
COPY --from=INSTALL /usr/bin/mysql /usr/bin/
COPY --from=INSTALL /usr/bin/mysqladmin /usr/bin/
ENV OSMPOL_GLOBAL_LOG_LEVEL INFO
+ENV OSMPOL_AUTOHEAL_ENABLED True
+
+ENV OSMPOL_AUTOSCALE_ENABLED True
+
HEALTHCHECK --start-period=120s --interval=10s --timeout=5s --retries=5 \
CMD osm-pol-healthcheck || exit 1
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as INSTALL
+FROM ubuntu:22.04 as INSTALL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common prepration
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-r /usr/lib/python3/dist-packages/osm_ng_ro/requirements.txt
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+#######################################################################################
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- python3-minimal=3.8.* \
+ python3-minimal=3.10.* \
&& rm -rf /var/lib/apt/lists/*
+COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
+COPY --from=INSTALL /usr/local/lib/python3.10/dist-packages /usr/local/lib/python3.10/dist-packages
+
+#######################################################################################
+# End of common prepration
+
RUN rm -f /etc/apt/apt.conf.d/proxy.conf
-COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
-COPY --from=INSTALL /usr/local/lib/python3.8/dist-packages /usr/local/lib/python3.8/dist-packages
COPY --from=INSTALL /usr/bin/genisoimage /usr/bin/genisoimage
COPY --from=INSTALL /etc/protocols /etc/protocols
# limitations under the License.
#######################################################################################
-FROM ubuntu:20.04 as FINAL
+FROM ubuntu:22.04 as FINAL
ARG APT_PROXY
RUN if [ ! -z $APT_PROXY ] ; then \
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gcc=4:9.3.* \
- python3=3.8.* \
- python3-dev=3.8.* \
- python3-pip=20.0.2* \
- python3-setuptools=45.2.* \
- curl=7.68.*
+ gcc=4:11.* \
+ python3=3.10.* \
+ python3-dev=3.10.* \
+ python3-pip=22.0.* \
+ curl=7.81.* \
+ && rm -rf /var/lib/apt/lists/*
+
+#######################################################################################
+# End of common preparation
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- gettext-base=0.19.* \
- git=1:2.25.* \
+ gettext-base=0.21* \
+ git=1:2.34.* \
iputils-ping=3:* \
jq=1.6* \
- libcurl4-openssl-dev=7.68.* \
- libssl-dev=1.1.*
+ libcurl4-openssl-dev=7.81.* \
+ libssl-dev=3.0.* \
+ libmagic1=1:5.*
ARG OSM_TESTS_URL
ARG PYTHON3_OSM_IM_URL
RUN mv /usr/share/osm-tests/conformance-tests/ /robot-systest/
RUN mv /usr/share/osm-tests/charm.sh /usr/sbin/charm
+COPY pyangbind.patch /robot-systest
+RUN patch /usr/local/lib/python3.10/dist-packages/pyangbind/lib/yangtypes.py < /robot-systest/pyangbind.patch
+
ARG CACHE_DATE=not_a_date
RUN git clone \
https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git \
--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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.
+#######################################################################################
+
+*** .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py 2023-05-10 06:50:57.876027148 -0400
+--- .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py 2023-05-10 06:51:11.772022417 -0400
+*************** limitations under the License.
+*** 22,27 ****
+--- 22,28 ----
+ from __future__ import unicode_literals
+
+ import collections
++ from six.moves import collections_abc
+ import copy
+ import uuid
+ from decimal import Decimal
+*************** def TypedListType(*args, **kwargs):
+*** 372,378 ****
+ if not isinstance(allowed_type, list):
+ allowed_type = [allowed_type]
+
+! class TypedList(collections.MutableSequence):
+ _pybind_generated_by = "TypedListType"
+ _list = list()
+
+--- 373,379 ----
+ if not isinstance(allowed_type, list):
+ allowed_type = [allowed_type]
+
+! class TypedList(collections_abc.MutableSequence):
+ _pybind_generated_by = "TypedListType"
+ _list = list()
+
vca:
charm: osm-vca-integrator
channel: latest/beta
+ series: focal
scale: 1
ingress:
charm: nginx-ingress-integrator
- arm64
parts:
charm:
- build-packages: [git]
+ build-packages:
+ - git
+ - libffi-dev
+ charm-binary-python-packages:
+ - cryptography
import logging
from pymongo import MongoClient
+from uuid import uuid4
logger = logging.getLogger(__name__)
+class MongoUpgrade1214:
+ """Upgrade MongoDB Database from OSM v12 to v14."""
+
+ @staticmethod
+ def gather_vnfr_healing_alerts(vnfr, vnfd):
+ alerts = []
+ nsr_id = vnfr["nsr-id-ref"]
+ df = vnfd.get("df", [{}])[0]
+ # Checking for auto-healing configuration
+ if "healing-aspect" in df:
+ healing_aspects = df["healing-aspect"]
+ for healing in healing_aspects:
+ for healing_policy in healing.get("healing-policy", ()):
+ vdu_id = healing_policy["vdu-id"]
+ vdur = next(
+ (
+ vdur
+ for vdur in vnfr["vdur"]
+ if vdu_id == vdur["vdu-id-ref"]
+ ),
+ {},
+ )
+ if not vdur:
+ continue
+ metric_name = "vm_status"
+ vdu_name = vdur.get("name")
+ vnf_member_index = vnfr["member-vnf-index-ref"]
+ uuid = str(uuid4())
+ name = f"healing_{uuid}"
+ action = healing_policy
+ # action_on_recovery = healing.get("action-on-recovery")
+ # cooldown_time = healing.get("cooldown-time")
+ # day1 = healing.get("day1")
+ alert = {
+ "uuid": uuid,
+ "name": name,
+ "metric": metric_name,
+ "tags": {
+ "ns_id": nsr_id,
+ "vnf_member_index": vnf_member_index,
+ "vdu_name": vdu_name,
+ },
+ "alarm_status": "ok",
+ "action_type": "healing",
+ "action": action,
+ }
+ alerts.append(alert)
+ return alerts
+
+ @staticmethod
+ def gather_vnfr_scaling_alerts(vnfr, vnfd):
+ alerts = []
+ nsr_id = vnfr["nsr-id-ref"]
+ df = vnfd.get("df", [{}])[0]
+ # Checking for auto-scaling configuration
+ if "scaling-aspect" in df:
+ rel_operation_types = {
+ "GE": ">=",
+ "LE": "<=",
+ "GT": ">",
+ "LT": "<",
+ "EQ": "==",
+ "NE": "!=",
+ }
+ scaling_aspects = df["scaling-aspect"]
+ all_vnfd_monitoring_params = {}
+ for ivld in vnfd.get("int-virtual-link-desc", ()):
+ for mp in ivld.get("monitoring-parameters", ()):
+ all_vnfd_monitoring_params[mp.get("id")] = mp
+ for vdu in vnfd.get("vdu", ()):
+ for mp in vdu.get("monitoring-parameter", ()):
+ all_vnfd_monitoring_params[mp.get("id")] = mp
+ for df in vnfd.get("df", ()):
+ for mp in df.get("monitoring-parameter", ()):
+ all_vnfd_monitoring_params[mp.get("id")] = mp
+ for scaling_aspect in scaling_aspects:
+ scaling_group_name = scaling_aspect.get("name", "")
+ # Get monitored VDUs
+ all_monitored_vdus = set()
+ for delta in scaling_aspect.get(
+ "aspect-delta-details", {}
+ ).get("deltas", ()):
+ for vdu_delta in delta.get("vdu-delta", ()):
+ all_monitored_vdus.add(vdu_delta.get("id"))
+ monitored_vdurs = list(
+ filter(
+ lambda vdur: vdur["vdu-id-ref"]
+ in all_monitored_vdus,
+ vnfr["vdur"],
+ )
+ )
+ if not monitored_vdurs:
+ logger.error("Scaling criteria is referring to a vnf-monitoring-param that does not contain a reference to a vdu or vnf metric")
+ continue
+ for scaling_policy in scaling_aspect.get(
+ "scaling-policy", ()
+ ):
+ if scaling_policy["scaling-type"] != "automatic":
+ continue
+ threshold_time = scaling_policy.get(
+ "threshold-time", "1"
+ )
+ cooldown_time = scaling_policy.get("cooldown-time", "0")
+ for scaling_criteria in scaling_policy["scaling-criteria"]:
+ monitoring_param_ref = scaling_criteria.get(
+ "vnf-monitoring-param-ref"
+ )
+ vnf_monitoring_param = all_vnfd_monitoring_params[
+ monitoring_param_ref
+ ]
+ for vdur in monitored_vdurs:
+ vdu_id = vdur["vdu-id-ref"]
+ metric_name = vnf_monitoring_param.get("performance-metric")
+ metric_name = f"osm_{metric_name}"
+ vdu_name = vdur["name"]
+ vnf_member_index = vnfr["member-vnf-index-ref"]
+ scalein_threshold = scaling_criteria.get("scale-in-threshold")
+ # Looking for min/max-number-of-instances
+ instances_min_number = 1
+ instances_max_number = 1
+ vdu_profile = df["vdu-profile"]
+ if vdu_profile:
+ profile = next(
+ item
+ for item in vdu_profile
+ if item["id"] == vdu_id
+ )
+ instances_min_number = profile.get("min-number-of-instances", 1)
+ instances_max_number = profile.get("max-number-of-instances", 1)
+
+ if scalein_threshold:
+ uuid = str(uuid4())
+ name = f"scalein_{uuid}"
+ operation = scaling_criteria["scale-in-relational-operation"]
+ rel_operator = rel_operation_types.get(operation, "<=")
+ metric_selector = f'{metric_name}{{ns_id="{nsr_id}", vnf_member_index="{vnf_member_index}", vdu_id="{vdu_id}"}}'
+ expression = f"(count ({metric_selector}) > {instances_min_number}) and (avg({metric_selector}) {rel_operator} {scalein_threshold})"
+ labels = {
+ "ns_id": nsr_id,
+ "vnf_member_index": vnf_member_index,
+ "vdu_id": vdu_id,
+ }
+ prom_cfg = {
+ "alert": name,
+ "expr": expression,
+ "for": str(threshold_time) + "m",
+ "labels": labels,
+ }
+ action = scaling_policy
+ action = {
+ "scaling-group": scaling_group_name,
+ "cooldown-time": cooldown_time,
+ }
+ alert = {
+ "uuid": uuid,
+ "name": name,
+ "metric": metric_name,
+ "tags": {
+ "ns_id": nsr_id,
+ "vnf_member_index": vnf_member_index,
+ "vdu_id": vdu_id,
+ },
+ "alarm_status": "ok",
+ "action_type": "scale_in",
+ "action": action,
+ "prometheus_config": prom_cfg,
+ }
+ alerts.append(alert)
+
+ scaleout_threshold = scaling_criteria.get("scale-out-threshold")
+ if scaleout_threshold:
+ uuid = str(uuid4())
+ name = f"scaleout_{uuid}"
+ operation = scaling_criteria["scale-out-relational-operation"]
+ rel_operator = rel_operation_types.get(operation, "<=")
+ metric_selector = f'{metric_name}{{ns_id="{nsr_id}", vnf_member_index="{vnf_member_index}", vdu_id="{vdu_id}"}}'
+ expression = f"(count ({metric_selector}) < {instances_max_number}) and (avg({metric_selector}) {rel_operator} {scaleout_threshold})"
+ labels = {
+ "ns_id": nsr_id,
+ "vnf_member_index": vnf_member_index,
+ "vdu_id": vdu_id,
+ }
+ prom_cfg = {
+ "alert": name,
+ "expr": expression,
+ "for": str(threshold_time) + "m",
+ "labels": labels,
+ }
+ action = scaling_policy
+ action = {
+ "scaling-group": scaling_group_name,
+ "cooldown-time": cooldown_time,
+ }
+ alert = {
+ "uuid": uuid,
+ "name": name,
+ "metric": metric_name,
+ "tags": {
+ "ns_id": nsr_id,
+ "vnf_member_index": vnf_member_index,
+ "vdu_id": vdu_id,
+ },
+ "alarm_status": "ok",
+ "action_type": "scale_out",
+ "action": action,
+ "prometheus_config": prom_cfg,
+ }
+ alerts.append(alert)
+ return alerts
+
+ @staticmethod
+ def _migrate_alerts(osm_db):
+ """Create new alerts collection.
+ """
+ if "alerts" in osm_db.list_collection_names():
+ return
+ logger.info("Entering in MongoUpgrade1214._migrate_alerts function")
+
+ # Get vnfds from MongoDB
+ logger.info("Reading VNF descriptors:")
+ vnfds = osm_db["vnfds"]
+ db_vnfds = []
+ for vnfd in vnfds.find():
+ logger.info(f' {vnfd["_id"]}: {vnfd["description"]}')
+ db_vnfds.append(vnfd)
+
+ # Get vnfrs from MongoDB
+ logger.info("Reading VNFRs")
+ vnfrs = osm_db["vnfrs"]
+
+ # Gather healing and scaling alerts for each vnfr
+ healing_alerts = []
+ scaling_alerts = []
+ for vnfr in vnfrs.find():
+ logger.info(f' vnfr {vnfr["_id"]}')
+ vnfd = next((sub for sub in db_vnfds if sub["_id"] == vnfr["vnfd-id"]), None)
+ healing_alerts.extend(MongoUpgrade1214.gather_vnfr_healing_alerts(vnfr, vnfd))
+ scaling_alerts.extend(MongoUpgrade1214.gather_vnfr_scaling_alerts(vnfr, vnfd))
+
+ # Add new alerts in MongoDB
+ alerts = osm_db["alerts"]
+ for alert in healing_alerts:
+ logger.info(f"Storing healing alert in MongoDB: {alert}")
+ alerts.insert_one(alert)
+ for alert in scaling_alerts:
+ logger.info(f"Storing scaling alert in MongoDB: {alert}")
+ alerts.insert_one(alert)
+
+ # Delete old alarms collections
+ logger.info("Deleting alarms and alarms_action collections")
+ alarms = osm_db["alarms"]
+ alarms.drop()
+ alarms_action = osm_db["alarms_action"]
+ alarms_action.drop()
+
+
+ @staticmethod
+ def upgrade(mongo_uri):
+ """Upgrade alerts in MongoDB."""
+ logger.info("Entering in MongoUpgrade1214.upgrade function")
+ myclient = MongoClient(mongo_uri)
+ osm_db = myclient["osm"]
+ MongoUpgrade1214._migrate_alerts(osm_db)
+
+
class MongoUpgrade1012:
"""Upgrade MongoDB Database from OSM v10 to v12."""
MONGODB_UPGRADE_FUNCTIONS = {
"9": {"10": [MongoUpgrade910.upgrade]},
"10": {"12": [MongoUpgrade1012.upgrade]},
+ "12": {"14": [MongoUpgrade1214.upgrade]},
}
MYSQL_UPGRADE_FUNCTIONS = {}
BUG_FIXES = {
echo -e " -P <VCA pubkey> use VCA/juju public key file"
echo -e " -A <VCA apiproxy> use VCA/juju API proxy"
echo -e " --pla: install the PLA module for placement support"
- echo -e " --ng-sa: install Airflow and Pushgateway to get VNF and NS status (experimental)"
+ echo -e " --old-sa: install old Service Assurance framework (MON, POL); do not install Airflow and Pushgateway"
+ echo -e " --ng-sa: install new Service Assurance framework (Airflow, AlertManager and Pushgateway) (enabled by default)"
echo -e " -m <MODULE>: install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)"
echo -e " -o <ADDON>: ONLY (un)installs one of the addons (k8s_monitor, ng-sa)"
echo -e " -O <openrc file path/cloud name>: Install OSM to an OpenStack infrastructure. <openrc file/cloud name> is required. If a <cloud name> is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
-function generate_docker_images() {
+function pull_docker_images() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
- echo "Pulling and generating docker images"
- [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
-
echo "Pulling docker images"
+ [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
+ echo "Pulling non-OSM docker images"
if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then
sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image"
sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image"
sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image"
fi
- if [ -n "$PULL_IMAGES" ]; then
- echo "Pulling OSM docker images"
- for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do
+ list_of_modules="MON NBI KEYSTONE RO LCM NG-UI osmclient"
+ if [ -n "$INSTALL_NGSA" ]; then
+ list_of_modules="${list_of_modules} Airflow Webhook"
+ else
+ list_of_modules="${list_of_modules} POL"
+ fi
+ if [ -n "$INSTALL_PLA" ]; then
+ list_of_modules="${list_of_modules} PLA"
+ fi
+ echo "Pulling OSM docker images for the following modules: ${list_of_modules}"
+ for module in ${list_of_modules}; do
+ module_lower=${module,,}
+ module_tag="${OSM_DOCKER_TAG}"
+ if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then
+ module_tag="${MODULE_DOCKER_TAG}"
+ fi
+ echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image"
+ sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image"
+ done
+
+ echo "Finished pulling docker images"
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function generate_docker_images() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ echo "Generating docker images"
+ _build_from=$COMMIT_ID
+ [ -z "$_build_from" ] && _build_from="latest"
+ echo "OSM Docker images generated from $_build_from"
+ LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
+ trap 'rm -rf "${LWTEMPDIR}"' EXIT
+ for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do
+ if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
module_lower=${module,,}
if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
continue
fi
- module_tag="${OSM_DOCKER_TAG}"
- if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then
- module_tag="${MODULE_DOCKER_TAG}"
- fi
- echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image"
- sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image"
- done
- else
- _build_from=$COMMIT_ID
- [ -z "$_build_from" ] && _build_from="latest"
- echo "OSM Docker images generated from $_build_from"
- LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
- trap 'rm -rf "${LWTEMPDIR}"' EXIT
- for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
- module_lower=${module,,}
- if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
- continue
- fi
- git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module
- git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID}
- sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image"
- fi
- done
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then
- BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY")
- BUILD_ARGS+=(--build-arg RELEASE="$RELEASE")
- BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY")
- BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE")
- sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
+ git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module
+ git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID}
+ sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image"
fi
- echo "Finished generation of docker images"
+ done
+ if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then
+ BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY")
+ BUILD_ARGS+=(--build-arg RELEASE="$RELEASE")
+ BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY")
+ BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE")
+ sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
fi
-
- echo "Finished pulling and generating docker images"
+ echo "Finished generation of docker images"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
kubectl create secret generic ro-db-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env
kubectl create secret generic ro-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env
kubectl create secret generic keystone-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env
- kubectl create secret generic pol-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env
if [ -n "${INSTALL_NGSA}" ]; then
kubectl create secret generic ngsa-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ngsa.env
kubectl create secret generic webhook-translator-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/webhook-translator.env
+ else
+ kubectl create secret generic pol-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env
fi
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
#deploys osm pods and services
function deploy_osm_services() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ echo "The following manifests under $OSM_K8S_WORK_DIR will be deployed:"
+ ls $OSM_K8S_WORK_DIR
kubectl apply -n $OSM_NAMESPACE -f $OSM_K8S_WORK_DIR
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
function install_osm_ngsa_service() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
- $OSM_DEVOPS/installers/install_ngsa.sh -d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} ${DEBUG_INSTALL} || \
+ NGSA_OPTS="-d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} -U ${DOCKER_USER} ${DEBUG_INSTALL}"
+ [ -n "${DOCKER_REGISTRY_URL}" ] && NGSA_OPTS="${NGSA_OPTS} -r ${DOCKER_REGISTRY_URL}"
+ $OSM_DEVOPS/installers/install_ngsa.sh ${NGSA_OPTS} || \
FATAL_TRACK install_osm_ngsa_service "install_ngsa.sh failed"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
for module in $services; do
if [ "$module" == "pla" ]; then
if [ -n "$INSTALL_PLA" ]; then
- echo "Updating K8s manifest file from opensourcemano\/pla:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/pla:${TAG}"
+ echo "Updating K8s manifest file for ${module} from opensourcemano\/pla:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/pla:${TAG}"
sudo sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml
fi
else
elif [ "$module" == "ng-mon" ]; then
image="mon"
fi
- echo "Updating K8s manifest file from opensourcemano\/${image}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${image}:${TAG}"
+ echo "Updating K8s manifest file for ${module} from opensourcemano\/${image}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${image}:${TAG}"
sudo sed -i "s#opensourcemano/${image}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${image}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml
fi
done
}
function update_manifest_files() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
osm_services="nbi lcm ro pol mon ng-mon ng-ui keystone pla prometheus ng-prometheus"
list_of_services=""
for module in $osm_services; do
fi
# Deploy OSM services
- [ -z "$DOCKER_NOBUILD" ] && generate_docker_images
+ [ -z "$DOCKER_NOBUILD" ] && pull_docker_images
+ [ -z "$DOCKER_NOBUILD" ] && [ -z "$PULL_IMAGES" ] && generate_docker_images
track docker_images docker_images_ok
generate_k8s_manifest_files
RELEASE="ReleaseTEN"
REPOSITORY="stable"
INSTALL_K8S_MONITOR=""
-INSTALL_NGSA=""
+INSTALL_NGSA="y"
INSTALL_PLA=""
INSTALL_VIMEMU=""
LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd"
[ "${OPTARG}" == "tag" ] && continue
[ "${OPTARG}" == "registry" ] && continue
[ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue
+ [ "${OPTARG}" == "old-sa" ] && INSTALL_NGSA="" && continue
[ "${OPTARG}" == "ng-sa" ] && INSTALL_NGSA="y" && continue
[ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue
[ "${OPTARG}" == "nocachelxdimages" ] && continue
- name: airflow-ui
port: "{{ .Values.ports.airflowUI }}"
targetPort: "{{ .Values.ports.airflowUI }}"
+extraEnv: |
+ - name: AIRFLOW__API__AUTH_BACKENDS
+ value: 'airflow.api.auth.backend.basic_auth'
extraEnvFrom: |
- secretRef:
name: ngsa-secret
config:
core:
- dags_folder: "/home/airflow/.local/lib/python3.8/site-packages/osm_ngsa"
+ dags_folder: "/home/airflow/.local/lib/python3.10/site-packages/osm_ngsa"
group_wait: 10s
group_interval: 2m
receiver: default-receiver
- repeat_interval: 3h
routes:
- receiver: vdu-webhook
+ repeat_interval: 15m
matchers:
- alertname = "vdu_down"
- receiver: 'scaleout-webhook'
+ repeat_interval: 5m
matchers:
- alertname =~ "^scaleout_.*"
- receiver: 'scalein-webhook'
+ repeat_interval: 5m
matchers:
- alertname =~ "^scalein_.*"
set +eux
# Helm chart 1.6.0 correspondes to Airflow 2.3.0
-AIRFLOW_HELM_VERSION=1.6.0
+AIRFLOW_HELM_VERSION=1.9.0
PROMPUSHGW_HELM_VERSION=1.18.2
ALERTMANAGER_HELM_VERSION=0.22.0
# update airflow-values.yaml to use the right tag
echo "Updating Helm values file helm/values/airflow-values.yaml to use defaultAirflowTag: ${OSM_DOCKER_TAG}"
sudo sed -i "s#defaultAirflowTag:.*#defaultAirflowTag: ${OSM_DOCKER_TAG}#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
+ echo "Updating Helm values file helm/values/airflow-values.yaml to use defaultAirflowRepository: ${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow"
+ sudo sed -i "s#defaultAirflowRepository:.*#defaultAirflowRepository: ${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
if ! helm -n osm status airflow 2> /dev/null ; then
# if it does not exist, create secrets and install
kubectl -n osm create secret generic airflow-webserver-secret --from-literal="webserver-secret-key=$(python3 -c 'import secrets; print(secrets.token_hex(16))')"
# Install Prometheus AlertManager helm chart
function install_prometheus_alertmanager() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+ # copy alertmanager-values.yaml to the destination folder
+ sudo mkdir -p ${OSM_HELM_WORK_DIR}
+ sudo cp ${OSM_DEVOPS}/installers/helm/values/alertmanager-values.yaml ${OSM_HELM_WORK_DIR}
if ! helm -n osm status alertmanager 2> /dev/null ; then
# if it does not exist, install
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# main
+DOCKER_REGISTRY_URL=
+DOCKER_USER="opensourcemano"
OSM_DEVOPS="/usr/share/osm-devops"
-OSM_HELM_WORK_DIR="/etc/osm/helm"
OSM_DOCKER_TAG="13"
+OSM_HELM_WORK_DIR="/etc/osm/helm"
-while getopts ":D:d:t:-: " o; do
+while getopts ":D:d:t:r:U:-: " o; do
case "${o}" in
D)
OSM_DEVOPS="${OPTARG}"
t)
OSM_DOCKER_TAG="${OPTARG}"
;;
+ r)
+ DOCKER_REGISTRY_URL="${OPTARG}"
+ ;;
+ U)
+ DOCKER_USER="${OPTARG}"
+ ;;
-)
[ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="y" && continue
echo -e "Invalid option: '--$OPTARG'\n" >&2
void archive_logs(Map remote) {
- sshCommand remote: remote, command: '''mkdir -p logs'''
+ sshCommand remote: remote, command: '''mkdir -p logs/dags'''
if (useCharmedInstaller) {
sshCommand remote: remote, command: '''
- for container in `kubectl get pods -n osm | grep -v operator | grep -v NAME| awk '{print $1}'`; do
- logfile=`echo $container | cut -d- -f1`
+ for pod in `kubectl get pods -n osm | grep -v operator | grep -v NAME| awk '{print $1}'`; do
+ logfile=`echo $pod | cut -d- -f1`
echo "Extracting log for $logfile"
- kubectl logs -n osm $container --timestamps=true 2>&1 > logs/$logfile.log
+ kubectl logs -n osm $pod --timestamps=true 2>&1 > logs/$logfile.log
done
'''
} else {
> logs/$statefulset.log
done
'''
+ sshCommand remote: remote, command: '''
+ schedulerPod="$(kubectl get pods -n osm | grep airflow-scheduler| awk '{print $1; exit}')"; \
+ echo "Extracting logs from Airflow DAGs from pod ${schedulerPod}"; \
+ kubectl cp -n osm ${schedulerPod}:/opt/airflow/logs/scheduler/latest/dags logs/dags -c scheduler
+ '''
}
sh 'rm -rf logs'
// Ensure the VM is ready
sshCommand remote: remote, command: 'cloud-init status --wait'
// Force time sync to avoid clock drift and invalid certificates
- sshCommand remote: remote, command: 'sudo apt-get update'
- sshCommand remote: remote, command: 'sudo apt-get install -y chrony'
+ sshCommand remote: remote, command: 'sudo apt-get -y update'
+ sshCommand remote: remote, command: 'sudo apt-get -y install chrony'
sshCommand remote: remote, command: 'sudo service chrony stop'
sshCommand remote: remote, command: 'sudo chronyd -vq'
sshCommand remote: remote, command: 'sudo service chrony start'
} // if (params.SAVE_ARTIFACTS_OVERRIDE || stage_archive)
} // dir(OSM_DEVOPS)
} finally {
- stage('Archive Container Logs') {
+ // stage('Debug') {
+ // sleep 900
+ // }
+ stage('Archive Container Logs') {
if ( ARCHIVE_LOGS_FLAG ) {
try {
// Archive logs
nohup python3 -m http.server ${HTTPPORT} --directory "${HTTPDDIR}" &>/dev/null &
}
+function run_httpserver() {
+ EXISTING_PID=$(ps auxw | grep "http.server $HTTPPORT" | grep -v grep | awk '{print $2}')
+ if [ ! -z $EXISTING_PID ] ; then
+ kill $EXISTING_PID
+ fi
+ nohup python3 -m http.server ${HTTPPORT} --directory "${HTTPDDIR}" &>/dev/null &
+}
+
function stage_2() {
print_section "Performing Stage 2"
MODULES="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient PLA POL RO tests"