Compare commits

...

537 Commits

Author SHA1 Message Date
TIP Automation User
445c5af7f2 Chg: update image tag in helm values to v3.2.0 2024-10-04 15:54:47 +00:00
TIP Automation User
a6ca7fa15f Chg: update image tag in helm values to v3.2.0-RC4 2024-10-01 01:06:13 +00:00
TIP Automation User
5b1982d422 Chg: update image tag in helm values to v3.2.0-RC3 2024-09-30 23:11:07 +00:00
TIP Automation User
3d2e0c1f6f Chg: update image tag in helm values to v3.2.0-RC2 2024-09-27 17:09:46 +00:00
TIP Automation User
7b5154219d Chg: update image tag in helm values to v3.2.0-RC1 2024-09-11 17:51:03 +00:00
Carsten Schafer
694588f8dc Merge pull request #282 from Telecominfraproject/WIFI-14014-upgrade-kafka-wo-zookeeper
Wifi 14014 upgrade kafka wo zookeeper
2024-08-06 09:43:35 -04:00
Carsten Schafer
ff06b109ee dco tweak
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-08-06 09:37:20 -04:00
Carsten Schafer
4faa01ac74 Merge remote-tracking branch 'origin/main' into WIFI-14014-upgrade-kafka-wo-zookeeper 2024-08-02 14:07:01 -04:00
Carsten Schafer
1f6f114ff8 Merge pull request #281 from Telecominfraproject/WIFI-14020-dont-mark-5912-as-ssl-port
WIFI-14020: 5912 should not be marked as ssl port
2024-08-02 12:57:46 -04:00
Carsten Schafer
c0569267f7 WIFI-14020: 5912 should not be marked as ssl port
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-08-02 11:36:53 -04:00
Carsten Schafer
8157ef0d00 Also wait for kafka to be up for owls
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-29 14:26:31 -04:00
Carsten Schafer
7ba34c8398 Resolve merge conflicts
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-29 14:05:48 -04:00
Carsten Schafer
f8dcdf64f3 Adjust owls image tags as new ones don't work
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-29 14:02:03 -04:00
Carsten Schafer
3e8795a6d5 Merge pull request #279 from Telecominfraproject/WIFI-13969-docker-compose-default-to-postgres
Wifi 13969 docker compose default to postgres
2024-07-29 13:06:38 -04:00
Carsten Schafer
0185aece01 Merge remote-tracking branch 'origin/main' into WIFI-14014-upgrade-kafka-wo-zookeeper 2024-07-29 11:50:10 -04:00
Carsten Schafer
4fcbd327a6 Merge pull request #280 from Telecominfraproject/WIFI-13821-set-LB-variables
Make sure Cert ARN is exported - otherwise will not be set
2024-07-29 10:33:07 -04:00
Carsten Schafer
b0a5640a4d Make sure Cert ARN is exported - otherwise will not be set
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-29 10:24:19 -04:00
Carsten Schafer
dceb24d0bb SQL init script can't work, DB check to last one
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-26 16:42:33 -04:00
Carsten Schafer
8580689ce8 Switch to latest kafka wo zookeeper
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-26 16:39:36 -04:00
Carsten Schafer
1c43883094 move to postgres for the other LB based docker compose samples
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-26 11:08:59 -04:00
Carsten Schafer
aa6ef772e2 Merge remote-tracking branch 'origin/main' into WIFI-13969-docker-compose-default-to-postgres 2024-07-25 17:44:18 -04:00
Carsten Schafer
a4b8738ac5 Make postgres the default storage option 2024-07-25 17:44:03 -04:00
Carsten Schafer
034ed6ac89 Merge pull request #278 from Telecominfraproject/WIFI-13866-remove-rrm-dc
Remove rrm, wait for kafka and postgres to be available
2024-07-25 16:10:58 -04:00
Carsten Schafer
fd7288f449 Remove rrm, wait for kafka and postgres to be available
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-10 16:05:50 -04:00
Carsten Schafer
3d791d31f7 Merge pull request #276 from Telecominfraproject/WIFI-13871-CICD-changes2
WIFI-13871 rework of secret handling and adjust volume sizes
2024-07-08 17:07:38 -04:00
Carsten Schafer
423f7d43fe WIFI-13871 rework of secret handling and adjust volume sizes
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-08 15:11:03 -04:00
Carsten Schafer
3ac6b014e0 Merge pull request #275 from Telecominfraproject/WIFI-13796-remove-haproxy
Wifi 13796 remove haproxy, rrm and kafka brokers
2024-07-05 10:36:09 -04:00
Carsten Schafer
79f13fb117 WIFI-13796 Switch to brokerless kafka setup - more likely to work with most recent OW components
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-07-05 10:17:28 -04:00
Carsten Schafer
05da3898f7 Merge remote-tracking branch 'origin/main' into WIFI-13796-remove-haproxy 2024-07-02 13:34:46 -04:00
Carsten Schafer
9b7124b71a Merge pull request #274 from Telecominfraproject/WIFI-13871-CICD-changes
WIFI-13871 Correct log setting and point to chart
2024-06-27 09:14:02 -04:00
Carsten Schafer
a3d8615d79 WIFI-13871 Correct log setting and point to chart
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-06-27 09:13:25 -04:00
Carsten Schafer
e49bd3a6c9 Merge pull request #273 from Telecominfraproject/WIFI-13836
WIFI-13836: first cgw helmfile checkin
2024-06-26 10:16:54 -04:00
Carsten Schafer
5b2ff48836 More helmfile tweaks
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-06-25 14:51:41 -04:00
Carsten Schafer
3f11a39ec0 Disable haproxy and remove owrrm
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-06-25 11:26:18 -04:00
Carsten Schafer
d9bb26ec4c Update git-release.yml
No repo added, don't run helm repo update.
2024-06-19 07:26:44 -04:00
jaspreetsachdev
065f719d1f Merge pull request #272 from Telecominfraproject/WIFI-13821-main
WIFI-13821 copy GH fixes from 3.1.0
2024-06-10 15:58:46 -04:00
Carsten Schafer
3cb9debe91 copy GH fixes from 3.1.0
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-06-10 15:50:54 -04:00
Carsten Schafer
f02dd63750 Merge pull request #269 from Telecominfraproject/WIFI-13130-tuning
WIFI-13130 Document some OWLS tuning and try to fix GH issues
2024-06-10 15:01:25 -04:00
Carsten Schafer
8d673a8e90 Document some OWLS tuning and try to fix GH issues
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-06-10 14:50:15 -04:00
Carsten Schafer
f4720fcb33 Merge pull request #268 from Telecominfraproject/WIFI-13361
Bump up resources for kafka - from default chart resources
2024-05-30 16:46:25 -04:00
Carsten Schafer
7b93a3a6cc Bump up resources for kafka - from default chart resources
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-05-30 15:58:30 -04:00
Carsten Schafer
d8674a82b2 Merge pull request #266 from Telecominfraproject/WIFI-13361
Wifi 13361: Change to most recent kafka version
2024-05-16 16:19:25 -04:00
Carsten Schafer
f4a8649bad WIFI-13361 - fix CI issues
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-05-15 12:15:23 -04:00
Carsten Schafer
bc00e6244e WIFI-13361 - remove old bitnami chart ref
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-05-15 12:02:27 -04:00
Carsten Schafer
123c341f9b WIFI-13361: change to most recent kafka without zookeeper
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-05-15 10:48:06 -04:00
Carsten Schafer
a377966ac9 initial Kafka version changes
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-04-15 11:34:46 -04:00
Carsten Schafer
9093a85ccf Merge pull request #265 from Telecominfraproject/WIFI-13130
WIFI-13130 - add support for qa03 and dev03 env on another cluster
2024-04-10 13:29:06 -04:00
Carsten Schafer
3133f07edb WIFI-13130 - add support for qa03 and dev03 env on another cluster
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-04-10 09:48:35 -04:00
Carsten Schafer
c7692c9107 Merge pull request #262 from Telecominfraproject/WIFI-13357-be-able-to-set-ingress-class-name-for-all-the-component-helm-charts-as-the-annotation-is-no-longer-supported
Wifi 13357 be able to set ingress class name for all the component helm charts as the annotation is no longer supported
2024-02-15 11:48:55 -05:00
Carsten Schafer
536e84ce50 Give haproxy a few more resources
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-02-14 10:10:30 -05:00
Carsten Schafer
70c8886d24 Don't always cleanup the namespace unless called with full argument
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-02-13 12:07:17 -05:00
Carsten Schafer
0ee5ea9648 Remove ingress.class annotation 2024-02-13 12:05:29 -05:00
Carsten Schafer
6f2c8d9b02 Merge pull request #261 from Telecominfraproject/WIFI-13246-CS-postgres
WIFI-13246 Switch to non-HA postgres without pgpool
2024-02-13 10:41:06 -05:00
Carsten Schafer
796c78cf1c Also piggyback ingress changes on this bug WIFI-13357
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-02-09 15:35:04 -05:00
Carsten Schafer
6355161429 WIFI-13246 Switch to non-HA postgres without pgpool
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2024-02-09 15:19:59 -05:00
jaspreetsachdev
c84cd0f15b Merge pull request #257 from Telecominfraproject/pgpool-test
Changed regular expression
2024-02-01 12:26:18 -05:00
Jaspreet Sachdev
472c4d6809 Changed regular expression
Signed-off-by: Jaspreet Sachdev <jaspreet.sachdev@kinarasystems.com>
2024-02-01 12:25:01 -05:00
jaspreetsachdev
ea4d0e40fa Merge pull request #256 from Telecominfraproject/pgpool-test
Removed quotes
2024-02-01 07:52:22 -05:00
Jaspreet Sachdev
d0e5d398cf Removed quotes
Signed-off-by: Jaspreet Sachdev <jaspreet.sachdev@kinarasystems.com>
2024-02-01 07:51:40 -05:00
jaspreetsachdev
538086267a Merge pull request #255 from Telecominfraproject/pgpool-test
Changed the grep arg to look for release
2024-01-31 15:38:33 -05:00
Jaspreet Sachdev
f0cd139e90 Changed the grep arg to look for release
Signed-off-by: Jaspreet Sachdev <jaspreet.sachdev@kinarasystems.com>
2024-01-31 15:37:35 -05:00
jaspreetsachdev
7a8cb72b65 Update values.openwifi-qa.single-external-db.yaml 2024-01-31 07:37:44 -05:00
i-chvets
2bc81390ff Merge pull request #254 from Telecominfraproject/WIFI-13353
fix: pin kafka version to well tested tag
2024-01-29 09:06:30 -05:00
Ivan Chvets
747739cf94 fix: ping kafka version to well tested tag
https://telecominfraproject.atlassian.net/browse/WIFI-13353

Summary of changes:
- Replaced `latest` tag for bitnami/kafka in docker-compose to well
  tested tag `2.8.0-debian-10-r43`

Signed-off-by: Ivan Chvets <ivan.chvets@kinarasystems.com>
Signed-off-by: Ivan Chvets <ivan.chvets@canonical.com>
2024-01-26 15:18:24 -05:00
jaspreetsachdev
9784d1aeb1 Merge pull request #253 from Telecominfraproject/pgpool-test
Fixed a typo
2024-01-25 15:45:36 -05:00
Jaspreet Sachdev
ffd68dabf5 Fixed a typo
Signed-off-by: Jaspreet Sachdev <jaspreet.sachdev@kinarasystems.com>
2024-01-25 15:43:43 -05:00
jaspreetsachdev
9b47f84f4e Merge pull request #252 from Telecominfraproject/pgpool-test2
Modifying postgresql-ha values
2024-01-25 14:56:09 -05:00
jaspreetsachdev
93afc33c41 Merge branch 'main' into pgpool-test2 2024-01-25 14:55:57 -05:00
Jaspreet Sachdev
320ef553ab Modifying postgresql-ha values
Signed-off-by: Jaspreet Sachdev <jaspreet.sachdev@kinarasystems.com>
2024-01-25 14:42:58 -05:00
Stephane Bourque
8427b5eadc Merge pull request #250 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-18 11:41:16 -08:00
stephb9959
ced503bdf7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-18 11:40:16 -08:00
Stephane Bourque
b32a792b7d Merge pull request #249 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-18 11:25:09 -08:00
stephb9959
c0daf9466f https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-18 11:23:55 -08:00
stephb9959
9381a34f85 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-18 07:57:10 -08:00
Stephane Bourque
03e79b7f99 Merge pull request #248 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-18 07:47:54 -08:00
stephb9959
87996d04e9 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-18 07:24:21 -08:00
Stephane Bourque
7818432a14 Merge pull request #247 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 23:41:28 -08:00
stephb9959
7d6ae997d8 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 23:40:43 -08:00
Stephane Bourque
05bc9d3ab3 Merge pull request #246 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 23:25:21 -08:00
stephb9959
39c20d79c1 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 23:24:44 -08:00
Stephane Bourque
f88c1bbeb5 Merge pull request #245 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 23:16:34 -08:00
stephb9959
8cda55889d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 23:15:47 -08:00
Stephane Bourque
986ffd0258 Merge pull request #244 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 22:51:44 -08:00
stephb9959
eae85d7db9 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 22:50:47 -08:00
Stephane Bourque
fe93f39e2e Merge pull request #243 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-17 22:40:00 -08:00
stephb9959
a9f8faac36 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 22:38:42 -08:00
stephb9959
e80913bf84 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 22:37:24 -08:00
Stephane Bourque
d6606dbb0f Merge pull request #242 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 22:34:29 -08:00
stephb9959
fa967934c9 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 22:33:35 -08:00
Stephane Bourque
2d8f1b935b Merge pull request #241 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 21:59:48 -08:00
stephb9959
952e630876 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 21:59:08 -08:00
Stephane Bourque
f810cc5536 Merge pull request #240 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 21:46:40 -08:00
stephb9959
8b12984eff https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 21:45:59 -08:00
Stephane Bourque
8929e86d0c Merge pull request #239 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 21:34:03 -08:00
stephb9959
2a32ed21a8 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 21:33:27 -08:00
Stephane Bourque
f52417d742 Merge pull request #238 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 21:19:18 -08:00
stephb9959
f690ca2585 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 21:18:50 -08:00
Stephane Bourque
37e595b202 Merge pull request #237 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 21:12:27 -08:00
stephb9959
c08aad1c0a https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 21:11:52 -08:00
Stephane Bourque
12242da7b0 Merge pull request #236 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 21:05:04 -08:00
stephb9959
c5e26a357d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 21:04:23 -08:00
Stephane Bourque
21e2365626 Merge pull request #235 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 20:46:12 -08:00
stephb9959
a38e491b76 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 20:45:36 -08:00
Stephane Bourque
fac3af182e Merge pull request #234 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-17 20:38:52 -08:00
stephb9959
f02958bc07 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 20:38:13 -08:00
stephb9959
65411efe2e https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 20:37:34 -08:00
Stephane Bourque
a79a225bc3 Merge pull request #233 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 20:25:54 -08:00
stephb9959
58d54a2bd7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 20:25:08 -08:00
Stephane Bourque
608a58ac7c Merge pull request #232 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 20:18:19 -08:00
stephb9959
d047d3bbb1 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 20:17:07 -08:00
Stephane Bourque
dc54001c7b Merge pull request #231 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 20:12:04 -08:00
stephb9959
890d0bea4c https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 20:11:08 -08:00
Stephane Bourque
b5e6a22c73 Merge pull request #230 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 19:56:40 -08:00
stephb9959
d80530908a https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 19:56:04 -08:00
Stephane Bourque
5608ee9adc Merge pull request #229 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 15:11:02 -08:00
stephb9959
c7e41cd4c0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 15:10:08 -08:00
Stephane Bourque
fbcb103938 Merge pull request #228 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 15:02:51 -08:00
stephb9959
6e9e9f1187 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 15:02:02 -08:00
Stephane Bourque
0fbcfa5b45 Merge pull request #227 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 14:51:46 -08:00
stephb9959
e565aeaf39 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 14:51:07 -08:00
Stephane Bourque
ec1e7b89f0 Merge pull request #226 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-17 14:43:50 -08:00
stephb9959
83998ec70e https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 14:43:17 -08:00
stephb9959
6b9444b50d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 14:39:33 -08:00
Stephane Bourque
7ad2bac419 Merge pull request #225 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 14:28:22 -08:00
stephb9959
090331391d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 14:27:14 -08:00
Stephane Bourque
f7a36f792a Merge pull request #224 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 14:18:36 -08:00
stephb9959
c46fc17078 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 14:17:58 -08:00
Stephane Bourque
71067480bc Merge pull request #223 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 14:06:30 -08:00
stephb9959
add837b45b https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 14:05:37 -08:00
Stephane Bourque
f3c8443af9 Merge pull request #222 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 13:55:56 -08:00
stephb9959
99bd897465 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 13:55:17 -08:00
Stephane Bourque
bb931ae0a3 Merge pull request #221 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 13:29:10 -08:00
stephb9959
6ea88b6975 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 13:28:43 -08:00
Stephane Bourque
c02dc94ff7 Merge pull request #220 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 13:21:33 -08:00
stephb9959
238ef71867 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 13:20:58 -08:00
Stephane Bourque
f7d1ed5d36 Merge pull request #219 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 13:14:58 -08:00
stephb9959
3532fd23d0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 13:14:25 -08:00
Stephane Bourque
e487c731ec Merge pull request #218 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 12:57:27 -08:00
stephb9959
e75e6ea3c7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 12:56:50 -08:00
Stephane Bourque
0f5022b59d Merge pull request #217 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 12:51:06 -08:00
stephb9959
b8bcff04bd https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 12:50:30 -08:00
Stephane Bourque
b2d7bb8b80 Merge pull request #216 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 12:43:34 -08:00
stephb9959
4f41a6f7b0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 12:42:51 -08:00
Stephane Bourque
5c8abd8bcb Merge pull request #215 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 12:36:37 -08:00
stephb9959
262c42f6a0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 12:35:56 -08:00
Stephane Bourque
83074c779e Merge pull request #214 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 12:06:26 -08:00
stephb9959
42e2a1d0a0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 12:05:41 -08:00
Stephane Bourque
75423754b0 Merge pull request #213 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 12:02:48 -08:00
stephb9959
479fd3f040 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 12:02:03 -08:00
Stephane Bourque
ba4e69ffce Merge pull request #212 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-17 11:52:56 -08:00
stephb9959
f5ecc34128 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-17 11:51:59 -08:00
Stephane Bourque
3f3cc377c9 Merge pull request #211 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 23:36:59 -08:00
stephb9959
4107b342c9 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 23:36:25 -08:00
Stephane Bourque
ffdf4fc703 Merge pull request #210 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 23:19:33 -08:00
stephb9959
2dd8ddc26c https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 23:19:00 -08:00
Stephane Bourque
6f9b1f5b2f Merge pull request #209 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 23:08:08 -08:00
stephb9959
dc43d1bbd5 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 23:07:29 -08:00
Stephane Bourque
67f2244d01 Merge pull request #208 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 22:49:08 -08:00
stephb9959
4610ee6953 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 22:48:39 -08:00
Stephane Bourque
0af7d2c5e9 Merge pull request #207 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 22:40:53 -08:00
stephb9959
465447e459 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 22:40:05 -08:00
Stephane Bourque
d03d03444e Merge pull request #206 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 17:28:10 -08:00
stephb9959
57589aa3a8 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 17:25:30 -08:00
Stephane Bourque
75d0e46d0b Merge pull request #205 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 17:17:40 -08:00
stephb9959
3117a3a1e9 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 17:17:04 -08:00
Stephane Bourque
12ed612312 Merge pull request #204 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 17:08:47 -08:00
stephb9959
9d319c4085 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 17:08:12 -08:00
Stephane Bourque
06edcdde64 Merge pull request #203 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 16:53:34 -08:00
stephb9959
c30a03e941 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 16:52:06 -08:00
Stephane Bourque
cdb4639626 Merge pull request #202 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 16:42:47 -08:00
stephb9959
6a8fca9c82 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 16:41:49 -08:00
Stephane Bourque
43def4712f Merge pull request #201 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 16:30:16 -08:00
stephb9959
14e77a220f https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 16:29:40 -08:00
Stephane Bourque
2d9e10024f Merge pull request #200 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 15:17:27 -08:00
stephb9959
a87c1b542f https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 15:16:33 -08:00
Stephane Bourque
cda4b5a5e1 Merge pull request #199 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 15:08:49 -08:00
stephb9959
f799acb0fe https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 14:38:14 -08:00
Stephane Bourque
3ac0e9dc42 Merge pull request #198 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 11:38:25 -08:00
stephb9959
90f9b5c367 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 11:36:34 -08:00
Stephane Bourque
eb24b72e36 Merge pull request #197 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 11:02:52 -08:00
stephb9959
ffad0b31f5 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 11:01:53 -08:00
Stephane Bourque
10f06d04d2 Merge pull request #196 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 10:06:16 -08:00
stephb9959
6e5cd4b30c https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 10:03:11 -08:00
Stephane Bourque
9fbc0c3ebc Merge pull request #195 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 09:52:55 -08:00
stephb9959
ea068ac4c7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 09:52:10 -08:00
Stephane Bourque
6431c1aa1d Merge pull request #194 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 09:44:39 -08:00
stephb9959
67eac5522e https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 09:43:27 -08:00
Stephane Bourque
21353d8f51 Merge pull request #193 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 09:35:37 -08:00
stephb9959
94f09770a7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 09:34:57 -08:00
Stephane Bourque
1bbdba9926 Merge pull request #192 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 09:26:45 -08:00
stephb9959
9ff6579afa https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 09:25:02 -08:00
Stephane Bourque
c064a1b0a4 Merge pull request #191 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 08:48:11 -08:00
stephb9959
83f94c8b13 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 08:46:41 -08:00
Stephane Bourque
096027772a Merge pull request #190 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 08:30:25 -08:00
stephb9959
811dda11e3 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 08:29:30 -08:00
Stephane Bourque
e946d99081 Merge pull request #189 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 08:21:47 -08:00
stephb9959
f42c96d3c0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 08:20:51 -08:00
Stephane Bourque
cef4242d9a Merge pull request #188 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 08:09:14 -08:00
stephb9959
743a90f622 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 08:08:25 -08:00
Stephane Bourque
166d8a54cf Merge pull request #187 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-16 07:59:34 -08:00
stephb9959
725f85038a https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-16 07:58:39 -08:00
Stephane Bourque
fa76dc1bfc Merge pull request #186 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-15 23:21:23 -08:00
stephb9959
207a8664e0 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 23:20:48 -08:00
Stephane Bourque
d5030c109d Merge pull request #185 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-15 23:10:04 -08:00
stephb9959
6cd6c47035 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 23:09:22 -08:00
Stephane Bourque
e55d279919 Merge pull request #184 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-15 22:50:06 -08:00
stephb9959
c54c8088a2 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 22:49:12 -08:00
Stephane Bourque
f5965f53a0 Merge pull request #183 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-15 22:39:17 -08:00
stephb9959
7cd7ba9ee8 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 22:38:21 -08:00
Stephane Bourque
06d0608bb4 Merge pull request #182 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-15 22:18:47 -08:00
stephb9959
eb2f21b89b https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 22:16:55 -08:00
Stephane Bourque
7de1d089a6 Merge pull request #181 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-15 09:52:32 -08:00
stephb9959
4ac1576933 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 09:51:51 -08:00
stephb9959
63f29684cc https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-15 08:58:07 -08:00
Stephane Bourque
82353e3df6 Merge pull request #180 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 23:24:09 -08:00
stephb9959
73c6f7a383 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 23:23:23 -08:00
Stephane Bourque
295f2d21b1 Merge pull request #179 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 23:09:59 -08:00
stephb9959
b119c9f3dc https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 23:09:01 -08:00
Stephane Bourque
a27cc80bb6 Merge pull request #178 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 22:58:38 -08:00
stephb9959
3e0c5c0e70 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 22:57:56 -08:00
Stephane Bourque
aa1db914f7 Merge pull request #177 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 22:52:48 -08:00
stephb9959
98d1713883 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 22:51:58 -08:00
Stephane Bourque
14fd7e9441 Merge pull request #176 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 21:52:50 -08:00
stephb9959
96deee627f https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 21:51:34 -08:00
Stephane Bourque
e3fb4643fe Merge pull request #175 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 19:17:02 -08:00
stephb9959
0bd8e051e2 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 19:16:16 -08:00
Stephane Bourque
6ede170fc0 Merge pull request #174 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-14 18:31:20 -08:00
stephb9959
52fc195ee3 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 18:30:38 -08:00
stephb9959
df8f901a22 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 18:16:10 -08:00
Stephane Bourque
9d67e8f61f Merge pull request #173 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 18:08:03 -08:00
stephb9959
d03360da3d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 18:07:04 -08:00
Stephane Bourque
89cdd369a6 Merge pull request #172 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 17:52:59 -08:00
stephb9959
f5c6ff408c https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 17:52:02 -08:00
Stephane Bourque
22baae6d92 Merge pull request #171 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 15:39:33 -08:00
stephb9959
48205c387f https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 15:38:33 -08:00
Stephane Bourque
bdbe827928 Merge pull request #170 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 15:30:01 -08:00
stephb9959
3fe4cd1b94 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 15:29:22 -08:00
Stephane Bourque
3b9e39cc0d Merge pull request #169 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 15:19:54 -08:00
stephb9959
c1ae42fc65 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 15:18:54 -08:00
Stephane Bourque
f57ed1aaee Merge pull request #168 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 13:39:04 -08:00
stephb9959
5c70c28a5d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:38:19 -08:00
Stephane Bourque
65591f7fa9 Merge pull request #167 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 13:30:44 -08:00
stephb9959
ebfdd92d20 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:30:04 -08:00
Stephane Bourque
b219a167b5 Merge pull request #166 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 13:23:53 -08:00
stephb9959
5aa25cf324 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:23:09 -08:00
Stephane Bourque
86709bcca4 Merge pull request #165 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 13:18:32 -08:00
stephb9959
c2c06de6d2 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:17:25 -08:00
Stephane Bourque
b2968d964e Merge pull request #164 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-14 13:12:23 -08:00
stephb9959
b8ca1dfe0b https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:11:48 -08:00
stephb9959
154066f42c https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:11:09 -08:00
Stephane Bourque
692bb41a71 Merge pull request #163 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 13:03:15 -08:00
stephb9959
8fa982c06d https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 13:02:30 -08:00
Stephane Bourque
43bf06adc4 Merge pull request #162 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 12:52:18 -08:00
stephb9959
ff33578416 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 12:51:20 -08:00
Stephane Bourque
b812a2babb Merge pull request #161 from Telecominfraproject/wifi-13280
Wifi 13280
2024-01-14 12:41:22 -08:00
stephb9959
63dee4ba81 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 12:40:27 -08:00
stephb9959
4abc5663e7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 12:40:04 -08:00
Stephane Bourque
b8661d89da Merge pull request #160 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 12:25:20 -08:00
stephb9959
729a62675f https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 12:24:32 -08:00
Stephane Bourque
0b38f7b27e Merge pull request #159 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 12:09:13 -08:00
stephb9959
5a00216428 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 12:07:36 -08:00
Stephane Bourque
981cc20a1c Merge pull request #158 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 10:45:56 -08:00
stephb9959
e74f77f1dc https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 10:44:58 -08:00
Stephane Bourque
7fdb05b796 Merge pull request #157 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 10:33:55 -08:00
stephb9959
f1bc57bb19 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 10:33:05 -08:00
Stephane Bourque
9d78a02f9e Merge pull request #156 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 10:24:46 -08:00
stephb9959
624eb1eec9 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 10:23:41 -08:00
Stephane Bourque
992af6e97d Merge pull request #155 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 09:54:47 -08:00
stephb9959
4c3fa53073 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 09:53:46 -08:00
Stephane Bourque
47e7650846 Merge pull request #154 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 09:35:25 -08:00
stephb9959
2e2fa7fa49 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 09:34:19 -08:00
Stephane Bourque
bd83ccb0ce Merge pull request #153 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 09:24:06 -08:00
stephb9959
383158eaa7 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 09:22:34 -08:00
Stephane Bourque
bd0286036a Merge pull request #152 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 09:15:15 -08:00
stephb9959
0884b19584 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 09:14:07 -08:00
Stephane Bourque
e4a20e26a3 Merge pull request #151 from Telecominfraproject/wifi-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-14 09:02:58 -08:00
stephb9959
92eed9caa2 https://telecominfraproject.atlassian.net/browse/WIFI-13280
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-14 09:02:00 -08:00
Stephane Bourque
105e93973a Merge pull request #150 from Telecominfraproject/stephb9959-patch-10
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 23:21:11 -08:00
Stephane Bourque
ecbb2b5889 Update values.openwifi-qa.single-external-db.yaml 2024-01-13 23:21:01 -08:00
Stephane Bourque
6978d74fb8 Merge pull request #149 from Telecominfraproject/stephb9959-patch-10
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 23:02:05 -08:00
Stephane Bourque
c755d29aea Update values.openwifi-qa.single-external-db.yaml 2024-01-13 23:01:56 -08:00
Stephane Bourque
c6bdcad56d Merge pull request #148 from Telecominfraproject/stephb9959-patch-9
Update values.yaml
2024-01-13 23:00:16 -08:00
Stephane Bourque
b741cc6344 Update values.yaml 2024-01-13 23:00:05 -08:00
Stephane Bourque
3c220a43a8 Merge pull request #147 from Telecominfraproject/stephb9959-patch-9
Update values.yaml
2024-01-13 22:09:04 -08:00
Stephane Bourque
187320675c Update values.yaml 2024-01-13 22:08:52 -08:00
Stephane Bourque
bc2af4f41b Merge pull request #146 from Telecominfraproject/stephb9959-patch-8
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 22:07:12 -08:00
Stephane Bourque
fb7f8f5b4f Update values.openwifi-qa.single-external-db.yaml 2024-01-13 22:06:56 -08:00
Stephane Bourque
0c1b319ef6 Merge pull request #145 from Telecominfraproject/stephb9959-patch-7
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 21:55:21 -08:00
Stephane Bourque
a234fdf605 Update values.openwifi-qa.single-external-db.yaml 2024-01-13 21:55:12 -08:00
Stephane Bourque
07feed776e Merge pull request #144 from Telecominfraproject/stephb9959-patch-6
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 21:25:05 -08:00
Stephane Bourque
2bd2173e11 Update values.openwifi-qa.single-external-db.yaml 2024-01-13 21:24:47 -08:00
Stephane Bourque
6838e5a0f4 Merge pull request #143 from Telecominfraproject/stephb9959-patch-5
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 21:05:04 -08:00
Stephane Bourque
1c120e987a Update values.openwifi-qa.single-external-db.yaml 2024-01-13 21:04:53 -08:00
Stephane Bourque
c1da868627 Merge pull request #142 from Telecominfraproject/stephb9959-patch-5
Update values.openwifi-qa.single-external-db.yaml
2024-01-13 20:51:48 -08:00
Stephane Bourque
17ae0c8257 Update values.openwifi-qa.single-external-db.yaml 2024-01-13 20:51:39 -08:00
Stephane Bourque
bcd6d945e7 Merge pull request #141 from Telecominfraproject/stephb9959-patch-5
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 21:05:32 -08:00
Stephane Bourque
72ade5e9ab Update values.openwifi-qa.single-external-db.yaml 2024-01-12 21:05:18 -08:00
Stephane Bourque
7b3747b199 Merge pull request #140 from Telecominfraproject/stephb9959-patch-5
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 15:38:27 -08:00
Stephane Bourque
3259c1c6a8 Update values.openwifi-qa.single-external-db.yaml 2024-01-12 15:38:11 -08:00
Stephane Bourque
b574e5cc2d Merge pull request #139 from Telecominfraproject/stephb9959-patch-5
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 15:02:13 -08:00
Stephane Bourque
62b5d3bf2f Update values.openwifi-qa.single-external-db.yaml 2024-01-12 15:02:02 -08:00
Stephane Bourque
2c0ea54a87 Merge pull request #138 from Telecominfraproject/stephb9959-patch-4
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 14:50:24 -08:00
Stephane Bourque
610a0e42c7 Update values.openwifi-qa.single-external-db.yaml 2024-01-12 14:50:10 -08:00
Stephane Bourque
b0fc8de462 Merge pull request #137 from Telecominfraproject/stephb9959-patch-4
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 13:44:25 -08:00
Stephane Bourque
0aa876dda7 Update values.openwifi-qa.single-external-db.yaml 2024-01-12 13:44:14 -08:00
Stephane Bourque
d032a1414f Merge pull request #136 from Telecominfraproject/stephb9959-patch-4
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 13:31:34 -08:00
Stephane Bourque
11262036ae Update values.openwifi-qa.single-external-db.yaml 2024-01-12 13:31:22 -08:00
Stephane Bourque
83bdaaeae8 Merge pull request #135 from Telecominfraproject/stephb9959-patch-4
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 12:57:32 -08:00
Stephane Bourque
ea30f3ec0a Update values.openwifi-qa.single-external-db.yaml 2024-01-12 12:57:23 -08:00
Stephane Bourque
97bead0e3c Merge pull request #134 from Telecominfraproject/stephb9959-patch-3
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 12:44:24 -08:00
Stephane Bourque
3ada49204d Update values.openwifi-qa.single-external-db.yaml 2024-01-12 12:44:13 -08:00
Stephane Bourque
5943c870b5 Merge pull request #133 from Telecominfraproject/stephb9959-patch-2
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 11:50:26 -08:00
Stephane Bourque
65bedb38fe Update values.openwifi-qa.single-external-db.yaml 2024-01-12 11:50:13 -08:00
Stephane Bourque
2c150d7a43 Merge pull request #132 from Telecominfraproject/stephb9959-patch-1
Update values.openwifi-qa.single-external-db.yaml
2024-01-12 10:22:29 -08:00
Stephane Bourque
ddb7300dc2 Update values.openwifi-qa.single-external-db.yaml 2024-01-12 10:22:16 -08:00
Stephane Bourque
30c7934393 Merge pull request #131 from Telecominfraproject/WIFI-13249
https://telecominfraproject.atlassian.net/browse/WIFI-13249
2024-01-11 21:20:28 -08:00
Stephane Bourque
39af697fc4 https://telecominfraproject.atlassian.net/browse/WIFI-13249
https://telecominfraproject.atlassian.net/browse/WIFI-13249

Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-11 21:19:05 -08:00
jaspreetsachdev
e2ee1ad247 Merge pull request #130 from Telecominfraproject/WIFI-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280
2024-01-11 15:54:06 -05:00
Stephane Bourque
3b8f8fb7f2 https://telecominfraproject.atlassian.net/browse/WIFI-13280
https://telecominfraproject.atlassian.net/browse/WIFI-13280

Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-11 11:29:05 -08:00
jaspreetsachdev
9faf523b7d Merge pull request #129 from Telecominfraproject/WIFI-13246-4
https://telecominfraproject.atlassian.net/browse/WIFI-13246
2024-01-11 12:24:26 -05:00
Stephane Bourque
3105510ee5 https://telecominfraproject.atlassian.net/browse/WIFI-13246
Updating shared_buffers

Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-11 08:37:39 -08:00
jaspreetsachdev
4126bc94c1 Merge pull request #128 from Telecominfraproject/WIFI-13246-3
https://telecominfraproject.atlassian.net/browse/WIFI-13246
2024-01-11 07:06:19 -05:00
Stephane Bourque
840d759024 https://telecominfraproject.atlassian.net/browse/WIFI-13246
Updating pgpool values

Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-10 22:57:11 -08:00
jaspreetsachdev
7e779f7a88 Merge pull request #127 from Telecominfraproject/WIFI-13246-2
https://telecominfraproject.atlassian.net/browse/WIFI-13246
2024-01-10 15:10:47 -05:00
Stephane Bourque
1e9edcd7f6 https://telecominfraproject.atlassian.net/browse/WIFI-13246
Removing pgpool

Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-10 11:01:14 -08:00
jaspreetsachdev
a5b5223744 Merge pull request #126 from Telecominfraproject/WIFI-13246-1
https://telecominfraproject.atlassian.net/browse/WIFI-13246
2024-01-10 07:13:24 -05:00
Stephane Bourque
97c986ef1f https://telecominfraproject.atlassian.net/browse/WIFI-13246
From resouces. Shared_buffer should be 25% os system memory
2024-01-09 22:28:45 -08:00
jaspreetsachdev
1459950bea Merge pull request #125 from Telecominfraproject/WIFI-13246
https://telecominfraproject.atlassian.net/browse/WIFI-13246
2024-01-09 11:30:23 -05:00
Stephane Bourque
31b65a890f https://telecominfraproject.atlassian.net/browse/WIFI-13246
Changing shared_buffers to match new needs for more connections in SQL dues to GW performance requests.

Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
2024-01-09 08:20:06 -08:00
Stephane Bourque
acaa929719 https://telecominfraproject.atlassian.net/browse/WIFI-13172
Adding new postgresql environment settings
2023-12-12 21:36:38 -08:00
Carsten Schafer
f2bb115710 Fix cert ARNs, add external OWLS config
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2023-11-10 10:28:01 -05:00
Carsten Schafer
7196a480f3 Set fms's maxage a different way
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2023-10-27 10:39:19 -04:00
Stephane Bourque
e6bff9b9a5 Merge pull request #124 from Telecominfraproject/wifi-12692
https://telecominfraproject.atlassian.net/browse/WIFI-12692
2023-10-26 13:17:31 -07:00
Stephane Bourque
e817bedfb8 https://telecominfraproject.atlassian.net/browse/WIFI-12692
Added rrm topic necessary for RRM SDK
2023-10-26 12:06:53 -07:00
Carsten Schafer
956c0a62c6 Merge pull request #123 from Telecominfraproject/region_and_k8s_change
[WIFI-13030] Region and k8s change
2023-10-17 08:37:07 -04:00
Carsten Schafer
d4ab88876a Merge remote-tracking branch 'origin/main' into region_and_k8s_change 2023-10-16 16:50:53 -04:00
Carsten Schafer
b7c14bed7e Update ci.yml 2023-10-16 16:40:43 -04:00
Carsten Schafer
09a36a2a93 Make sure to export DOMAIN variable 2023-10-16 15:48:22 -04:00
Carsten Schafer
e3699b2856 Patch up LB, and remove ugly helm command
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2023-10-11 09:47:16 -04:00
Carsten Schafer
87f9890ad5 Test new region and k8s version
Signed-off-by: Carsten Schafer <Carsten.Schafer@kinarasystems.com>
2023-10-09 12:14:29 -04:00
jaspreetsachdev
75f2ae0383 Merge pull request #122 from Telecominfraproject/jaspreetsachdev-patch-1
Update values.openwifi-qa.yaml
2023-06-12 11:36:09 -04:00
jaspreetsachdev
1987b8560f Update values.openwifi-qa.yaml 2023-06-12 11:35:55 -04:00
jaspreetsachdev
81c7a4cd02 point rrm to owrrm 2023-06-12 11:34:49 -04:00
jaspreetsachdev
02a994f196 Update deploy.sh 2023-06-09 22:58:29 -04:00
jaspreetsachdev
ef4b33ddd7 Update values.openwifi-qa.yaml 2023-06-09 20:16:48 -04:00
jaspreetsachdev
56defe7333 Update values.openwifi-qa.yaml 2023-06-09 18:29:44 -04:00
jaspreetsachdev
098766b32c Merge pull request #121 from Telecominfraproject/jaspreetsachdev-patch-1
Changed FMS max age default to 360
2023-06-09 17:22:15 -04:00
jaspreetsachdev
2f07656a7e Changed FMS max age default to 360 2023-06-09 17:21:27 -04:00
jaspreetsachdev
30169c3854 Update values.openwifi-qa.yaml 2023-03-17 23:07:04 -04:00
jaspreetsachdev
a08607d295 Merge pull request #120 from Telecominfraproject/rtty-change-lb
Experimentation of rtty port change
2023-03-17 22:47:39 -04:00
Jaspreet Sachdev
81c8f1c9e3 Experimentation of rtty port change 2023-03-17 22:41:53 -04:00
Dmitry Dunaev
f5f0f99873 [WIFI-10926] Del: fixed OWLS tag
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-22 16:26:36 +01:00
Dmitry Dunaev
4b762cc281 Merge pull request #119 from Telecominfraproject/feature/wifi-12021--owls-node-size
[WIFI-12021] Chg: owls nodeSelector for new type
2022-12-21 15:34:28 +03:00
Dmitry Dunaev
e35142d608 [WIFI-12021] Chg: owls nodeSelector for new type
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-21 13:05:46 +01:00
Dmitry Dunaev
9a6333c738 Merge pull request #117 from Telecominfraproject/feature/wifi-11905--add-certificates-allowmismatch
[WIFI-11905] Add: support for certificates mismatch
2022-12-13 20:09:29 +03:00
Dmitry Dunaev
cb7ccb4a82 [WIFI-11905] Add: allow cert mismatch for helm OWLS
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-13 17:10:37 +01:00
Dmitry Dunaev
fa8500d32c [WIFI-11905] Chg: Docker-compose CERTIFICATES_ALLOWMISMATCH to false by def
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-13 17:06:37 +01:00
Dmitry Dunaev
2e6fbf530b [WIFI-10926] Chg: increase OWLS CPU limit to 6
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-13 12:42:00 +01:00
Dmitry Dunaev
65dcdf1870 Merge pull request #118 from Telecominfraproject/feature/wifi-11964--disable-rrm-db
[WIFI-11964] Chg: disable RRM DB usage in TIP envs
2022-12-13 14:18:32 +03:00
Dmitry Dunaev
94676c846e [WIFI-11964] Chg: disable RRM DB usage in TIP envs
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-13 11:49:07 +01:00
Dmitry Dunaev
141b0202f8 [WIFI-11905] Add: support for certificates mismatch
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-12-12 13:59:36 +01:00
Johann Hoffmann
a5e971a128 Update checkout and Docker login action version and replace set-output commands
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-11-25 12:03:08 +01:00
Dmitry Dunaev
8680dd9df4 Merge pull request #113 from Telecominfraproject/feature/wifi-11464--uis-sec-path
[WIFI-11464] Fix: UI SEC env variables
2022-11-03 11:30:52 +03:00
Dmitry Dunaev
5bd8af031d [WIFI-11464] Fix: UI SEC env variables
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-11-03 10:48:00 +03:00
Johann Hoffmann
d3e56563f1 Set fixed PostgreSQL image version tag
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-10-26 16:33:22 +02:00
Johann Hoffmann
f93bffea5e Increase OWGW memory limit on QA instance to 2Gi
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-10-21 14:22:48 +02:00
Johann Hoffmann
b222d06b38 Increase OWGW memory limit on QA instance
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-10-21 14:21:46 +02:00
Dmitry Dunaev
0890102459 Merge pull request #111 from Telecominfraproject/feature/wifi-11236--helm-pg-conns
[WIFI-11236] Chg: helm - increase pg-ha max conn to 1000 from default 100
2022-10-19 16:03:58 +03:00
Dmitry Dunaev
9ddad55259 [WIFI-11236] Chg: helm - increase pg-ha max conn to 1000 from default 100
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-19 16:03:28 +03:00
Johann Hoffmann
7c58b69c29 Create databases with microservice role as owner
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-10-19 11:33:00 +02:00
Johann Hoffmann
df3a6cccd5 Fix typo in postgresql.env
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-10-14 14:57:46 +02:00
Dmitry Dunaev
7975741d2d Chg: comment out mysql in default docker-compose
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-13 12:02:08 +03:00
Dmitry Dunaev
74394b4e7d Merge pull request #109 from Telecominfraproject/feature/wifi-11176--helm-disable-kafka
[WIFI-11176] Add: ability to disable kafka in Helm
2022-10-11 14:26:16 +03:00
Dmitry Dunaev
86eba8a09d [WIFI-11176] Add: ability to disable kafka in Helm
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-11 14:25:52 +03:00
Dmitry Dunaev
5adc05f9c2 Merge pull request #108 from Telecominfraproject/feature/wifi-10910--helm-rrm-internal-endpoint
[WIFI-10910] Chg: delete RRM helm chart ENV configuration
2022-10-11 12:02:03 +03:00
Dmitry Dunaev
9543bbebc6 [WIFI-10910] Chg: delete RRM helm chart ENV configuration
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-11 12:01:38 +03:00
Dmitry Dunaev
bc64d38d35 Revert "[WIFI-10926] Chg: OWLS CPU limits"
This reverts commit aa5874040f.
2022-10-05 19:05:14 +03:00
Dmitry Dunaev
aa5874040f [WIFI-10926] Chg: OWLS CPU limits
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-05 15:08:19 +03:00
Johann Hoffmann
cb691866f9 Pin zookeeper Docker image version in other Compose deployments as well
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-10-05 13:48:25 +02:00
Dmitry Dunaev
a442c8cf13 [WIFI-10926] Dbg: set owls to fixed commit
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-04 19:32:36 +03:00
Dmitry Dunaev
f395b2eb9f [WIFI-10581] Fix: Helm CA cert placement for OWLS
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-03 16:22:45 +03:00
Dmitry Dunaev
db68fcf3f7 [WIFI-10581] Fix: Helm CA cert placement
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-10-03 12:33:07 +03:00
Dmitry Dunaev
dd56005319 [WIFI-10582] Add: migrate OWGW certs from OWGW repo
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-29 19:37:28 +03:00
Dmitry Dunaev
65382a22c6 Merge pull request #106 from Telecominfraproject/feature/wifi-10932--docker-support-http
[WIFI-10932] Add: restapi disable property in docker-compose
2022-09-28 18:57:32 +03:00
Dmitry Dunaev
7e36814b1c [WIFI-10932] Add: restapi disable property in docker-compose
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-28 17:30:13 +03:00
Dmitry Dunaev
8292858941 Merge pull request #101 from Telecominfraproject/feature/wifi-10582--helm-default-certs
[WIFI-10582] Add: information on helm certificates setup
2022-09-28 17:06:33 +03:00
Dmitry Dunaev
f72be2d557 [WIFI-10582] Add: information on helm certificates setup
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-28 16:47:30 +03:00
Dmitry Dunaev
5bb836a213 [WIFI-10881] Chg: set logging to debug for OWGW
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-22 11:45:05 +03:00
Dmitry Dunaev
77bda61896 [WIFI-10881] Chg: set logging to trace for OWGW
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-20 18:30:34 +03:00
Dmitry Dunaev
51060660de Merge pull request #105 from Telecominfraproject/feature/wifi-10595--deploy-add-radius-proxy
[WIFI-10595] Add: radius proxy support for docker-compose
2022-09-20 15:44:47 +03:00
Dmitry Dunaev
d4be58a9da [WIFI-10595] Add: radius proxy support for docker-compose
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-16 11:50:30 +03:00
Dmitry Dunaev
7ea6b96246 Merge pull request #102 from Telecominfraproject/feature/wifi-10842--docker-compose--iptocountry
[WIFI-10842] Add: docker-compose support for iptocountry
2022-09-15 14:09:38 +03:00
Dmitry Dunaev
e2132b6fba [WIFI-10842] Add: docker-compose support for iptocountry
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-15 14:06:07 +03:00
Dmitry Dunaev
a0a162291e Chg: use zookeeper 3.8 for the docker-compose
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-12 19:50:18 +03:00
Dmitry Dunaev
8fe9801cab Merge pull request #100 from Telecominfraproject/feature/wifi-10795--owrrm-docker-compose-lb
[WIFI-10795] Add: note regarding OWRRM support only in LB Docker-comp…
2022-09-12 12:18:00 +03:00
Dmitry Dunaev
ae37c8e49a [WIFI-10795] Add: note regarding OWRRM support only in LB Docker-compose installation
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-12 12:17:38 +03:00
Dmitry Dunaev
dd4d338e30 Merge pull request #99 from Telecominfraproject/feature/wifi-10795--owrrm-docker-compose-lb
[WIFI-10795] Chg: make OWRRM usable only in LB setups
2022-09-12 12:05:17 +03:00
Dmitry Dunaev
14185ffe1a [WIFI-10795] Chg: make OWRRM usable only in LB setups
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-12 12:01:11 +03:00
Dmitry Dunaev
da3322aeab Merge pull request #98 from Telecominfraproject/feature/wifi-10069--single-postgresql
[WIFI-10069] Add: PostgreSQL HA as optional Helm dep
2022-09-02 15:08:59 +03:00
Dmitry Dunaev
bbf388c8c9 [WIFI-10069] Add: PostgreSQL HA as optional Helm dep
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-09-01 19:40:06 +03:00
Johann Hoffmann
8dba7ba26a Remove quotation marks from env variable
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-08-22 18:49:56 +02:00
Johann Hoffmann
63127d41cc [WIFI-7832] Create AWS CloudFormation template to further simplify cloud SDK deployment (#96)
* Add CloudFormation template and README.md

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix paragraphs

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Update README.md

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Update conditions

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-08-22 14:54:54 +02:00
Johann Hoffmann
24fbc8e237 [WIFI-10077] Kafka topics should be created during initialization (#97)
* Add init-kafka container for topic creation on startup

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add topic variable to kafka.env to avoid duplication

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-08-17 17:00:51 +02:00
Dmitry Dunaev
8f53f27896 Add: OWRRM retention to 1 to reduce DB usage
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-08-15 18:58:43 +03:00
Dmitry Dunaev
de42e9ee53 Merge pull request #95 from Telecominfraproject/feature/wifi-9928--pgsql-everywhere-v2
[WIFI-9928] Chg: enable PostgreSQL instances for all microservices
2022-08-03 16:25:13 +03:00
Dmitry Dunaev
724a94319a [WIFI-9928] Chg: enable PostgreSQL instances for all microservices
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-08-03 15:27:52 +03:00
Dmitry Dunaev
72e0ac51e6 Merge pull request #93 from Telecominfraproject/fix/wifi-10239--pgsql-svc-selectors
[WIFI-10239] Fix: add nameOverride for pgsql so that services would point correctly
2022-08-03 15:25:01 +03:00
Dmitry Dunaev
b341e81078 [WIFI-10239] Fix: add nameOverride for pgsql so that services would point correctly
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-08-03 14:24:37 +03:00
Dmitry Dunaev
e30e1a9b38 Merge pull request #92 from Telecominfraproject/fix/wifi-10059--ssl-owrrm
[WIFI-10059] Fix: OWRRM endpoint and TLS termination
2022-08-01 17:41:48 +03:00
Dmitry Dunaev
b72ab82319 [WIFI-10059] Fix: OWRRM endpoint and TLS termination
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-08-01 16:49:50 +03:00
Dmitry Dunaev
c09bbed59e [WIFI-10059] Fix: added missing volume for RRM in values
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-28 17:12:49 +03:00
Dmitry Dunaev
94ddb651fe Merge pull request #89 from Telecominfraproject/feature/wifi-10059--helm-enable-owrrm
[WIFI-10059] Add: owrrm in helm
2022-07-28 12:58:54 +03:00
Johann Hoffmann
27d1ae99c3 [WIFI-10387] Adapt rrm service configuration for successful integration into Docker Compose deployment (#91)
* Add owrrm_data volume and reduce owrrm.env to required variables

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* [WIFI-10387] Chg: adapt helm variables and deploy script for OWRRM requirements

Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>

* Update README.md

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

Co-authored-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-28 11:20:34 +02:00
Dmitry Dunaev
8de6016708 [WIFI-10059] Add: owrrm in helm
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-26 12:40:07 +03:00
Venkata Rao Chimata
fcd20f1323 Merge pull request #88 from Telecominfraproject/WIFI-10271-rtty-does-not-work
Issues with rrty(s)
2022-07-26 14:39:32 +05:30
Venkat Chimata
c8b14dd5ef Issues with rrty(s)
When we click on "Connect" in the dashboard, the rtty server (ucentral gw) is sending the connect request to the rtty client (AP) successfully. AP also is responding and connecting to the gw. But there are a couple of issues.

Issue # 1
Immediately after clicking on Connect, the browser takes us to a rtty server (again ucentral gw only.. but on differnt port) url for example, https://owgw.shastacloud.com:5913/connect/fca974d05e9f6b437fc091be914ef8d5, but that page says "Bad Gateway" error. So the server is missing something. Hence we cannot see the AP's connect status on the dashboard as the above page is throwing "Bad gateway" error.

Issue # 2
The rtty daemon on the client (AP) keeps timing out and keeps reconnecting.

Couple of changes to fix these.

The first change is to make the rttys dashboard url https. It will resolve the SSL exception / Bad gw error ie issue #1 in the bug description.

The second change is to set the communication between rtty on AP and rttys on GW as passthrough. The GW pushes non-tls config to the AP  hence AP tries to connect with non-tls, but the rtty server is configured with TLS. We need to make it passthrough until the rttys server supports TLS.

Signed-off-by: Venkat Chimata <venkatch@gmail.com>
2022-07-26 11:07:52 +02:00
Johann Hoffmann
80490e280c Fix websocket key path in Docker Compose deploy script
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-07-25 18:44:48 +02:00
Dmitry Dunaev
0b42932dc1 [WIFI-9772] Add: owanalytics and owsub to clustersysteminfo
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-21 16:24:13 +03:00
Dmitry Dunaev
5e828def6a Merge pull request #87 from Telecominfraproject/feature/wifi-9772--clusterinfo-building
[WIFI-9772] Add: use fixed clustersysteminfo image tag
2022-07-21 14:09:14 +03:00
Dmitry Dunaev
5962275d7f [WIFI-9772] Fix: during repo creation we need to use release versions
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-21 14:06:37 +03:00
Dmitry Dunaev
d784928a02 [WIFI-9772] Add: use fixed clustersysteminfo image tag
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-21 10:42:51 +03:00
Dmitry Dunaev
9f6c8974ed Merge pull request #86 from Telecominfraproject/feature/wifi-7844--adapt-release-script
[WIFI-7844] Chg: adapt git release tool to support minor versions
2022-07-20 11:42:41 +03:00
Dmitry Dunaev
cfe4731146 [WIFI-7844] Chg: adapt git release tool to support minor versions
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-19 17:07:38 +03:00
Dmitry Dunaev
a7b7424520 Merge pull request #84 from Telecominfraproject/fix/wifi-9155--checkout-rrm
[WIFI-9155] Chg: checkout OWRRM for now
2022-07-07 21:59:37 +03:00
Dmitry Dunaev
6a13db37f7 [WIFI-9155] Chg: checkout OWRRM for now
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-07 21:59:19 +03:00
Dmitry Dunaev
3806ff96ab Merge pull request #76 from Telecominfraproject/feature/wifi-9155--helm-owrrm
[WIFI-9155] Add: helm chart
2022-07-07 10:52:24 +03:00
Dmitry Dunaev
11952d2a7b Merge branch 'main' into feature/wifi-9155--helm-owrrm 2022-07-07 10:50:46 +03:00
Dmitry Dunaev
846a2d46d4 Merge pull request #82 from Telecominfraproject/feature/wifi-9928--pgsql-everywhere
[WIFI-9928] Chg: use external db for all microservices
2022-07-05 11:11:09 +03:00
Dmitry Dunaev
d2cc322604 [WIFI-9928] Chg: use pgsql only for owanalytics and owgw
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-05 11:10:29 +03:00
Dmitry Dunaev
bc543f941d [WIFI-9928] Add: new possible pgsql nodes should be placed on test nodes if it is required
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-01 13:16:13 +03:00
Dmitry Dunaev
cf1547b6c2 [WIFI-9928] Chg: use external db for all microservices
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-07-01 13:00:07 +03:00
Dmitry Dunaev
d2dcf8385b [WIFI-9952] Chg: owgw CPU requests to same as limits, failureThreshold to 5 2022-06-30 18:19:21 +03:00
Dmitry Dunaev
bb267174b3 Merge pull request #81 from Telecominfraproject/fix/wifi-9828--haproxy-limits
[WIFI-9828] Fix: haproxy resources limits typo
2022-06-27 10:32:41 +03:00
Dmitry Dunaev
3dfa1b9891 [WIFI-9828] Fix: haproxy resources limits typo
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-06-27 10:32:16 +03:00
Johann Hoffmann
1348da569c Update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-06-24 19:39:39 +02:00
Dmitry Dunaev
56d969fb69 Merge pull request #80 from Telecominfraproject/feature/wifi-9828--proxy-pgsql-resources-limits
[WIFI-9828] Add: helm resources limits for pgsql and proxy
2022-06-24 16:34:26 +03:00
Dmitry Dunaev
4c1bc2e74e [WIFI-9828] Add: helm resources limits for pgsql and proxy
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-06-24 16:33:06 +03:00
Dmitry Dunaev
3bc5f6d02f [WIFI-9155] Add: helm chart
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-06-21 16:21:02 +03:00
Dmitry Dunaev
eb6c1fe58b Merge pull request #79 from Telecominfraproject/fix/wifi-9472--owsub-haproxy-front-port
[WIFI-9472] Fix: missing LB TLS ports
2022-06-21 13:31:35 +03:00
Dmitry Dunaev
6039b17864 [WIFI-9472] Fix: missing LB TLS ports
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-06-21 13:30:55 +03:00
Dmitry Dunaev
169c62225a Merge pull request #77 from Telecominfraproject/fix/wifi-9472--owsub-haproxy-front-port
[WIFI-9472] Fix: haproxy owsu frontend port
2022-06-21 12:37:06 +03:00
Dmitry Dunaev
3d2daa2106 [WIFI-9472] Fix: haproxy owsu frontend port
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-06-21 12:35:01 +03:00
Johann Hoffmann
a50cf274c9 [WIFI-9155] Setup CI/CD for new service RRM (#74)
* Add owrrm to Docker Compose deployments

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Adapt owrrm env var config to recent changes

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Adapt variables in owrrm.env after recent changes

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix owrrm rule in Traefik config and add documentation for setting up owrrm

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-06-19 19:00:01 +02:00
Johann Hoffmann
cfd00fc956 [WIFI-7832] Create AWS CloudFormation template (#68)
* Make default Docker Compose settings optional

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Check if variables are set before executing sed

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Replace websocket cert and key if according variables are set

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Search and replace email address for ACME registration

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Simplify Letsencrypt deployment method by switching to one hostname

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Wait for DNS record to be resolvable to ensure ACME challenge passes

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Send waiting for DNS to background

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Revert "Send waiting for DNS to background"

This reverts commit 7f1ac42d223d4c3e870aed44d8a04e42f3ac006e.

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Wait for DNS entry in Traefik container

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Revert "Wait for DNS record to be resolvable to ensure ACME challenge passes"

This reverts commit fb3423e42d4fc09ca2ed0deca2c9fe23b74745b1.

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix multi-line entrypoint command

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Expose prov and prov-ui ports in Letsencrypt deployment after switch to one hostname

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Restrict websocket-key.pem permissions

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Update README.md

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-06-16 13:45:31 +02:00
Dmitry Dunaev
6ad1937547 Merge pull request #71 from Telecominfraproject/fix/wifi-9174--dep-charts
[WIFI-9174] Fix: switch from deprecated bitnami charts to mirrored ones
2022-06-03 19:49:11 +03:00
Dmitry Dunaev
690574fa53 [WIFI-9174] Fix: switch from deprecated bitnami charts to mirrored ones
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-06-03 19:47:12 +03:00
Johann Hoffmann
4a3df1772c Fix typo in Traefik entrypoint name
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-06-01 18:03:53 +02:00
Dmitry Dunaev
6ba82b94c9 Merge pull request #66 from Telecominfraproject/feature/wifi-8041--increase-owgw-ram
[WIFI-8041] Chg: increase resources limits for OWGW
2022-05-24 15:35:46 +03:00
Dmitry Dunaev
4af8cabcd3 [WIFI-8041] Chg: increase resources limits for OWGW
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-24 12:59:26 +03:00
Dmitry Dunaev
e388ba0833 Chg: enable owanalytics and owsub for release
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-23 15:28:29 +03:00
Johann Hoffmann
9fa2c00092 Enable CI for pull requests in release branches
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-05-23 13:19:55 +02:00
Dmitry Dunaev
9c27c167ca Merge pull request #63 from Telecominfraproject/feature/wifi-7873--iploc-support
[WIFI-7873] Add: owgw/owprov support for ipinfo
2022-05-18 16:24:55 +03:00
Dmitry Dunaev
62d3bd6724 [WIFI-7873] Add: owgw/owprov support for ipinfo
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-18 15:33:13 +03:00
Dmitry Dunaev
0d60cd1004 [WIFI-7837] Chg: output usage and error to stderr for Quali
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-13 18:11:51 +03:00
Johann Hoffmann
798414363b [WIFI-7604] Add workflows to test deployment upgrade paths (#62)
* Trigger Docker Compose deployment upgrade test when final release is tagged

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix job name

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-05-12 12:49:31 +02:00
Dmitry Dunaev
8e3a1a6aa8 Merge pull request #61 from Telecominfraproject/feature/wifi-7779--add-mailer-params
[WIFI-7779] Add: helm deploy support for mailer envs
2022-05-10 11:54:43 +03:00
Dmitry Dunaev
46225139cb [WIFI-7779] Add: helm deploy support for mailer envs
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-10 11:44:05 +03:00
Dmitry Dunaev
dfd26d3d7f Merge pull request #59 from Telecominfraproject/feature/wifi-7437--no-tls-values
[WIFI-7437] Add: support for deployment without TLS for RESTAPI in Helm chart
2022-05-06 11:59:52 +03:00
Dmitry Dunaev
bac81ddf69 [WIFI-7845] Chg: update Helm AWS template end CM feature values
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-05 15:45:35 +03:00
Dmitry Dunaev
6b0a148caa [WIFI-7824] Fix: service name for UIs
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-03 12:59:17 +03:00
Dmitry Dunaev
b77194b5e8 Merge pull request #60 from Telecominfraproject/feature/wifi-7825--use-nodeports-for-ingress
[WIFI-7825] Chg: switch owgwui and owprovui services types
2022-05-03 12:14:28 +03:00
Dmitry Dunaev
7fe9b39a01 [WIFI-7825] Chg: switch owgwui and owprovui services types
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-03 12:13:00 +03:00
Dmitry Dunaev
74dbf8aac0 [WIFI-7437] Add: support for deployment without TLS for RESTAPI in Helm chart
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-05-02 10:50:53 +03:00
Johann Hoffmann
bf1ad84357 Adapt Docker Compose deploy script to deployment on EC2
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-04-28 16:28:46 +02:00
Dmitry Dunaev
1591d968a6 Chg: increase resources limits for OWGW and OWFMS
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-28 09:16:35 +03:00
Johann Hoffmann
1070472c1b Add deployment scripts and values files from wlan-testing
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-04-21 16:51:55 +02:00
Dmitry Dunaev
62ed783d95 Fix: set cert-manager wildcard duration to 10 years
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-20 19:23:51 +03:00
Dmitry Dunaev
644ff61e87 Merge pull request #56 from Telecominfraproject/feature/wifi-4647--add-k8s-pr-testing
[WIFI-4647] Add: K8s PR testing scenario
2022-04-05 14:44:01 +03:00
Johann Hoffmann
471907aaf6 Update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-04-05 11:47:34 +02:00
Johann Hoffmann
7f9c82c40f Switch to new variable in owprov-ui.env and adapt README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-04-05 10:46:48 +02:00
Johann Hoffmann
76c44c5f5a Update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-04-04 18:21:03 +02:00
Dmitry Dunaev
eb5421a2fe [WIFI-4647] Add: K8s PR testing scenario
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-04 16:18:45 +03:00
Dmitry Dunaev
3bd988aaed [WIFI-4647] Chg: update ow_docker-compose.yml inputs
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-04 15:08:28 +03:00
Dmitry Dunaev
43d1c6499c [WIFI-7221] Chg: make owsub enabled by default
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-01 16:02:00 +03:00
Dmitry Dunaev
94a7b7c10f [WIFI-7221] Add: missing owsub helm values
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-01 11:58:13 +03:00
Dmitry Dunaev
ea31dc784e Merge pull request #51 from Telecominfraproject/feature/wifi-7221--introduce-owsub
[WIFI-7221] Add: support for owsub service
2022-04-01 11:32:22 +03:00
Dmitry Dunaev
0a13612351 [WIFI-7221] Add: support for owsub service
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-04-01 11:29:04 +03:00
Dmitry Dunaev
65d516091b [WIFI-4648] Chg: create deploy release if there are changes in deploy release branch
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-30 16:34:18 +03:00
Johann Hoffmann
613e560b3c Fix deployment_version input
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-29 21:01:15 +02:00
Dmitry Dunaev
a7ae4ac9c3 [WIFI-7463] Add: owprov-ui env for new app
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-29 15:20:03 +03:00
Johann Hoffmann
284fc2f703 Add missing owanalytics port and update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-29 14:15:09 +02:00
Johann Hoffmann
500ad97523 [WIFI-7436] Switch to built-in RTTYS (#55)
* Adapt Helm and Docker Compose deployments to use built-in RTTYS

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Adapt Traefik RTTYS port names

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Remove PR branch tag for OWGW

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Fix Traefik entrypoint name

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-29 13:16:46 +02:00
Debian
069225307c Renamed one of the owprov containers, owanalytics. 2022-03-28 21:29:36 +00:00
Johann Hoffmann
29dfb04b3f Update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-28 20:55:27 +02:00
Johann Hoffmann
b4f17c8142 Update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-28 14:02:56 +02:00
Johann Hoffmann
fc1b8580c0 Update README.md
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-28 13:58:39 +02:00
Dmitry Dunaev
6844052e9b [WIFI-7439] Fix: container port for owanalytics
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-25 18:43:26 +03:00
Dmitry Dunaev
daa6c5d95b [WIFI-7439] Fix: service name limit down to 15
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-25 18:34:30 +03:00
Dmitry Dunaev
a8de1f3cd2 [WIFI-7439] Add: missing haproxy config for chart
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-25 17:38:16 +03:00
Dmitry Dunaev
30bc627cd4 Merge pull request #54 from Telecominfraproject/feature/wifi-7439--add-owanalytics
[WIFI-7439] Add: support for OWAnalytics
2022-03-25 15:36:59 +03:00
Dmitry Dunaev
5e2ff8d5fb [WIFI-7439] Add: support for OWAnalytics
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-25 15:35:50 +03:00
Dmitry Dunaev
e335d2cca3 [WIFI-4647] Del: trigger-testing dependency
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-24 17:24:57 +03:00
Dmitry Dunaev
b028fde21a Merge pull request #53 from Telecominfraproject/feature/wifi-4647--add-pr-testing
[WIFI-4647] Add: PR testing
2022-03-22 14:28:09 +03:00
Dmitry Dunaev
201f666223 [WIFI-4647] Add: PR testing
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-21 17:05:01 +03:00
Dmitry Dunaev
7bb56887b7 Fix: incorrect ports in Helm AWS values for owprov and owfms
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-03-04 17:12:29 +03:00
Johann Hoffmann
7ae5389dde Move OWLS deployment README into subdirectory and clarify instructions on simulator ID
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-03-02 14:00:24 +01:00
Dmitry Dunaev
4412d8159f [WIFI-6851] Add: optional flag to only change credentials for OWLS setups
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-02-25 10:58:09 +03:00
Dmitry Dunaev
def2ea3827 Chg: disable pre-checks for relesae procedure since we have untagged versions 2022-02-11 19:40:47 +03:00
Dmitry Dunaev
63bf637921 Chg: enable owprov and owprov-ui for git release creation
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-02-11 19:36:07 +03:00
Dmitry Dunaev
955ee6bc04 Merge pull request #50 from Telecominfraproject/feature/wifi-6837--chart-improvements
[WIFI-6837] Chg: enable haproxy by default, add README notes on new options
2022-02-09 16:00:02 +03:00
Dmitry Dunaev
ffd9f9850b [WIFI-6837] Add: values for different features and template for AWS cloud
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-02-09 15:58:56 +03:00
Dmitry Dunaev
6502f60213 [WIFI-6851] Add: owls service for certificate generation 2022-02-04 12:16:24 +03:00
Johann Hoffmann
9749f9871f Increase HAProxy timeout setting (https://telecominfraproject.atlassian.net/browse/WIFI-6830)
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2022-01-29 12:22:58 +01:00
Dmitry Dunaev
08b83ac56b [WIFI-6837] Chg: enable haproxy by default, add README notes on new options
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-01-28 17:47:44 +03:00
Dmitry Dunaev
0127bd5d27 Fix: chart README on local installation
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-01-13 15:36:24 +03:00
Dmitry Dunaev
152cfaa0bd [WIFI-6183] Chg: clustersysteminfo to use cli defined OWSEC creds envs
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2022-01-05 13:01:51 +03:00
Dmitry Dunaev
129c68dc09 Merge pull request #47 from Telecominfraproject/feature/wifi-6215--cert-manager-endpoint-certs
[WIFI-6215] Add: self-signed certificate for RESTAPI endpoints
2022-01-03 16:23:47 +03:00
Dmitry Dunaev
0d4efd37c8 [WIFI-6215] Add: self-signed certificate for RESTAPI endpoints
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-30 15:52:56 +03:00
Dmitry Dunaev
9d82a191df Merge pull request #46 from Telecominfraproject/feature/wifi-6164--helm-proxy
[WIFI-6164] Add: helm support for haproxy as optional LB
2021-12-29 15:32:43 +03:00
Dmitry Dunaev
0bebbca3dd [WIFI-6164] Del: SVC_DOMAIN from haproxy config
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-29 15:09:19 +03:00
Dmitry Dunaev
7d0e0746e0 [WIFI-6164] Del: resolver block for HAProxy config for tests
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-29 14:28:04 +03:00
Dmitry Dunaev
135ef24c82 [WIFI-6164] Add: helm support for haproxy as optional LB
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-29 14:08:12 +03:00
Max
5e17a7b980 add clustersysteminfo delay (#44)
Signed-off-by: Max Brenner <xamrennerb@gmail.com>
2021-12-23 14:22:11 +01:00
Dmitry Dunaev
0fcc67565e Merge pull request #45 from Telecominfraproject/fix/wifi-6178--helm-instruction
[WIFI-6178] Fix: Chart installation README
2021-12-23 15:59:54 +03:00
Dmitry Dunaev
591277b5c4 [WIFI-6178] Fix: Chart installation README
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-23 15:05:42 +03:00
Dmitry Dunaev
5e77eedc76 [WIFI-2617] Add: owls Chart.lock records 2021-12-23 14:19:54 +03:00
Dmitry Dunaev
2f1b59bec3 [WIFI-2617] Fix: owls and owls-ui should be explicitly disabled 2021-12-17 06:36:32 +03:00
Johann Hoffmann
983d427d2f Fix permissions
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2021-12-16 17:45:40 +01:00
Johann Hoffmann
fab8de7a55 [WIFI-6170] Add OpenWifi Docker Compose deployment with PostgreSQL (#43)
* Add Compose override file with PostgreSQL service and related files

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Remove unnecessary tags

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Update README.md

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Wait for DB readiness

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add root and data directory variables to microservice env files

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2021-12-16 17:26:27 +01:00
Dmitry Dunaev
d80824845d Merge pull request #42 from Telecominfraproject/feature/wifi-2617--helm-add-owls
[WIFI-2617] Add: owls and owls-ui as optional helm dependency
2021-12-15 15:35:14 +03:00
Dmitry Dunaev
5ceb12beb9 [WIFI-2617] Add: owls and owls-ui as optional helm dependency
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-15 15:33:05 +03:00
Johann Hoffmann
285b0a5533 [WIFI-5721] Create docker-compose for OWLS (#36)
* Add OWLS Compose deployment

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Use different hostname for OWLS deployment and expose OWSec on different host ports

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add OWLS-UI and switch to default ports

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Add env file for owls-ui

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>

* Update README.md

Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2021-12-14 15:35:02 +01:00
Dmitry Dunaev
c3eb565418 Add: possible verbosity levels to git-release workflow
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-06 14:19:04 +03:00
Dmitry Dunaev
84179f82dc Merge pull request #40 from Telecominfraproject/feature/wifi-4648--git-release-tool
[WIFI-4648] Add: script to manually create release
2021-12-03 13:01:12 +03:00
Dmitry Dunaev
e2431e6074 [WIFI-4648] Add: script to manually create release
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-12-02 14:47:41 +03:00
Johann Hoffmann
9cba34e38d Update README.md 2021-11-30 11:40:03 +01:00
Johann Hoffmann
195d5e2cea Update README.md 2021-11-23 13:05:19 +01:00
Johann Hoffmann
2cefc802e9 Update README.md 2021-11-22 13:53:21 +01:00
Dmitry Dunaev
bbd80c584e Merge pull request #37 from Telecominfraproject/feature/wifi-4860--add-ensure-jira-issue-key-workflow
[WIFI-4860] Add: enforce-jira-issue-key workflow
2021-11-19 15:49:49 +03:00
Johann Hoffmann
ce5ca91599 Disable emitting nginx version (#35)
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
Signed-off-by: Dmitry Dunaev <dmitry@opsfleet.com>
2021-11-19 15:48:14 +03:00
Johann Hoffmann
91efa38b11 Disable emitting nginx version (#35)
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2021-11-16 14:01:04 +01:00
Max
c3af438805 increase healthcheck job timeout (#34) 2021-11-16 11:31:17 +01:00
Dmitry Dunaev
1ab5ed4d54 Merge pull request #33 from Telecominfraproject/feature/wifi-5702--add-change-credentials
[WIFI-5702] Add: change_credentials script in docker image
2021-11-15 15:06:52 +03:00
Dmitry Dunaev
f1b686e90e [WIFI-5702] Add: change_credentials script in docker image 2021-11-14 22:16:55 +03:00
Dmitry Dunaev
527cb80796 Merge pull request #32 from Telecominfraproject/feature/wifi-5702--add-readme-on-password-change
[WIFI-5702] Add: README notes with link on how to change default password
2021-11-12 19:13:07 +03:00
Dmitry Dunaev
7a27d397b4 [WIFI-5702] Add: README notes with link on how to change default password 2021-11-12 14:51:56 +03:00
Johann Hoffmann
f49877caf9 Set kernel parameters in Docker Compose files (#31)
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
2021-11-09 15:42:59 +01:00
89 changed files with 6601 additions and 450 deletions

400
.github/git-release-tool/git-release-tool.sh vendored Executable file
View File

@@ -0,0 +1,400 @@
#!/bin/bash
set -e
# git-release-tool
# This script is used to manually cut releases for the TIP OpenWIFI CloudSDK 2.x repos
# For other details, see "usage" function or simply run script
# Constants
export PAGER=cat
# Internal vars
LOG_VERBOSITY_NUMBER=0
REPO_TAGS_ARRAY=()
# Helper functions
## Logging functions
log_notice() {
echo "[Notice] "$1
}
log_error() {
if [[ "$LOG_VERBOSITY_NUMBER" -ge 0 ]]; then
echo "[Error] "$1 >/dev/stderr
fi
}
log_info() {
if [[ "$LOG_VERBOSITY_NUMBER" -ge 1 ]]; then
echo "[Info] "$1
fi
}
log_debug() {
if [[ "$LOG_VERBOSITY_NUMBER" -ge 2 ]]; then
echo "[Debug] "$1
fi
}
## Usage info
usage() {
echo
log_notice "$0 - script to cut releases for TIP OpenWIFI CloudSDK 2.x repos"
log_notice
log_notice "This script requires configuration file 'repositories.yaml' near the script and list of environment variables to work"
log_notice
log_notice "repositories.yaml file format:"
echo "deploy_repo_url: git@github.com:Telecominfraproject/wlan-cloud-ucentral-deploy.git # modify if repo name changes"
echo "repositories:"
echo " - name: owgw-ui # should be the same as in image repository in helm values (i.e. tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui)"
echo " url: git@github.com:Telecominfraproject/wlan-cloud-owprov-ui.git # it's up to you to use SSH or HTTPS format and setup credentials for push/pull"
echo " docker_compose_name: OWPROVUI # name of environment variable in docker-compose .env file containing image tag for the service"
log_notice
log_notice "List of required environment variables:"
log_notice "- RELEASE_VERSION - release version that should be applied to repositories. Should comply release nameing policy (valid example - 'v2.0.0' or 'v2.0.1')"
log_notice "- TAG_TYPE - type of tag that should be created for release (supported values - RC / FINAL)"
log_notice "- GIT_PUSH_CONFIRMED - confirmation that any changes should be pushed to git (dry-run if unset, set to 'true' to enable)"
log_notice
log_notice "You may increase log verbosity by setting environment variable LOG_VERBOSITY to required level (ERROR/INFO/DEBUG)"
#
}
## Setting functions
set_log_verbosity_number() {
# Log verbosity levels:
# 0 - ERROR
# 1 - INFO
# 2 - DEBUG
case $LOG_VERBOSITY in
ERROR )
LOG_VERBOSITY_NUMBER=0
;;
INFO )
LOG_VERBOSITY_NUMBER=1
;;
DEBUG )
LOG_VERBOSITY_NUMBER=2
;;
* )
log_notice "Setting LOG_VERBOSITY to INFO by default"
LOG_VERBOSITY_NUMBER=1
;;
esac
}
## Git manipulation functions
modify_deploy_repo_values() {
NEW_RELEASE_TAG=$1
log_debug "NEW_RELEASE_TAG - $NEW_RELEASE_TAG"
REPOSITORIES_AMOUNT=$(cat ../release.repositories.yaml | yq ".repositories[].name" -r | wc -l)
for REPO_INDEX in $(seq 0 $(expr $REPOSITORIES_AMOUNT - 1)); do
REPO_URL=$(cat ../release.repositories.yaml | yq ".repositories[$REPO_INDEX].url" -r)
REPO_NAME_SUFFIXED=$(echo $REPO_URL | awk -F '/' '{print $NF}')
REPO_NAME_WITHOUT_SUFFIX=${REPO_NAME_SUFFIXED%.git}
REPO_DOCKER_COMPOSE_NAME=$(cat ../release.repositories.yaml | yq ".repositories[$REPO_INDEX].docker_compose_name" -r)
SERVICE_TAG="${REPO_TAGS_ARRAY[$REPO_INDEX]}"
log_debug "REPO_NAME_WITHOUT_SUFFIX - $REPO_NAME_WITHOUT_SUFFIX"
sed "s/$REPO_DOCKER_COMPOSE_NAME=.*/$REPO_DOCKER_COMPOSE_NAME=$SERVICE_TAG/" -i docker-compose/.env
sed "s/$REPO_DOCKER_COMPOSE_NAME=.*/$REPO_DOCKER_COMPOSE_NAME=$SERVICE_TAG/" -i docker-compose/.env.letsencrypt
sed "s/$REPO_DOCKER_COMPOSE_NAME=.*/$REPO_DOCKER_COMPOSE_NAME=$SERVICE_TAG/" -i docker-compose/.env.selfsigned
sed "/${REPO_NAME_WITHOUT_SUFFIX#*/}@/s/ref=.*/ref=$SERVICE_TAG\"/g" -i chart/Chart.yaml
sed "/repository: tip-tip-wlan-cloud-ucentral.jfrog.io\/clustersysteminfo/!b;n;s/tag: .*/tag: $NEW_RELEASE_TAG/" -i chart/values.yaml
done
LATEST_RELEASE_TAG=$(git tag | grep $RELEASE_VERSION | tail -1)
if [[ "$(git diff | wc -l)" -eq "0" ]] && [[ "$(git diff $LATEST_RELEASE_TAG)" -eq "0" ]]; then
log_info "No changes in microservices and since the latest tag are found, new release is not required"
else
sed 's/^version: .*/version: '${NEW_RELEASE_TAG#v}'/' chart/Chart.yaml -i
fi
git diff
}
modify_values() {
NEW_RELEASE_TAG=$1
if [[ "$(basename $PWD)" == "deploy" ]]; then
modify_deploy_repo_values $NEW_RELEASE_TAG
else
sed "/repository: tip-tip-wlan-cloud-ucentral.jfrog.io\/$(basename $PWD)/!b;n;s/tag: .*/tag: $NEW_RELEASE_TAG/" -i helm/values.yaml
fi
if [[ "$LOG_VERBOSITY_NUMBER" -ge 2 ]]; then
log_debug "Diff to me commited:"
git diff
fi
git add .
git commit -m"Chg: update image tag in helm values to $NEW_RELEASE_TAG"
}
push_changes() {
CURRENT_RELEASE=$(git rev-parse --abbrev-ref HEAD)
if [[ "$GIT_PUSH_CONFIRMED" == "true" ]]; then
log_info "Pushing branch changes and tags:"
git push -u origin $CURRENT_RELEASE
git push --tags
else
log_info "Skipping pushing of branch and tags due to GIT_PUSH_CONFIRMED not being set to 'true'"
fi
}
create_tag() {
TAG_TYPE_LOWERED=$(echo $TAG_TYPE | tr '[:upper:]' '[:lower:]')
if [[ "$TAG_TYPE_LOWERED" == "final" ]]; then
log_debug "Creating final tag"
modify_values $RELEASE_VERSION
git tag $RELEASE_VERSION
push_changes
REPO_TAGS_ARRAY+=($RELEASE_VERSION)
else
log_debug "Checking if there are tags in the current release branch"
LATEST_RELEASE_TAG=$(git tag | grep $RELEASE_VERSION | tail -1)
log_debug "Latest release tag found - '$LATEST_RELEASE_TAG'"
if [[ -z "$LATEST_RELEASE_TAG" ]]; then
log_info "There are no tags in the release branch, creating the first one"
NEW_RELEASE_TAG=$RELEASE_VERSION-RC1
log_debug "New tag - $NEW_RELEASE_TAG"
modify_values $NEW_RELEASE_TAG
git tag $NEW_RELEASE_TAG
push_changes
REPO_TAGS_ARRAY+=($NEW_RELEASE_TAG)
else
if [[ "$(basename $PWD)" == "deploy" ]]; then
NEW_RC=$(echo $LATEST_RELEASE_TAG | awk -F 'RC' '{print $2}')
NEW_RC=$(expr $NEW_RC + 1)
log_debug "New RC to create - $NEW_RC"
NEW_RELEASE_TAG=$RELEASE_VERSION-RC$NEW_RC
modify_deploy_repo_values $NEW_RELEASE_TAG
if [[ "v$(cat chart/Chart.yaml | yq '.version' -r)" == "$NEW_RELEASE_TAG" ]]; then
git add .
git commit -m"Chg: update image tag in helm values to $NEW_RELEASE_TAG"
git tag $NEW_RELEASE_TAG
push_changes
log_info "New tag $NEW_RELEASE_TAG was created and pushed"
REPO_TAGS_ARRAY+=($NEW_RELEASE_TAG)
else
log_info "New tag for deploy repo is not required, saving existing one ($LATEST_RELEASE_TAG)"
REPO_TAGS_ARRAY+=($LATEST_RELEASE_TAG)
fi
else
log_debug "Checking if the latest tag is on the latest commit"
LATEST_REVISION=$(git rev-parse HEAD)
LATEST_RELEASE_TAG_REVISION=$(git rev-parse $LATEST_RELEASE_TAG)
log_debug "Latest revision ----- $LATEST_REVISION"
log_debug "Latest tag revision - $LATEST_RELEASE_TAG_REVISION"
if [[ "$LATEST_REVISION" == "$LATEST_RELEASE_TAG_REVISION" ]]; then
log_info "Existing tag $LATEST_RELEASE_TAG is pointing to the latest commit in the release branch"
REPO_TAGS_ARRAY+=($LATEST_RELEASE_TAG)
else
NEW_RC=$(echo $LATEST_RELEASE_TAG | awk -F 'RC' '{print $2}')
NEW_RC=$(expr $NEW_RC + 1)
log_debug "New RC to create - $NEW_RC"
NEW_RELEASE_TAG=$RELEASE_VERSION-RC$NEW_RC
modify_values $NEW_RELEASE_TAG
git tag $NEW_RELEASE_TAG
push_changes
log_info "New tag $NEW_RELEASE_TAG was created and pushed"
REPO_TAGS_ARRAY+=($NEW_RELEASE_TAG)
fi
fi
fi
fi
}
check_final_tag() {
log_debug "Amount of final tags found - $(git tag | grep -x $RELEASE_VERSION | wc -l)"
if [[ "$(git tag | grep -x $RELEASE_VERSION | wc -l)" -gt "0" ]]; then
log_error "Final tag $RELEASE_VERSION already exists in release branch"
exit 1
fi
}
check_git_tags() {
if [[ "${#REPO_TAGS_ARRAY[@]}" -eq "0" ]] && [[ "$(basename $PWD)" == "deploy" ]]; then
log_info "This deploy clone run is required to get repositories tied to the release, we will make changes later."
else
RELEASE_TAGS_AMOUNT=$(git tag | grep $RELEASE_VERSION | wc -l)
log_info "Checking if there are any tags for current version ($RELEASE_VERSION)"
log_debug "Amount of tags linked with the release - $RELEASE_TAGS_AMOUNT"
if [[ "$RELEASE_TAGS_AMOUNT" -gt "0" ]]; then
log_info "Tags for release $RELEASE_VERSION are found, checking if final tag exist"
check_final_tag
create_tag
else
log_info "No tags found for current version, checking if there are any tags for release branch ($RELEASE_BRANCH_VERSION_BASE)"
RELEASE_BRANCH_TAGS_AMOUNT=$(git tag | grep $RELEASE_BRANCH_VERSION_BASE | wc -l)
log_debug "Amount of tags linked with the release branch - $RELEASE_BRANCH_TAGS_AMOUNT"
if [[ "$RELEASE_BRANCH_TAGS_AMOUNT" -gt "0" ]]; then
log_info "Tags for $RELEASE_BRANCH_VERSION_BASE are found, finding the latest one"
RELEASE_BRANCH_TAG_FINAL=$(git tag | grep $RELEASE_BRANCH_VERSION_BASE | grep -v 'RC' | tail -1)
if [[ ! -z "$RELEASE_BRANCH_TAG_FINAL" ]]; then
RELEASE_BRANCH_TAG=$RELEASE_BRANCH_TAG_FINAL
else
RELEASE_BRANCH_TAG=$(git tag | grep $RELEASE_BRANCH_VERSION_BASE | tail -1)
fi
log_info "Latest release tag in $RELEASE_BRANCH_VERSION_BASE - $RELEASE_BRANCH_TAG. Checking if there are changes since then"
DIFF_LINES_AMOUNT=$(git diff $RELEASE_BRANCH_TAG | wc -l)
if [[ "$DIFF_LINES_AMOUNT" -eq "0" ]]; then
log_info "No changes found since the latest release tag ($RELEASE_BRANCH_TAG), using it for new version"
REPO_TAGS_ARRAY+=($RELEASE_BRANCH_TAG)
else
log_info "Changes are found in the branch, creating a new tag"
create_tag
fi
else
log_info "Tags for $RELEASE_BRANCH_VERSION_BASE not found, creating new one"
create_tag
fi
fi
fi
}
check_release_branch() {
RELEASE_BRANCH=$1
git checkout $RELEASE_BRANCH -q
check_git_tags
}
create_release_branch() {
git checkout -b release/$RELEASE_BRANCH_VERSION -q
check_release_branch release/$RELEASE_BRANCH_VERSION
}
check_if_release_branch_required() {
LATEST_RELEASE_BRANCH=$(git branch -r | grep 'release/' | tail -1 | xargs)
log_debug "Latest release branch available - $LATEST_RELEASE_BRANCH"
if [[ -z "$LATEST_RELEASE_BRANCH" ]]; then
log_info "Could not find a single release branch, creating it"
create_release_branch $RELEASE_BRANCH_VERSION
else
LAST_RELEASE_DIFF_LINES_AMOUNT=$(git diff $LATEST_RELEASE_BRANCH ':(exclude)helm/values.yaml' | wc -l)
if [[ "$LAST_RELEASE_DIFF_LINES_AMOUNT" -eq "0" ]]; then
log_info "There are no changes in project since the latest release branch $LATEST_RELEASE_BRANCH so we will use tag from it"
LATEST_RELEASE=$(echo $LATEST_RELEASE_BRANCH | awk -F 'origin/release/' '{print $2}')
LATEST_RELEASE_BASE=$(echo $LATEST_RELEASE | cut -f 1,2 -d '.')
LATEST_RELEASE_TAG_FINAL=$(git tag | grep $LATEST_RELEASE_BASE | grep -v 'RC' | tail -1)
if [[ ! -z "$LATEST_RELEASE_TAG_FINAL" ]]; then
LATEST_RELEASE_TAG=$LATEST_RELEASE_TAG_FINAL
else
LATEST_RELEASE=$(git tag | grep $LATEST_RELEASE_BASE | tail -1)
fi
log_debug "Latest release - $LATEST_RELEASE"
log_debug "Latest release base - $LATEST_RELEASE_BASE"
log_debug "Latest release tag - $LATEST_RELEASE_TAG"
if [[ -z "$LATEST_RELEASE_TAG" ]]; then
log_info "Could not find any tags for $LATEST_RELEASE release, creating it"
check_release_branch $LATEST_RELEASE
else
log_info "Latest release tag found - $LATEST_RELEASE_TAG"
REPO_TAGS_ARRAY+=($LATEST_RELEASE_TAG)
fi
else
log_info "New release branch for $RELEASE_BRANCH_VERSION is required, creating it"
create_release_branch $RELEASE_BRANCH_VERSION
fi
fi
}
get_release_branch_version() {
RELEASE_BRANCH_VERSION_BASE=$(echo $RELEASE_VERSION | cut -f 1,2 -d '.')
RELEASE_BRANCH_VERSION="$RELEASE_BRANCH_VERSION_BASE.0"
if [[ "$RELEASE_BRANCH_VERSION" != "$RELEASE_VERSION" ]]; then
log_info "Minor release version ($RELEASE_VERSION) deployment is detected, work will be checked in branch for $RELEASE_BRANCH_VERSION"
fi
}
create_repo_version() {
CWD=$PWD
REPO_NAME=$1
REPO_URL=$2
rm -rf $REPO_NAME
git clone -q $REPO_URL $REPO_NAME
cd $REPO_NAME
get_release_branch_version
log_debug "Release branch version - $RELEASE_BRANCH_VERSION"
DEFAULT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
RELEASE_BRANCH=$(git branch -r | grep $RELEASE_BRANCH_VERSION | awk -F 'origin/' '{print $2}' | xargs)
log_debug "Release branch to check - '$RELEASE_BRANCH'"
if [[ ! -z "$RELEASE_BRANCH" ]]; then
log_info "Release branch $RELEASE_BRANCH exists in the repository, checking if it has tags"
check_release_branch $RELEASE_BRANCH
else
log_info "Release branch does not exists in the repository, checking if we need to create it"
check_if_release_branch_required $DEFAULT_BRANCH
fi
log_info "Release commit info:"
git show
cd $CWD
}
# Log level setup
set_log_verbosity_number
# Check system requirements
if ! command -v yq &> /dev/null; then
log_error "Command yq could not be found"
usage
exit 2
fi
if ! command -v sed &> /dev/null; then
log_error "Command sed could not be found"
usage
exit 2
fi
if ! command -v helm &> /dev/null; then
log_error "Command helm could not be found"
usage
exit 2
fi
if [[ "$(helm plugin list | grep -wP '(helm-git|diff)' | wc -l)" -ne "2" ]]; then
log_error "Helm plugins (helm-git and/or diff) are missing"
usage
exit 2
fi
# Check variables
log_debug "Release version: ${RELEASE_VERSION}"
[ -z ${RELEASE_VERSION+x} ] && echo "RELEASE_VERSION is unset" && usage && exit 3
echo "${RELEASE_VERSION}" | grep -xP "v(\d)+\.(\d)+\.\d+" >/dev/null || (log_error "RELEASE_VERSION is not in the right notation (correct example - v2.2.0 or v2.2.2)" && usage && exit 3)
log_debug "Tag type: ${TAG_TYPE}"
[ -z ${TAG_TYPE+x} ] && echo "TAG_TYPE is unset" && usage && exit 3
echo "${TAG_TYPE}" | tr '[:upper:]' '[:lower:]' | grep -xP "(rc|final)" >/dev/null || (log_error "TAG_TYPE is not in the supported values ('rc' or 'final', case insensitive)" && usage && exit 3)
# Main body
DEPLOY_REPO_URL=$(cat repositories.yaml | yq ".deploy_repo_url" -r)
log_debug "DEPLOY_REPO_URL - $DEPLOY_REPO_URL"
log_info "First we need to get repository list for tied deployment version"
create_repo_version "deploy" $DEPLOY_REPO_URL
cp deploy/.github/git-release-tool/repositories.yaml release.repositories.yaml
rm -rf deploy
log_info "Checking repositories"
REPOSITORIES_AMOUNT=$(cat release.repositories.yaml | yq ".repositories[].name" -r | wc -l)
log_info "Found $REPOSITORIES_AMOUNT repos to process"
for REPO_INDEX in $(seq 0 $(expr $REPOSITORIES_AMOUNT - 1)); do
echo
REPO_NAME=$(cat release.repositories.yaml | yq ".repositories[$REPO_INDEX].name" -r)
REPO_URL=$(cat release.repositories.yaml | yq ".repositories[$REPO_INDEX].url" -r)
REPO_DOCKER_COMPOSE_NAME=$(cat release.repositories.yaml | yq ".repositories[$REPO_INDEX].docker_compose_name" -r)
log_debug "REPO_NAME - $REPO_NAME"
log_debug "REPO_URL - $REPO_URL"
log_debug "REPO_DOCKER_COMPOSE_NAME - $REPO_DOCKER_COMPOSE_NAME"
log_info "Processing repository '$REPO_NAME'"
create_repo_version $REPO_NAME $REPO_URL
rm -rf $REPO_NAME
done
log_debug "Tags per project: ${REPO_TAGS_ARRAY[*]}"
echo
log_info "Preparing changes in deploy repo"
create_repo_version "deploy" $DEPLOY_REPO_URL
echo
log_info "Services versions:"
for REPO_INDEX in $(seq 0 $(expr $REPOSITORIES_AMOUNT - 1)); do
REPO_NAME=$(cat release.repositories.yaml | yq ".repositories[$REPO_INDEX].name" -r)
log_info "- $REPO_NAME - ${REPO_TAGS_ARRAY[$REPO_INDEX]}"
done
log_info "Deployment repo version - ${REPO_TAGS_ARRAY[-1]}"
rm release.repositories.yaml
if [[ "$GIT_PUSH_CONFIRMED" != "true" ]]; then
log_info "To apply changes described above, set GIT_PUSH_CONFIRMED to 'true' and rerun this script"
fi

View File

@@ -0,0 +1,29 @@
deploy_repo_url: https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy.git
repositories:
- name: owgw
url: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw.git
docker_compose_name: OWGW_TAG
- name: owsec
url: https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
docker_compose_name: OWSEC_TAG
- name: owfms
url: https://github.com/Telecominfraproject/wlan-cloud-ucentralfms.git
docker_compose_name: OWFMS_TAG
- name: owgw-ui
url: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui.git
docker_compose_name: OWGWUI_TAG
- name: owprov-ui
url: https://github.com/Telecominfraproject/wlan-cloud-owprov-ui.git
docker_compose_name: OWPROVUI_TAG
- name: owprov
url: https://github.com/Telecominfraproject/wlan-cloud-owprov.git
docker_compose_name: OWPROV_TAG
- name: owanalytics
url: https://github.com/Telecominfraproject/wlan-cloud-analytics.git
docker_compose_name: OWANALYTICS_TAG
- name: owsub
url: https://github.com/Telecominfraproject/wlan-cloud-userportal.git
docker_compose_name: OWSUB_TAG
- name: owrrm
url: https://github.com/Telecominfraproject/wlan-cloud-rrm.git
docker_compose_name: OWRRM_TAG

114
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,114 @@
name: CI
on:
push:
tags:
- 'v*'
- '!v*-RC*'
pull_request:
branches:
- main
- 'release/*'
workflow_dispatch: {}
defaults:
run:
shell: bash
jobs:
envs:
name: Setup environment variables for further tests
if: startsWith(github.ref, 'refs/pull/') || startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
outputs:
pr_branch: ${{ steps.get_branch_names.outputs.pr_branch }}
deployment_upgrade_tag: ${{ steps.get_deployment_upgrade_tag.outputs.tag }}
deployment_tag: ${{ steps.get_deployment_tag.outputs.tag }}
steps:
- name: Get branch names and set as outputs
id: get_branch_names
if: startsWith(github.ref, 'refs/pull/')
run: |
echo "pr_branch=$(echo ${GITHUB_HEAD_REF})" >> $GITHUB_OUTPUT
- name: Get created deployment tag and set as output
id: get_deployment_upgrade_tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
echo "tag=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT
- name: Get previous deployment tag
id: get_deployment_tag
if: startsWith(github.ref, 'refs/tags/v')
run: |
echo "tag=$(git tag | grep -v RC | tail -2 | head -1)" >> $GITHUB_OUTPUT
trigger-docker-compose-testing:
if: startsWith(github.ref, 'refs/pull/')
runs-on: ubuntu-latest
needs: envs
steps:
- name: Checkout actions repo
uses: actions/checkout@v4
with:
repository: Telecominfraproject/.github
path: github
- name: Trigger testing of OpenWifi Docker Compose deployment and wait for result
uses: ./github/composite-actions/trigger-workflow-and-wait
env:
PR_BRANCH: ${{ needs.envs.outputs.pr_branch }}
with:
owner: Telecominfraproject
repo: wlan-testing
workflow: ow_docker-compose.yml
token: ${{ secrets.WLAN_TESTING_PAT }}
ref: master
inputs: '{"deployment_version": "${{ env.PR_BRANCH }}", "microservice": "all"}'
trigger-k8s-testing:
if: startsWith(github.ref, 'refs/pull/')
runs-on: ubuntu-latest
needs: envs
steps:
- name: Checkout actions repo
uses: actions/checkout@v4
with:
repository: Telecominfraproject/.github
path: github
- name: Trigger testing of OpenWifi Docker Compose deployment and wait for result
uses: ./github/composite-actions/trigger-workflow-and-wait
env:
PR_BRANCH: ${{ needs.envs.outputs.pr_branch }}
with:
owner: Telecominfraproject
repo: wlan-testing
workflow: ow_k8s.yml
token: ${{ secrets.WLAN_TESTING_PAT }}
ref: master
inputs: '{"deployment_version": "${{ env.PR_BRANCH }}", "microservice": "all"}'
trigger-docker-compose-upgrade-testing:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs: envs
steps:
- name: Checkout actions repo
uses: actions/checkout@v4
with:
repository: Telecominfraproject/.github
path: github
- name: Trigger testing of OpenWifi Docker Compose deployment upgrade and wait for result
uses: ./github/composite-actions/trigger-workflow-and-wait
env:
DEPLOYMENT_TAG: ${{ needs.envs.outputs.deployment_tag }}
DEPLOYMENT_UPGRADE_TAG: ${{ needs.envs.outputs.deployment_upgrade_tag }}
with:
owner: Telecominfraproject
repo: wlan-testing
workflow: ow_docker-compose-upgrade-test.yml
token: ${{ secrets.WLAN_TESTING_PAT }}
ref: master
inputs: '{"deployment_version": "${{ env.DEPLOYMENT_TAG }}", "deployment_upgrade_version": "${{ env.DEPLOYMENT_UPGRADE_TAG }}"}'

View File

@@ -22,7 +22,7 @@ jobs:
DOCKER_REGISTRY_URL: tip-tip-wlan-cloud-ucentral.jfrog.io
DOCKER_REGISTRY_USERNAME: ucentral
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Build Docker image
working-directory: chart/docker
@@ -55,7 +55,7 @@ jobs:
- name: Log into Docker registry
if: startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/pull/') || github.ref == 'refs/heads/main'
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ${{ env.DOCKER_REGISTRY_URL }}
username: ${{ env.DOCKER_REGISTRY_USERNAME }}

View File

@@ -0,0 +1,22 @@
name: Ensure Jira issue is linked
on:
pull_request:
types: [opened, edited, reopened, synchronize]
jobs:
check_for_issue_key:
runs-on: ubuntu-latest
steps:
- name: Checkout actions repo
uses: actions/checkout@v4
with:
repository: Telecominfraproject/.github
path: github
- name: Run JIRA check
uses: ./github/composite-actions/enforce-jira-issue-key
with:
jira_base_url: ${{ secrets.TIP_JIRA_URL }}
jira_user_email: ${{ secrets.TIP_JIRA_USER_EMAIL }}
jira_api_token: ${{ secrets.TIP_JIRA_API_TOKEN }}

59
.github/workflows/git-release.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Create new release for OpenWIFI 2.x services
on:
workflow_dispatch:
inputs:
release_version:
description: 'Release version to create (i.e. v2.4.0)'
required: true
tag_type:
default: 'rc'
description: 'Tag type to create (final OR rc)'
required: true
push_confirm:
default: ''
description: 'Set to "true" if changes should be pushed (dry-run enabled by default)'
required: false
log_level:
default: 'INFO'
description: 'Log level for the script (ERROR/INFO/DEBUG)'
required: false
defaults:
run:
shell: bash
jobs:
create_release:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
path: wlan-cloud-ucentral-deploy
- name: Install system dependencies
run: |
pip3 install yq
helm plugin install https://github.com/databus23/helm-diff
helm plugin install https://github.com/aslafy-z/helm-git --version 0.16.0
ls ~/.local/share/helm/plugins/helm-git/helm-git-plugin.sh || true
sed 's/--skip-refresh //' -i ~/.local/share/helm/plugins/helm-git/helm-git-plugin.sh
- name: Run release creation script
working-directory: wlan-cloud-ucentral-deploy/.github/git-release-tool
run: |
export RELEASE_VERSION=${{ github.event.inputs.release_version }}
export TAG_TYPE=${{ github.event.inputs.tag_type }}
export GIT_PUSH_CONFIRMED=${{ github.event.inputs.push_confirm }}
export LOG_VERBOSITY=${{ github.event.inputs.log_level }}
mkdir -p ~/.ssh
chmod -R 700 ~/.ssh
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
echo https://tip-automation:${{ secrets.GIT_PUSH_PAT }}@github.com > ~/.git-credentials
git config --global credential.helper store
git config --global user.email "tip-automation@telecominfraproject.com"
git config --global user.name "TIP Automation User"
#helm repo add bitnami https://charts.bitnami.com/bitnami
#helm repo update
./git-release-tool.sh

View File

@@ -11,40 +11,38 @@ defaults:
jobs:
helm-package:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
env:
HELM_REPO_URL: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
HELM_REPO_USERNAME: ucentral
steps:
- name: Checkout uCentral assembly chart repo
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
path: wlan-cloud-ucentral-deploy
repository: Telecominfraproject/wlan-cloud-ucentral-deploy
- name: Run pre-checks
working-directory: wlan-cloud-ucentral-deploy/chart
run: |
pip3 install yq -q
export CHART_VERSION=$(cat Chart.yaml | yq .version -r)
export GIT_TAG=$(echo ${GITHUB_REF} | sed -e 's/refs\/tags\/[v]//' | tr '/' '-')
if [ "$CHART_VERSION" != "$GIT_TAG" ]; then
echo "Chart version in Chart.yaml ($CHART_VERSION) is different from Git tag ($GIT_TAG)";
exit 1
fi
if [ "$(cat Chart.yaml | yq '.dependencies[].repository' -r | grep -E 'ref=(main|master)' | wc -l)" != "0" ]; then
echo "Some of the dependencies does not have a fixed version set. List of affected dependencies:";
cat Chart.yaml | yq '.dependencies[].repository' -r | grep -E 'ref=(main|master)';
exit 1
fi
# - name: Run pre-checks
# working-directory: wlan-cloud-ucentral-deploy/chart
# run: |
# pip3 install yq -q
# export CHART_VERSION=$(cat Chart.yaml | yq .version -r)
# export GIT_TAG=$(echo ${GITHUB_REF} | sed -e 's/refs\/tags\/[v]//' | tr '/' '-')
# if [ "$CHART_VERSION" != "$GIT_TAG" ]; then
# echo "Chart version in Chart.yaml ($CHART_VERSION) is different from Git tag ($GIT_TAG)";
# exit 1
# fi
#
# if [ "$(cat Chart.yaml | yq '.dependencies[].repository' -r | grep -E 'ref=(main|master)' | wc -l)" != "0" ]; then
# echo "Some of the dependencies does not have a fixed version set. List of affected dependencies:";
# cat Chart.yaml | yq '.dependencies[].repository' -r | grep -E 'ref=(main|master)';
# exit 1
# fi
- name: Build package
working-directory: wlan-cloud-ucentral-deploy/chart
run: |
helm plugin install https://github.com/aslafy-z/helm-git --version 0.10.0
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm plugin install https://github.com/aslafy-z/helm-git --version 0.16.0
helm dependency update
mkdir dist
helm package . -d dist
@@ -70,7 +68,7 @@ jobs:
cat Chart.yaml | yq -r '.dependencies[] | "\(.name) - \(.repository) v\(.version)"' >> release.txt
- name: Create GitHub release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
body_path: wlan-cloud-ucentral-deploy/chart/release.txt
files: wlan-cloud-ucentral-deploy/chart/dist/*
@@ -80,7 +78,7 @@ jobs:
needs: helm-package
steps:
- name: Trigger testing of release
uses: peter-evans/repository-dispatch@v1
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.WLAN_TESTING_PAT }}
repository: Telecominfraproject/wlan-testing

4
.gitignore vendored
View File

@@ -1,3 +1,7 @@
*.swp
chart/charts/*
chart/Chart.lock
chart/environment-values/wlan-cloud-ucentral-deploy/
/docker-compose/certs/
/docker-compose/*_data
/docker-compose/owls/*_data

3
cgw/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
values/certs.device.yaml
websocket-key.pem
websocket-cert.pem

2
cgw/.sops.yaml Normal file
View File

@@ -0,0 +1,2 @@
creation_rules:
- kms: 'arn:aws:kms:us-east-2:289708231103:alias/helm-secrets'

47
cgw/README.md Normal file
View File

@@ -0,0 +1,47 @@
# CGW Charts
## Pre-requisites
The following binaries are needed:
- [helmfile](https://github.com/helmfile/helmfile/releases/download/v0.165.0/helmfile_0.165.0_linux_amd64.tar.gz)
- helm
- kubectl
The following helm plugins are needed:
```bash
helm plugin install https://github.com/aslafy-z/helm-git --version 0.16.0
helm plugin install https://github.com/databus23/helm-diff
```
## Configuration
_helmfile.yaml_ contains the configuration for all the environments. External values files are used for secrets or where appropriate. Each environment needs to be created in this file before it can be deployed. The _values/certs.device.yaml_ file is generated in github workflows.
This file should contain the device cert and key for the domain you are deploying.
```
certs:
websocket-cert.pem: 5c0lvd0RRWUpLb1pJa...
websocket-key.pem: V6WEFqWEhNVFk3RGda...
```
To generate (with the two websocket pem files available):
```
echo "certs:" > values/certs.device.yaml
kubectl create secret generic certs --dry-run=client -o yaml \
--from-file=websocket-key.pem --from-file=websocket-cert.pem \
| grep websocket- >> values/certs.device.yaml
```
## Installation
To install the entire stack: `helm --environment ENVNAME apply`.
To install just cgw: `helm --environment ENVNAME -l app=cgw apply`.
To install just cgw with a specific image tag: `helm --environment ENVNAME -l app=cgw apply --state-values-set "cgw.tag=main"`.
## Removal
To remove the entire stack: `helm --environment ENVNAME delete`.
To remove just cgw: `helm --environment ENVNAME -l app=cgw delete`.
Delete the namespace manually if it is no longer required.
# Re-installation
Note that the kafka, postgres and redis charts do not want to be reinstalled so will have to be removed and installed. If you wish to upgrade these then you must follow the respective Bitnami instructions on how to upgrade these charts.

226
cgw/helmfile.yaml Normal file
View File

@@ -0,0 +1,226 @@
environments:
default:
values:
- global:
name: devcgw
namespace: openwifi-devcgw
domain: cicd.lab.wlan.tip.build
certificateARN: arn:aws:acm:us-east-2:289708231103:certificate/299d7444-acc4-46c2-ae83-40d2cd5f49be
- kafka:
enabled: true
- redis:
enabled: true
- postgres:
enabled: true
pgUser:
password: postgres
cgwUser:
name: cgw
password: 123
- cgw:
enabled: true
tag: main
cgw01:
values:
- global:
name: cgw01
namespace: openlan-cgw01
domain: cicd.lab.wlan.tip.build
certificateARN: arn:aws:acm:ap-south-1:289708231103:certificate/2cc8c764-11fd-411d-bf7d-a93f488f3f6c
- kafka:
enabled: true
- redis:
enabled: true
- postgres:
enabled: true
pgUser:
password: openlancgw
cgwUser:
name: cgw
password: openlancgw
- cgw:
enabled: true
tag: main
---
helmDefaults:
force: false
timeout: 300
createNamespace: true
releases:
- name: kafka
version: 28.3.0
namespace: {{ .Environment.Values.global.namespace }}
condition: kafka.enabled
chart: oci://registry-1.docker.io/bitnamicharts/kafka
labels:
group: base
app: kafka
values:
- fullnameOverride: kafka
- volumePermissions:
enabled: true
- commonAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
- readinessProbe:
initialDelaySeconds: 45
- livenessProbe:
initialDelaySeconds: 60
- heapOpts: -Xmx1024m -Xms1024m
- kraft:
enabled: true
- zookeeper:
enabled: false
- provisioning:
enabled: true
topics:
- name: CnC
partitions: 1
replicationFactor: 1
- name: CnC_Res
partitions: 1
replicationFactor: 1
- controller:
persistence:
size: 80Gi
replicaCount: 1
extraConfig: |-
maxMessageBytes = 1048588
offsets.topic.replication.factor = 1
transaction.state.log.replication.factor = 1
extraEnvVars:
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 750m
memory: 2Gi
- listeners:
client:
protocol: PLAINTEXT
containerPort: 9092
controller:
protocol: "PLAINTEXT"
- broker:
replicaCount: 0
persistence:
size: 80Gi
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 750m
memory: 2Gi
- name: postgres
namespace: {{ .Environment.Values.global.namespace }}
chart: oci://registry-1.docker.io/bitnamicharts/postgresql
version: 13.4.3
condition: postgres.enabled
labels:
group: base
app: postgres
values:
- fullnameOverride: pgsql
# workaround for: postgresql.conf file not detected. Generating it...
# cp: cannot create regular file '/bitnami/postgresql/conf/postgresql.conf': Permission denied
- volumePermissions:
enabled: true
- global:
postgresql:
auth:
postgresPassword: {{ .Environment.Values.postgres.pgUser.password }}
- auth:
postgresPassword: {{ .Environment.Values.postgres.pgUser.password }}
- primary:
persistence:
size: 40Gi
extendedConfiguration: |-
max_connections = 550
shared_buffers = 128MB
log_error_verbosity = verbose
tcp_keepalives_idle = 300
tcp_keepalives_interval = 30
tcp_user_timeout = 300
initdb:
scripts:
initusers.sql: |-
CREATE USER {{ .Environment.Values.postgres.cgwUser.name }};
ALTER USER cgw WITH ENCRYPTED PASSWORD '{{ .Environment.Values.postgres.cgwUser.password }}';
CREATE DATABASE cgw OWNER {{ .Environment.Values.postgres.cgwUser.name }};
\c cgw
CREATE TABLE infrastructure_groups (id INT PRIMARY KEY, reserved_size INT, actual_size INT);
ALTER TABLE infrastructure_groups OWNER TO {{ .Environment.Values.postgres.cgwUser.name }};
CREATE TABLE infras (mac MACADDR PRIMARY KEY, infra_group_id INT, FOREIGN KEY(infra_group_id) REFERENCES infrastructure_groups(id) ON DELETE CASCADE);
ALTER TABLE infras OWNER TO {{ .Environment.Values.postgres.cgwUser.name }};
- name: redis
namespace: {{ .Environment.Values.global.namespace }}
chart: oci://registry-1.docker.io/bitnamicharts/redis
version: 19.5.2
condition: redis.enabled
labels:
group: base
app: redis
values:
- architecture: standalone
- auth:
enabled: false
- master:
persistence:
size: 20Gi
extraEnvVars:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
- name: cgw
namespace: {{ .Environment.Values.global.namespace }}
chart: ../../openlan-cgw/helm
#chart: "git+https://github.com/Telecominfraproject/openlan-cgw@helm?ref=main"
version: 0.1.0
condition: cgw.enabled
labels:
group: apps
app: cgw
values:
- values/certs.tip.yaml
# this one is generated from GH secrets:
- values/certs.device.yaml
- images:
cgw:
tag: {{ .Environment.Values.cgw.tag }}
- public_env_variables:
CGW_DB_HOST: pgsql
CGW_DB_PORT: "5432"
CGW_DB_USERNAME: "{{ .Environment.Values.postgres.cgwUser.name }}"
CGW_KAFKA_HOST: kafka
CGW_KAFKA_PORT: "9092"
CGW_REDIS_HOST: redis-master
CGW_REDIS_PORT: "6379"
CGW_ALLOW_CERT_MISMATCH: "yes"
# use (#cpus * 2) - 2
DEFAULT_WSS_THREAD_NUM: "4"
# Useful for debugging:
#CGW_LOG_LEVEL: "debug"
#RUST_BACKTRACE: "full"
- secret_env_variables:
CGW_DB_PASSWORD: "{{ .Environment.Values.postgres.cgwUser.password }}"
- services:
cgw:
type: LoadBalancer
annotations:
external-dns.alpha.kubernetes.io/hostname: cgw-{{ .Environment.Values.global.name }}.{{ .Environment.Values.global.domain }}
#service.beta.kubernetes.io/aws-load-balancer-type: nlb-ip
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Environment.Values.global.certificateARN }}
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "15003"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16002"
alb.ingress.kubernetes.io/healthcheck-path: /health

6
cgw/mkcertconfig Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
echo "certs:"
for f in $* ; do
echo " $f: |"
sed -e 's/^/ /' < "$f"
done

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,21 @@
postgres:
pgUser:
password: ENC[AES256_GCM,data:QHV7Y5Jfes4=,iv:QTs0fu7behn1g2CLheoJROFHNYvN6OpS/vcQQC0NrMs=,tag:PeaRcoDsOrEjDN9KgHUEPA==,type:str]
cgwUser:
name: ENC[AES256_GCM,data:g6J6,iv:H4HxE5orLFXZFDDVD2tAS0PkOqNJ9j6SNu1ief7Snk0=,tag:Tuj9yjBcJzZBBZRtwAY33w==,type:str]
password: ENC[AES256_GCM,data:5K0f,iv:+g61dhYOOTbr8TwnwwLHgW17R+6zXpQT2PfgjvofvlI=,tag:1nSVXgkTC41d1AnDDE19Hg==,type:int]
sops:
kms:
- arn: arn:aws:kms:us-east-2:289708231103:alias/helm-secrets
created_at: "2024-06-12T13:45:13Z"
enc: AQICAHiG/4CitJjM31GdYxTw9OLz/Zs5oK+DCq0cU2fAjtAA3AEPrxIAaT+xE4C1IFYmWvmkAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMrFaPNxf0atKVKnFsAgEQgDu8uqj035qrcelG0Dq4/Ond4H5bmpUHNRVEj0C8BFxg+a4R3loIk4NBeyuA0yqC0cQeWnA5e+/SjVtGAA==
aws_profile: ""
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2024-06-25T17:29:15Z"
mac: ENC[AES256_GCM,data:gbXt2MRhlx9zGcm9ZvXjWuwSPh/QHkNngGx0j0UQ61jZTINRh4ZgERuUj7Vpo1tg/blIFWbl768wB89RAGq3n1C4AcQpX3xvC33QyCT0i4pitQmnec9RnJL0L197mioOikPxl8z56WE1014EV+Vvbk7rf1CQkqrrEIJINoqSdfE=,iv:ThbvKhY0fsaXJz9rORnvxY64vMWyM/IOgSI+kuFFbAQ=,tag:fSF4tdyf3wc5+uIfoYLc5g==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

103
cgw/values/certs.tip.yaml Normal file
View File

@@ -0,0 +1,103 @@
certs:
root.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
cas.pem: |
-----BEGIN CERTIFICATE-----
MIIEnDCCA4SgAwIBAgIUVpyCUx1MUeUwxg+7I1BvGFTz7HkwDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjUxMjZaFw0yNjA0MTMyMjM4NDZaMGwx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEpMCcGA1UEAxMgVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IElzc3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtKBrq
qd2aKVSk25KfL5xHu8X7/8rJrz3IvyPuVKWhk/N1zabot3suBcGaYNKjnRHxg78R
yKwKzajKYWtiQFqztu24g16LQeAnoUxZnF6a0z3JkkRPsz14A2y8TUhdEe1tx+UU
4VGsk3n+FMmOQHL+79FO57zQC1LwylgfLSltrI6mF3jowVUQvnwzKhUzT87AJ6EO
ndK/q0T/Bgi+aI39zfVOjJjsTJwghvrmYW3iarP1THSKxeib2s02bZKrvvHa5HL4
UI8+LvREpVZl4mzt1z6Nl344Y6f+UeJlYa/Ci0jJqaXJmyVnUbAz+c0i5JfwAVn3
YQzfC4eLnZCmdF8zAgMBAAGjggE3MIIBMzAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
DgQWBBSzG1S44EerPfM4gOQ85f0AYW3R6DAfBgNVHSMEGDAWgBQCRpZgebFT9qny
98WfIUDk6ZEB+jAOBgNVHQ8BAf8EBAMCAYYwgYMGCCsGAQUFBwEBBHcwdTAoBggr
BgEFBQcwAYYcaHR0cDovL29jc3Aub25lLmRpZ2ljZXJ0LmNvbTBJBggrBgEFBQcw
AoY9aHR0cDovL2NhY2VydHMub25lLmRpZ2ljZXJ0LmNvbS9UZWxlY29tSW5mcmFQ
cm9qZWN0Um9vdENBLmNydDBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vY3JsLm9u
ZS5kaWdpY2VydC5jb20vVGVsZWNvbUluZnJhUHJvamVjdFJvb3RDQS5jcmwwDQYJ
KoZIhvcNAQELBQADggEBAFbz+K94bHIkBMJqps0dApniUmOn0pO6Q6cGh47UP/kX
IiPIsnYgG+hqYD/qtsiqJhaWi0hixRWn38UmvZxMRk27aSTGE/TWx0JTC3qDGsSe
XkUagumbSfmS0ZyiTwMPeGAjXwyzGorqZWeA95eKfImntMiOf3E7//GK0K7HpCx8
IPCnLZsZD2q/mLyBsduImFIRQJbLAhwIxpcd1qYJk+BlGFL+HtBpEbq6JxW2Xy+v
DpNWc2WIsUTle0rTc9JNJrLX4ChUJmKqf8obKHap3Xh3//qw/jDB9pOAinA33FLJ
EmCnwBvQr9mfNmPBGMYZVU8cPruDQJ57GjmmvdisbJY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIUJdCMN900+sZN4pJmZ4SVd2KRNBowDQYJKoZIhvcNAQEL
BQAwDTELMAkGA1UEAwwCQ0EwHhcNMjQwNjEzMTc1ODMwWhcNMjUwNjEzMTc1ODMw
WjANMQswCQYDVQQDDAJDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ALHSZH2fO1ho8aETiRwJZw1dlzk4ny364TdfY35AfhocvCozxmoKTcT69RqMtUIM
dStOoHhRenKnEPKHF4SrgrebsYJeXysLVb3UMEkrV6I9sKeBbUq2neAAibv+Xq0X
KpgJM8ZSq3WugI7pJ9kRIrRbErm8FycIW+BhBTn5g/thBnwtBn0FJ4QpnBkl38bZ
vYoOp77oVSk42hijD56hJwyg9yVo4MbZRhpROkL8/rPrLXDfeM3yXKx+kvNCY01m
8IxGUMh/3UuU8wWXaGRIAcWapZpDrDaM8YdDdVfoIv6pqCU6zLhrDm2gyYABkM2q
VKNruHDvrcV6BT1ldW59RkRWWW8UqsIUYuvjHMBSgEijiCCmCcrNTdd1dg+9ycdU
p2ZHw4g5QwyGrosUMC34Hl7zz+Aj+gA3gBAyeX2Mg9E0WtDoX6as9fRZebP5fYwj
Qh4bjv3Rx+a68G8DrPE7CJAJHTmthgyjINLn8/RcPpo0MYh/r47Sy1+nWBCnibYZ
vKkDCsRjVd5mDwRAQE0YCEiissgNgVdV6LjW4pnkIsPlHpI15A7PiDRQEKHdmRYL
NaIQKrn6x7Tj+o9Bs3VEoyIR1qNEYuuRGeXgTRWT1QWGX+0oN5OMzkcEKtLzPRJR
wW+h5C+gyp2KB7pU3umk5pFMVPlT7hbAaCyzuhNWQL5fAgMBAAGjPDA6MAwGA1Ud
EwQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTEa33fF8DibprD2kyGKfts
+Gk2QTANBgkqhkiG9w0BAQsFAAOCAgEAjad+ygI3Cp5wFHyjc9cjkU5+6qQM8qXM
g6B9QAqbsejzBC2euFfkLKGPGTxyPoX5fjNGreMFu6bYVS4MdObMPfaEgUdJeTLA
t/FGw22/zJDsKceZDFvIGoW2BvyXbqKUXXzonhE1/OXSKI1Me5cJo8GqA8J97VGh
TooDNzNXjvOeMMXzvugoFtXGXey/4tus1S1pSYglW/rB/exhBgZVrW5ElOPqLeK4
QEiP90jD303Rhw7aogrMVMcQWQ8ONyBEuQdno8/Ypil4uQXh4kYbbhgbrzT6Ux4Y
x9KIGbydYkNlqU4M/B1GPDsOfYauJmDpMvoUxPTolaPbIhrPmONudbUZVnrSEgOo
NAREI2hWRTnsqb76ugQayr7UQCzX4gQ99UllDLuvoAsc45s2pY3fJlQHkhl1JkGw
YlB1lF22Z35aWxkhXaYJHvhtZpt0oJ9vN//JJveBPOSajNsVnY6MIk4numI30BlZ
YSKHKYrYvD1yR/MSCeKVGWqsWRGfFk2bZGFjVgdlusFrjZM8JNbZtTVnKzTdoDiW
BnVJcd552gsT2yhaIvBoqoq4ufVa1gDGM4qRz0dxTW7850Qp++iWHMbwXRoJ3dow
/vreJoe6yYx8dQDw/Adl8SNV5Uo0ws36VUI/Vkuj3vG2oMP0P5DSRVQIzKxZ8FM1
0bJQwZgh3Is=
-----END CERTIFICATE-----

View File

@@ -20,3 +20,7 @@
.idea/
*.tmproj
.vscode/
# Chart dependencies
docker/
environment-values/
feature-values/

View File

@@ -1,27 +0,0 @@
dependencies:
- name: owgw
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=master
version: 0.1.0
- name: owsec
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=main
version: 0.1.0
- name: owfms
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralfms@helm?ref=main
version: 0.1.0
- name: owprov
repository: git+https://github.com/Telecominfraproject/wlan-cloud-owprov@helm?ref=main
version: 0.1.0
- name: owgwui
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=main
version: 0.1.0
- name: owprovui
repository: git+https://github.com/Telecominfraproject/wlan-cloud-owprov-ui@helm?ref=main
version: 0.1.0
- name: rttys
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-rtty@chart?ref=main
version: 0.1.0
- name: kafka
repository: https://charts.bitnami.com/bitnami
version: 13.0.2
digest: sha256:3de20b44745484d6e2980d34b3d9e95c92b93537facb2a0bb62c75e583ef444f
generated: "2021-10-26T16:27:32.319129019+03:00"

View File

@@ -2,31 +2,49 @@ apiVersion: v2
name: openwifi
appVersion: "1.0"
description: A Helm chart for Kubernetes
version: 0.1.0
version: 3.2.0
dependencies:
- name: owgw
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=master"
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=v3.2.0"
version: 0.1.0
- name: owsec
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=main"
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=v3.2.0"
version: 0.1.0
- name: owfms
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralfms@helm?ref=main"
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralfms@helm?ref=v3.2.0"
version: 0.1.0
- name: owprov
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-owprov@helm?ref=main"
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-owprov@helm?ref=v3.2.0"
version: 0.1.0
- name: owanalytics
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-analytics@helm?ref=v3.2.0"
version: 0.1.0
- name: owgwui
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=main"
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=v3.2.0"
version: 0.1.0
- name: owprovui
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-owprov-ui@helm?ref=main"
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-owprov-ui@helm?ref=v3.2.0"
version: 0.1.0
- name: rttys
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-rtty@chart?ref=main"
- name: owsub
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-userportal@helm?ref=v3.2.0"
version: 0.1.0
condition: rttys.enabled
- name: owls
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-owls@helm?ref=main"
version: 0.1.0
condition: owls.enabled
- name: owlsui
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-owls-ui@helm?ref=master"
version: 0.1.0
condition: owlsui.enabled
- name: kafka
repository: https://charts.bitnami.com/bitnami
version: 13.0.2
repository: oci://registry-1.docker.io/bitnamicharts
version: 28.2.3
condition: kafka.enabled
- name: haproxy
repository: oci://registry-1.docker.io/bitnamicharts
version: 0.13.3
condition: haproxy.enabled
- name: postgresql
repository: oci://registry-1.docker.io/bitnamicharts
version: 13.4.3
condition: postgresql.enabled

View File

@@ -1,15 +1,70 @@
# openwifi
This Helm chart helps to deploy OpenWIFI Cloud SDK with all required dependencies to the Kubernetes clusters. Purpose of this chart is to setup correct connections between other microservices and other dependencies with correct Values and other charts as dependencies in [chart definition](Chart.yaml)
This Helm chart helps to deploy OpenWIFI Cloud SDK with all required dependencies to the Kubernetes clusters. The purpose of this chart is to set up the correct connections between other microservices and other dependencies with correct Values and other charts as dependencies in [chart definition](Chart.yaml)
## TL;DR;
[helm-git](https://github.com/aslafy-z/helm-git) is required for remote the installation as it pull charts from other repositories for the deployment, so intall it if you don't have it already.
[helm-git](https://github.com/aslafy-z/helm-git) is required for remote the installation as it pull charts from other repositories for the deployment, so install it if you don't have it already.
Using that you can deploy Cloud SDK with 2 setups - without TLS certificates for RESTAPI endpoints and with them.
In both cases Websocket endpoint should be exposed through LoadBalancer. In order to get IP address or DNS FQDN of that endpoint you may refer to `kubectl get svc | grep proxy | awk -F ' ' '{print $4}'`. Used port is 15002, but you would need to disable TLS check on AP side since certificate is issued for `*.wlan.local`.
### Deployment with TLS certificates
This deployment method requires usage of [cert-manager](https://cert-manager.io/docs/) (tested minimal Helm chart version is `v1.6.1`) in your Kubernetes installation in order to issue self-signed PKI for internal communication. In this case you will have to trust the self-signed certificates via your browser. Just like in previous method you still need OWGW Websocket TLS certificate, so you can use the same certificates with another values file using these commands:
```bash
$ helm install .
$ helm dependency update
$ kubectl create secret generic openwifi-certs --from-file=../docker-compose/certs/
$ helm upgrade --install -f environment-values/values.base.secure.yaml openwifi .
```
In order to access the UI and other RESTAPI endpoints you should run the following commands after the deployment:
```
$ kubectl port-forward deployment/proxy 5912 5913 16001 16002 16003 16004 16005 16006 16009 &
$ kubectl port-forward deployment/owgwui 8080:80 &
$ kubectl port-forward deployment/owprovui 8088:80 &
```
From here Web UI may be accessed using http://localhost:8080 and Provisioning UI may be accessed using http://localhost:8088 .
### Deployment without TLS certificates
**IMPORTANT** Currently this method is not available due to issues in current implementation on microservices side (not being able to use Web UI because of error on Websocket upgrade on OWGW connections), please use TLS method for now.
For this deployment method you will need to disable usage of TLS certificates, yet you will still need a TLS certificate for Websocket endpoint of OWGW. Here are the required steps for the deployment where websocket certificates from [docker-compose certs directory](../docker-compose/certs) and special values file to disable TLS for REST API endpoint will be used:
```bash
$ helm dependency update
$ kubectl create secret generic openwifi-certs --from-file=../docker-compose/certs/
$ helm upgrade --install -f environment-values/values.base.insecure.yaml openwifi .
```
In order to access the UI and other RESTAPI endpoints you should run the following commands after the deployment:
```
$ kubectl port-forward deployment/proxy 5912 5913 16001 16002 16003 16004 16005 16006 16009 &
$ kubectl port-forward deployment/owgwui 8080:80 &
$ kubectl port-forward deployment/owprovui 8088:80 &
```
From here Web UI may be accessed using http://localhost:8080 and Provisioning UI may be accessed using http://localhost:8088 .
During the requests through UI errors may happen - that means that you haven't added certificate exception in browser. In order to that open browser dev tools (F12), open Network tab and see what requests are failing, open them and accept the exceptions.
### Default password change
Then change the default password as described in [owsec docs](https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/tree/main#changing-default-password).
Values files passed in the installation is using default certificates that may be used for initial evaluation (same certificates are used in [docker-compose](../docker-compose/certs) method) using `*.wlan.local` domains. If you want to change those certificates, please set them in Helm values files instead of default certificates (see default values in `values.yaml` file).
If you are using default values without changing [OWSEC config properties](https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/939869948f77575ba0e92c0fb12f2197802ffe71/helm/values.yaml#L212-L213) in your values file, you may access the WebUI using following credentials:
> Username: tip@ucentral.com
> Password: openwifi
## Introduction
This chart bootstraps the OpenWIFI Cloud SDK on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
@@ -18,22 +73,38 @@ Current dependencies may be found in [chart definition](Chart.yaml) and list wil
## Installing the Chart
To install the chart with the release name `my-release`:
There are multiple ways to install this chart. Described commands will deploy the OpenWIFI Cloud SDK on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that will be overwritten above default values from dependent charts.
### Installation using local git repo
To install the chart from local git repo with the release name `my-release` you need to first update dependencies as it is required with dependencies deployed by helm-git:
```bash
$ helm install --name my-release git+https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/@chart?ref=main
$ helm dependency update
$ helm install .
```
The command deploys the OpenWIFI Cloud SDK on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that will be overwritten above default values from dependent charts.
### Installation using remote chart
> **Tip**: List all releases using `helm list`
If you need to update your release, it could be required to update your helm charts dependencies before installation:
To install the chart with the release name `my-release` you need to first update dependencies as it is required with dependencies deployed by helm-git:
```bash
helm dependency update
$ helm install --name my-release git+https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy@chart/openwifi-0.1.0.tgz?ref=main
```
### Installation using external repo
This approach requires adding external helm repo and new versions are build for every [release](https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/releases):
```bash
helm repo add tip-wlan https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
helm install my-release tip-wlan/openwifi
```
## Required password changing on the first startup
One important action that must be done before using the deployment is changing password for the default user in owsec as described in [owsec docs](https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/tree/main#changing-default-password). Please use these docs to find the actions that must be done **after** the deployment in order to start using your deployment.
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
@@ -52,20 +123,47 @@ The following table lists the configurable parameters that overrides microservic
|-----------|------|-------------|---------|
| `owgw.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Gateway to use Kafka for communication | `'true'` |
| `owgw.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Gateway to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `owgw.certs` | map | Map with multiline string containing TLS certificates and private keys required for service (see [OWGW repo](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/) for details) | |
| `owgw.certsCAs` | map | Map with multiline string containing TLS CAs required for service (see [OWGW repo](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/) for details) | |
| `owsec.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Security to use Kafka for communication | `'true'` |
| `owsec.certs` | map | Map with multiline string containing TLS certificates and private keys required for REST API | |
| `owsec.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Security to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `owfms.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Firmware to use Kafka for communication | `'true'` |
| `owfms.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Firmware to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `rttys.enabled` | boolean | Enables [rttys](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-rtty) deployment | `True` |
| `rttys.config.token` | string | Sets default rttys token | |
| `kafka.enabled` | boolean | Enables [kafka](https://github.com/bitnami/charts/blob/master/bitnami/kafka/) deployment | `True` |
| `owfms.certs` | map | Map with multiline string containing TLS certificates and private keys required for REST API | |
| `owprov.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Provisioning to use Kafka for communication | `'true'` |
| `owprov.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Provisioning to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `owprov.certs` | map | Map with multiline string containing TLS certificates and private keys required for REST API | |
| `owanalytics.enabled` | boolean | Install OpenWIFI Analytics in the release | `false` |
| `owanalytics.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Analytics to use Kafka for communication | `'true'` |
| `owanalytics.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Analytics to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `owanalytics.certs` | map | Map with multiline string containing TLS certificates and private keys required for REST API | |
| `owsub.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Subscription to use Kafka for communication | `'true'` |
| `owsub.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Subscription to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `owsub.certs` | map | Map with multiline string containing TLS certificates and private keys required for REST API | |
| `kafka.enabled` | boolean | Enables [kafka](https://github.com/bitnami/charts/blob/master/bitnami/kafka/) deployment | `true` |
| `kafka.fullnameOverride` | string | Overrides Kafka Kubernetes service name so it could be predictable and set in microservices configs | `'kafka'` |
| `kafka.image.registry` | string | Kafka Docker image registry | `'docker.io'` |
| `kafka.image.repository` | string | Kafka Docker image repository | `'bitnami/kafka'` |
| `kafka.image.tag` | string | Kafka Docker image tag | `'2.8.0-debian-10-r43'` |
| `kafka.minBrokerId` | number | Sets Kafka minimal broker ID (useful for multi-node Kafka installations) | `100` |
| `clustersysteminfo.enabled` | boolean | Enables post-install check that makes sure that all services are working correctly using systeminfo RESTAPI method | `false` |
| `clustersysteminfo.delay` | integer | Number of seconds to delay clustersysteminfo execution | `0` |
| `clustersysteminfo.public_env_variables` | hash | Map of public environment variables that will be passed to the script (required for configuration) | |
| `clustersysteminfo.secret_env_variables` | hash | Map of secret environment variables that will be passed to the script (for example, password) | |
| `clustersysteminfo.activeDeadlineSeconds` | integer | Number of seconds that are allowed for job to run before failing with Dealine Exceeded error | `2400` |
| `clustersysteminfo.backoffLimit` | integer | Number of jobs retries before job failure | `5` |
| `owls.enabled` | boolean | Install OpenWIFI Load Simulator in the release | `false` |
| `owls.configProperties."openwifi\.kafka\.enable"` | string | Configures OpenWIFI Load Simulator to use Kafka for communication | `'true'` |
| `owls.configProperties."openwifi\.kafka\.brokerlist"` | string | Sets up Kafka broker list for OpenWIFI Load Simulator to the predictable Kubernetes service name (see `kafka.fullnameOverride` option description for details) | `'kafka:9092'` |
| `owlsui.enabled` | boolean | Install OpenWIFI Load Simulator Web UI in the release | `false` |
| `haproxy.enabled` | boolean | Install HAproxy as a unified TCP proxy for services | `true` |
| `haproxy.replicaCount` | Integer | Amount of HAproxy pods to start | `3` |
| `restapiCerts.enabled` | boolean | Enable generation of self-signed certificates for REST API private endpoints (see details below) | `false` |
| `restapiCerts.services` | array | List of services that require certificates generation | |
| `restapiCerts.clusterDomain` | string | Kubernetes cluster domain | `cluster.local` |
If required, further overrides may be passed. They will be merged with default values from this chart and other subcharts with priority to values you'll pass.
If required, further overrides may be passed. They will be merged with default values from this chart and other sub-charts with priority to values you'll pass.
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
@@ -84,3 +182,88 @@ $ helm install --name my-release -f values.yaml .
```
> **Tip**: You can use the default [values.yaml](values.yaml) as a base for customization.
## Optional features
Some features of the SDK are not enabled by default, but you may enable them by changing your values file. Below you may find information about supported features and values that may be used as a base to enable these changes. As an example of used values you may check values files in [wlan-testing](https://github.com/Telecominfraproject/wlan-testing/tree/master/helm/ucentral) repository that are used for different automated testing pipelines.
If you want to enable different features, you may try passing additional values files using `-f` flag during `helm install/upgrade` commands.
### Cluster systeminfo check
By setting `clusterinfo.enabled` to `true` you may enable job on post-install/post-upgrade step that will do the following:
1. Change default security credentials from credentials set in OWSEC configuration file (see 'Required password changing on the first startup' block above)
2. Check if all services started responding correctly after the deployment using systeminfo REST API method
In order to do that, you need to additionally set multiple parameters:
1. clusterinfo.public_env_variables.OWSEC - OWSEC endpoint to use for CLI tools
2. clusterinfo.secret_env_variables.OWSEC_DEFAULT_USERNAME - username used for CLI requests (see OWSEC configuration file for details)
3. clusterinfo.secret_env_variables.OWSEC_DEFAULT_PASSWORD - default password stored in OWSEC configuration that is required for initial password change
4. clusterinfo.secret_env_variables.OWSEC_NEW_PASSWORD - new password that should be set instead of default OWSEC password. It is set only once, then used all the time. Password must comply https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/#authenticationvalidationexpression
If you are interested in script itself, see [script](https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/blob/main/chart/docker/clustersysteminfo).
You may see example values to enable this feature in [values.enable-clustersysteminfo.yaml](./feature-values/values.enable-clustersysteminfo.yaml).
### Load simulation
Chart also allows to install [OWLS](https://github.com/Telecominfraproject/wlan-cloud-owls) and [OWLS-UI](https://github.com/Telecominfraproject/wlan-cloud-owls-ui) alongside your installation if you are interested in load testing your installation. See services repositories for available options and configuration details.
You may see example values to enable this feature in [values.enable-owls.yaml](./feature-values/values.enable-owls.yaml).
### HAproxy
In order to use single point of entry for all services (may be used for one cloud Load Balancer per installation) HAproxy is installed by default with other services. HAproxy is working in TCP proxy mode, so every TLS certificate is managed by services themself, while it is possible to pass requests from cloud load balancer to services using same ports (configuration of cloud load balancer may vary from cloud provider to provider).
By default, this option is enabled, but you may disable it and make per-service LoadBalancer using values in [values.disable-haproxy.yaml](./feature-values/values.disable-haproxy.yaml).
### OWGW unsafe sysctls
By default, Linux is using quite adequate sysctl values for TCP keepalive, but OWGW may keep disconnected APs in stuck state preventing it from connecting back. This may be changed by setting some sysctls to lower values:
- net.ipv4.tcp_keepalive_intvl
- net.ipv4.tcp_keepalive_probes - 2
- net.ipv4.tcp_keepalive_time - 45
However, this change is [not considered safe by Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/#enabling-unsafe-sysctls), and it requires to pass additional argument to your Kubelets services in your Kubernetes cluster:
```
--allowed-unsafe-sysctls net.ipv4.tcp_keepalive_intvl,net.ipv4.tcp_keepalive_probes,net.ipv4.tcp_keepalive_time
```
After this change you may pass additional parameters to OWGW helm chart. You may see example values in [values.owgw-unsafe-sysctl.yaml](./feature-values/values.owgw-unsafe-sysctl.yaml)
### Private REST API cert-manager managed certificates
All services have 2 REST API endpoints - private and public one. Private endpoint is used for inter-service communication and should not be exposed to the world, but since it also requires TLS in order to work correctly, additional optional logic was implemented that allows to manage TLS certificates for such endpoints to be managed by [cert-manager](https://github.com/jetstack/cert-manager). In order to activate this feature following steps are required:
0. Install and configure [cert-manager](https://cert-manager.io/docs/) in your cluster
1. Enable option by setting `restapiCerts.enabled`
2. If you have a different Kubernetes cluster domain, adapt `restapiCerts.clusterDomain` to your cluster domain
3. Add additional parameters for services in order to mount certificates secrets in pods, use certificates by service and add public environment variable that will add cert-manager managed CA certificate to pod's trusted chain (see [OWGW docker-entrypoint.sh](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/docker-entrypoint.sh) as example of how it is done)
You may see example values to enable this feature in [values.restapi-certmanager-certs.yaml](./feature-values/values.restapi-certmanager-certs.yaml).
### Unsecure REST API endpoints
If you want, you may use configuration property `openwifi.security.restapi.disable=true` in order to disable TLS requirements on REST API endpoints which basically only requires OWGW Websocket TLS certificate in order to deploy the whole environment. If you will pass certificates into the container they will be ignored.
You may see example values to enable this feature in [values.restapi-disable-tls.yaml](./feature-values/values.restapi-disable-tls.yaml).
### PostgreSQL storage option for services
By default, all microservices use SQLite as default storage driver, but it is possible to use PostgreSQL for that purpose. Both [cluster-per-microservice](environment-values/values.openwifi-qa.external-db.yaml) and [cluster per installation](environment-values/values.openwifi-qa.single-external-db.yaml) deployments method may be used.
## Environment specific values
This repository contains values files that may be used in the same manner as feature values above to deploy to specific runtime environments (including different cloud deployments).
Some environments are using [external-dns](https://github.com/kubernetes-sigs/external-dns) service to dynamically set DNS records, but you may manage your records manually
### AWS EKS
EKS based installation assumes that you are using [AWS Load Balancer controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller) so that all required ALBs and NLBs are created automatically. Also, it is assumed that you have Route53 managed DNS zone, and you've issued wildcard certificate for one of your zones that may be used by Load Balancers.
You may see example values for this environment in [values.aws.yaml](./environment-values/values.aws.yaml).

View File

@@ -40,6 +40,25 @@ RUN git clone https://github.com/Telecominfraproject/wlan-cloud-owprov.git owpro
&& cp owprov/test_scripts/curl/cli owprov_cli \
&& rm -rf owprov
# OWAnalytics
ARG OWANALYTICS_VERSION=main
RUN git clone https://github.com/Telecominfraproject/wlan-cloud-analytics.git owanalytics \
&& cd owanalytics \
&& git checkout $OWANALYTICS_VERSION \
&& cd /cli \
&& cp owanalytics/test_scripts/curl/cli owanalytics_cli \
&& rm -rf owanalytics
# OWSub
ARG OWSUB_VERSION=main
RUN git clone https://github.com/Telecominfraproject/wlan-cloud-userportal.git owsub \
&& cd owsub \
&& git checkout $OWSUB_VERSION \
&& cd /cli \
&& cp owsub/test_scripts/curl/cli owsub_cli \
&& rm -rf owsub
COPY clustersysteminfo clustersysteminfo
COPY change_credentials change_credentials
ENTRYPOINT ["/cli/clustersysteminfo"]

68
chart/docker/change_credentials Executable file
View File

@@ -0,0 +1,68 @@
#!/bin/bash
# Constants
export DEFAULT_CHECK_RETRIES=10
# Usage function
usage () {
echo;
echo "- OWSEC - owsec endpoint to make requests to (i.e. openwifi.wlan.local:16001)";
echo "- OWSEC_DEFAULT_USERNAME - default owsec username from properties";
echo "- OWSEC_DEFAULT_PASSWORD - default owsec password (in cleartext) from properties";
echo "- OWSEC_NEW_PASSWORD - new owsec password (in cleartext) that should be set for login";
}
# Check if required environment variables were passed
## Login specifics
[ -z ${OWSEC+x} ] && echo "OWSEC is unset" && usage && exit 1
[ -z ${OWSEC_DEFAULT_USERNAME+x} ] && echo "OWSEC_DEFAULT_USERNAME is unset" && usage && exit 1
[ -z ${OWSEC_DEFAULT_PASSWORD+x} ] && echo "OWSEC_DEFAULT_PASSWORD is unset" && usage && exit 1
[ -z ${OWSEC_NEW_PASSWORD+x} ] && echo "OWSEC_NEW_PASSWORD is unset" && usage && exit 1
# Check credentials
export result_file=result.json
# Try logging in with default credentials
payload="{ \"userId\" : \"${OWSEC_DEFAULT_USERNAME}\" , \"password\" : \"${OWSEC_DEFAULT_PASSWORD}\" }"
curl ${FLAGS} -X POST "https://${OWSEC}/api/v1/oauth2" \
-H "Content-Type: application/json" \
-d "$payload" > ${result_file}
errorCode=$(cat ${result_file} | jq -r '.ErrorCode')
# If ErrorCode == 1, we must change password
if [[ "${errorCode}" == "1" ]]
then
payload="{ \"userId\" : \"${OWSEC_DEFAULT_USERNAME}\" , \"password\" : \"${OWSEC_DEFAULT_PASSWORD}\", \"newPassword\" : \"${OWSEC_NEW_PASSWORD}\" }"
curl ${FLAGS} -X POST "https://${OWSEC}/api/v1/oauth2" \
-H "Content-Type: application/json" \
-d "$payload" > ${result_file}
# Check if password was changed correctly
token=$(cat ${result_file} | jq -r '.access_token')
if [[ "${token}" == "null" ]] || [[ "${token}" == "" ]] || [[ ! -s ${result_file} ]]
then
echo "Could not change credentials:"
jq < ${result_file}
exit 1
else
echo "Login credentials were changed:"
fi
# If ErrorCode == 2 then new credentials were applied already OR user was deleted OR credentials are wrong
elif [[ "${errorCode}" == "2" ]]
then
# Let's try logging in using new credentials
payload="{ \"userId\" : \"${OWSEC_DEFAULT_USERNAME}\" , \"password\" : \"${OWSEC_NEW_PASSWORD}\" }"
curl ${FLAGS} -X POST "https://${OWSEC}/api/v1/oauth2" \
-H "Content-Type: application/json" \
-d "$payload" > ${result_file}
token=$(cat ${result_file} | jq -r '.access_token')
# TODO check if there are any response
if [[ "${token}" == "null" ]] || [[ "${token}" == "" ]] || [[ ! -s ${result_file} ]]
then
echo "Could not login with new credentials. Probably new login credentials are wrong OR user was deleted. Since we cannot check if user is really deleted, skipping this issue:"
else
echo "Logged in with new credentials:"
fi
else
echo "Credentials check failed with unexpected ErrorCode, please review the response body:"
jq < ${result_file}
exit 2
fi
jq < ${result_file}

View File

@@ -1,56 +1,21 @@
#!/bin/bash
if [[ "$(which jq)" == "" ]]
then
echo "You need the package jq installed to use this script."
exit 1
fi
# Constants
export DEFAULT_CHECK_RETRIES=30
if [[ "$(which curl)" == "" ]]
then
echo "You need the package curl installed to use this script."
exit 1
fi
# Check dependencies
[[ "$(which jq)" == "" ]] && echo "You need the package jq installed to use this script." && exit 1
[[ "$(which curl)" == "" ]] && echo "You need the package curl installed to use this script." && exit 1
if [[ "${OWSEC}" == "" ]]
then
echo "You must set the variable OWSEC in order to use this script. Something like"
echo "OWSEC=security.isp.com:16001"
exit 1
fi
# Check if required environment variables were passed
[[ -z ${OWSEC+x} ]] && echo "You must set the variable OWSEC in order to use this script. Something like" && echo "OWSEC=security.isp.com:16001" && exit 1
[[ -z ${OWSEC_DEFAULT_USERNAME+x} ]] && echo "You must set the variable OWSEC_DEFAULT_USERNAME in order to use this script. Something like" && echo "OWSEC_DEFAULT_USERNAME=tip@ucentral.com" && exit 1
[[ -z ${OWSEC_DEFAULT_PASSWORD+x} ]] && echo "You must set the variable OWSEC_DEFAULT_PASSWORD in order to use this script. Something like" && echo "OWSEC_DEFAULT_PASSWORD=openwifi" && exit 1
[[ -z ${OWSEC_NEW_PASSWORD+x} ]] && echo "You must set the variable OWSEC_NEW_PASSWORD in order to use this script. Something like" && echo "OWSEC_NEW_PASSWORD=NewPass123%" && exit 1
if [[ "${OWSEC_USERNAME}" == "" ]]
then
echo "You must set the variable OWSEC_USERNAME in order to use this script. Something like"
echo "OWSEC_USERNAME=tip@ucentral.com"
exit 1
fi
if [[ "${OWSEC_PASSWORD}" == "" ]]
then
echo "You must set the variable OWSEC_PASSWORD in order to use this script. Something like"
echo "OWSEC_PASSWORD=openwifi"
exit 1
fi
if [[ "${CHECK_RETRIES}" == "" ]] && [[ "${CHECK_RETRIES}" -eq "${CHECK_RETRIES}" ]]
then
echo "Environment variable CHECK_RETRIES is not set or is not number, setting it to the default value "
export CHECK_RETRIES=10
fi
# Adapt scripts for the security credentials
# -> Username
sed '/^username/s/username=.*/username="'$OWSEC_USERNAME'"/' owsec_cli -i
sed '/^username/s/username=.*/username="'$OWSEC_USERNAME'"/' owgw_cli -i
sed '/^username/s/username=.*/username="'$OWSEC_USERNAME'"/' owfms_cli -i
sed '/^username/s/username=.*/username="'$OWSEC_USERNAME'"/' owprov_cli -i
# -> Password
sed '/^password/s/password=.*/password="'$OWSEC_PASSWORD'"/' owsec_cli -i
sed '/^password/s/password=.*/password="'$OWSEC_PASSWORD'"/' owgw_cli -i
sed '/^password/s/password=.*/password="'$OWSEC_PASSWORD'"/' owfms_cli -i
sed '/^password/s/password=.*/password="'$OWSEC_PASSWORD'"/' owprov_cli -i
[[ "${CHECK_RETRIES}" == "" ]] && [[ "${CHECK_RETRIES}" -eq "${CHECK_RETRIES}" ]] && echo "Environment variable CHECK_RETRIES is not set or is not number, setting it to the default value (${DEFAULT_CHECK_RETRIES})" && export CHECK_RETRIES=$DEFAULT_CHECK_RETRIES
# Make sure owsec is resolvable
export OWSEC_FQDN=$(echo $OWSEC | awk -F ':' '{print $1}')
echo "Waiting for OWSEC FQDN ($OWSEC_FQDN) to be resolvable"
exit_code=1
@@ -58,24 +23,35 @@ until [[ "$exit_code" -eq "0" ]]
do
getent hosts $OWSEC_FQDN
exit_code=$?
sleep 1
done
echo
echo "Waiting for OWSEC to be ready to respond to systeminfo requests"
exit_code_sum=1
until [[ "$exit_code_sum" -eq "0" ]]
# Change/check password for owsec AND set owsec credentials
export CHANGE_CHECK_RETRIES=${CHECK_RETRIES}
until ./change_credentials || [[ "${CHANGE_CHECK_RETRIES}" -eq "0" ]]
do
exit_code_sum=0
./owsec_cli systeminfo
let "exit_code_sum+=$?"
if [[ ! -s result.json ]]
then
let "exit_code_sum+=1"
fi
let "exit_code_sum+=$(grep ErrorCode result.json | wc -l)"
echo "Change/check failed"
let "CHANGE_CHECK_RETRIES-=1"
echo "Retries left - $CHANGE_CHECK_RETRIES"
echo
sleep 5
done
echo
if [[ "$ONLY_CHANGE_CREDENTIALS" == "true" ]]; then
echo "Flag ONLY_CHANGE_CREDENTIALS was set to true, exiting without services checks";
exit 0
fi
if [[ "${CHANGE_CHECK_RETRIES}" -eq "0" ]]
then
echo "Run out of retries to change/check login credentials"
exit 3
fi
# Prepare security credentials for cli usage
export OWSEC_USERNAME=${OWSEC_DEFAULT_USERNAME}
export OWSEC_PASSWORD=${OWSEC_NEW_PASSWORD}
echo "Running systeminfo checks for all components until all of them are available OR check tries are exausted ($CHECK_RETRIES)"
exit_code_sum=1
@@ -118,6 +94,24 @@ do
let "exit_code_sum+=$(grep ErrorCode result.json | wc -l)"
sleep 1
./owanalytics_cli systeminfo
let "exit_code_sum+=$?"
if [[ ! -s result.json ]]
then
let "exit_code_sum+=1"
fi
let "exit_code_sum+=$(grep ErrorCode result.json | wc -l)"
sleep 1
./owsub_cli systeminfo
let "exit_code_sum+=$?"
if [[ ! -s result.json ]]
then
let "exit_code_sum+=1"
fi
let "exit_code_sum+=$(grep ErrorCode result.json | wc -l)"
sleep 1
let "CHECK_RETRIES-=1"
echo "Exit code sum: $exit_code_sum"
echo "Left retries: $CHECK_RETRIES"

3
chart/environment-values/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
_values.custom-*.yaml
certs/
env_*

View File

@@ -0,0 +1,15 @@
#!/bin/bash
[ -z "$NAMESPACE" ] && echo "No NAMESPACE set" && exit 1
ns="openwifi-$NAMESPACE"
echo "Cleaning up namespace $ns in 10 seconds..."
sleep 10
echo "- delete tip-openwifi helm release in $ns"
helm -n "$ns" delete tip-openwifi
if [[ "$1" == "full" ]] ; then
echo "- delete $ns namespace in 30 seconds..."
sleep 30
echo "- delete $ns namespace"
kubectl delete ns "$ns"
fi
echo "- cleaned up $ns namespace"
exit 0

View File

@@ -0,0 +1,188 @@
#!/bin/bash
set -e
# Usage function
function usage()
{
cat <<-EOF >&2
This script is intended for OpenWIFI Cloud SDK deployment to TIP QA/Dev environments using assembly Helm chart (https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/tree/main/chart) with configuration through environment variables
Required environment variables:
- NAMESPACE - namespace suffix that will used added for the Kubernetes environment (i.e. if you pass 'test', kubernetes namespace will be named 'ucentral-test')
- DEPLOY_METHOD - deployment method for the chart deployment (supported methods - 'git' (will use helm-git from assembly chart), 'bundle' (will use chart stored in the Artifactory) or local
- CHART_VERSION - version of chart to be deployed from assembly chart (for 'git' method git ref may be passed, for 'bundle' method version of chart may be passed)
- VALUES_FILE_LOCATION - path to file with override values that may be used for deployment
- DOMAIN - Domain name. default: cicd.lab.wlan.tip.build
- OWGW_AUTH_USERNAME - username to be used for requests to OpenWIFI Security
- OWGW_AUTH_PASSWORD - hashed password for OpenWIFI Security (details on this may be found in https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/#authenticationdefaultpassword)
- OWFMS_S3_SECRET - secret key that is used for OpenWIFI Firmware access to firmwares S3 bucket
- OWFMS_S3_KEY - access key that is used for OpenWIFI Firmware access to firmwares S3 bucket
- OWSEC_NEW_PASSWORD - password that should be set to default user instead of default password from properties
- CERT_LOCATION - path to certificate in PEM format that will be used for securing all endpoint in all services
- KEY_LOCATION - path to private key in PEM format that will be used for securing all endpoint in all services
The following environmnet variables may be passed, but will be ignored if CHART_VERSION is set to release (i.e. v2.4.0):
- OWGW_VERSION - OpenWIFI Gateway version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWGWUI_VERSION - OpenWIFI Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWSEC_VERSION - OpenWIFI Security version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWFMS_VERSION - OpenWIFI Firmware version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWPROV_VERSION - OpenWIFI Provisioning version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWPROVUI_VERSION - OpenWIFI Provisioning Web UI version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWANALYTICS_VERSION - OpenWIFI Analytics version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
- OWSUB_VERSION - OpenWIFI Subscription (Userportal) version to deploy (will be used for Docker image tag and git branch for Helm chart if git deployment is required)
Optional environment variables:
- EXTRA_VALUES - extra values that should be passed to Helm deployment separated by comma (,)
- DEVICE_CERT_LOCATION - path to certificate in PEM format that will be used for load simulator
- DEVICE_KEY_LOCATION - path to private key in PEM format that will be used for load simulator
- USE_SEPARATE_OWGW_LB - flag that should change split external DNS for OWGW and other services
- INTERNAL_RESTAPI_ENDPOINT_SCHEMA - what schema to use for internal RESTAPI endpoints (https by default)
- IPTOCOUNTRY_IPINFO_TOKEN - token that should be set for IPInfo support (owgw/owprov iptocountry.ipinfo.token properties), ommited if not passed
- MAILER_USERNAME - SMTP username used for OWSEC mailer
- MAILER_PASSWORD - SMTP password used for OWSEC mailer (only if both MAILER_PASSWORD and MAILER_USERNAME are set, mailer will be enabled)
- CERTIFICATE_ARN - Certificate ARN (will default to ap-south-1 certificate ARN)
EOF
}
# Global variables
VALUES_FILE_LOCATION_SPLITTED=()
EXTRA_VALUES_SPLITTED=()
DEF_CERT_ARN="arn:aws:acm:ap-south-1:289708231103:certificate/2cc8c764-11fd-411d-bf7d-a93f488f3f6c"
# Helper functions
function check_if_chart_version_is_release()
{
[[ "$CHART_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+ ]]
}
# Check if required environment variables were passed
## Deployment specifics
[ -z ${DEPLOY_METHOD+x} ] && echo "DEPLOY_METHOD is unset" >&2 && usage && exit 1
[ -z ${CHART_VERSION+x} ] && echo "CHART_VERSION is unset" >&2 && usage && exit 1
if [[ "$DEPLOY_METHOD" != "local" ]] ; then
if check_if_chart_version_is_release ; then
echo "Chart version ($CHART_VERSION) is a release version, ignoring services versions"
else
echo "Chart version ($CHART_VERSION) is not a release version, checking if services versions are set"
[ -z ${OWGW_VERSION+x} ] && echo "OWGW_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWGWUI_VERSION+x} ] && echo "OWGWUI_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWSEC_VERSION+x} ] && echo "OWSEC_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWFMS_VERSION+x} ] && echo "OWFMS_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWPROV_VERSION+x} ] && echo "OWPROV_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWPROVUI_VERSION+x} ] && echo "OWPROVUI_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWANALYTICS_VERSION+x} ] && echo "OWANALYTICS_VERSION is unset" >&2 && usage && exit 1
[ -z ${OWSUB_VERSION+x} ] && echo "OWSUB_VERSION is unset" >&2 && usage && exit 1
fi
fi
## Environment specifics
[ -z ${NAMESPACE+x} ] && echo "NAMESPACE is unset" >&2 && usage && exit 1
## Variables specifics
[ -z ${VALUES_FILE_LOCATION+x} ] && echo "VALUES_FILE_LOCATION is unset" >&2 && usage && exit 1
[ -z ${OWGW_AUTH_USERNAME+x} ] && echo "OWGW_AUTH_USERNAME is unset" >&2 && usage && exit 1
[ -z ${OWGW_AUTH_PASSWORD+x} ] && echo "OWGW_AUTH_PASSWORD is unset" >&2 && usage && exit 1
[ -z ${OWFMS_S3_SECRET+x} ] && echo "OWFMS_S3_SECRET is unset" >&2 && usage && exit 1
[ -z ${OWFMS_S3_KEY+x} ] && echo "OWFMS_S3_KEY is unset" >&2 && usage && exit 1
[ -z ${OWSEC_NEW_PASSWORD+x} ] && echo "OWSEC_NEW_PASSWORD is unset" >&2 && usage && exit 1
[ -z ${CERT_LOCATION+x} ] && echo "CERT_LOCATION is unset" >&2 && usage && exit 1
[ -z ${KEY_LOCATION+x} ] && echo "KEY_LOCATION is unset" >&2 && usage && exit 1
[ -z ${DEVICE_CERT_LOCATION+x} ] && echo "DEVICE_CERT_LOCATION is unset, setting it to CERT_LOCATION" && export DEVICE_CERT_LOCATION=$CERT_LOCATION
[ -z ${DEVICE_KEY_LOCATION+x} ] && echo "DEVICE_KEY_LOCATION is unset, setting it to KEY_LOCATION" && export DEVICE_KEY_LOCATION=$KEY_LOCATION
[ -z ${INTERNAL_RESTAPI_ENDPOINT_SCHEMA+x} ] && echo "INTERNAL_RESTAPI_ENDPOINT_SCHEMA is unset, setting it to 'https'" && export INTERNAL_RESTAPI_ENDPOINT_SCHEMA=https
[ -z ${USE_SEPARATE_OWGW_LB+x} ] && echo "USE_SEPARATE_OWGW_LB is unset, setting it to false" && export USE_SEPARATE_OWGW_LB=false
export MAILER_ENABLED="false"
[ ! -z ${MAILER_USERNAME+x} ] && [ ! -z ${MAILER_PASSWORD+x} ] && echo "MAILER_USERNAME and MAILER_PASSWORD are set, mailer will be enabled" && export MAILER_ENABLED="true"
[ -z "${DOMAIN}" ] && echo "DOMAIN is unset, using cicd.lab.wlan.tip.build" && export DOMAIN="cicd.lab.wlan.tip.build"
[ -z ${CERTIFICATE_ARN+x} ] && export CERTIFICATE_ARN=$DEF_CERT_ARN
# Transform some environment variables
export OWGW_VERSION_TAG=$(echo ${OWGW_VERSION} | tr '/' '-')
export OWGWUI_VERSION_TAG=$(echo ${OWGWUI_VERSION} | tr '/' '-')
export OWSEC_VERSION_TAG=$(echo ${OWSEC_VERSION} | tr '/' '-')
export OWFMS_VERSION_TAG=$(echo ${OWFMS_VERSION} | tr '/' '-')
export OWPROV_VERSION_TAG=$(echo ${OWPROV_VERSION} | tr '/' '-')
export OWPROVUI_VERSION_TAG=$(echo ${OWPROVUI_VERSION} | tr '/' '-')
export OWANALYTICS_VERSION_TAG=$(echo ${OWANALYTICS_VERSION} | tr '/' '-')
export OWSUB_VERSION_TAG=$(echo ${OWSUB_VERSION} | tr '/' '-')
# Check deployment method that's required for this environment
helm plugin install https://github.com/databus23/helm-diff || true
if [[ "$DEPLOY_METHOD" == "git" ]] ; then
helm plugin list | grep "^helm-git" || helm plugin install https://github.com/aslafy-z/helm-git || true
rm -rf wlan-cloud-ucentral-deploy || true
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy.git
cd wlan-cloud-ucentral-deploy
git checkout $CHART_VERSION
cd chart
if ! check_if_chart_version_is_release ; then
sed -i '/wlan-cloud-ucentralgw@/s/ref=.*/ref='${OWGW_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-ucentralgw-ui@/s/ref=.*/ref='${OWGWUI_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-ucentralsec@/s/ref=.*/ref='${OWSEC_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-ucentralfms@/s/ref=.*/ref='${OWFMS_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-owprov@/s/ref=.*/ref='${OWPROV_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-owprov-ui@/s/ref=.*/ref='${OWPROVUI_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-analytics@/s/ref=.*/ref='${OWANALYTICS_VERSION}'\"/g' Chart.yaml
sed -i '/wlan-cloud-userportal@/s/ref=.*/ref='${OWSUB_VERSION}'\"/g' Chart.yaml
fi
#helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update
[ -z "$SKIP_DEPS" ] && helm dependency update
cd ../..
export DEPLOY_SOURCE="wlan-cloud-ucentral-deploy/chart"
elif [[ "$DEPLOY_METHOD" == "bundle" ]] ; then
helm repo add tip-wlan-cloud-ucentral-helm https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/ || true
export DEPLOY_SOURCE="tip-wlan-cloud-ucentral-helm/openwifi --version $CHART_VERSION"
elif [[ "$DEPLOY_METHOD" == "local" ]] ; then
export DEPLOY_SOURCE=".."
pushd ..
[ -z "$SKIP_DEPS" ] && helm dependency update
popd
else
echo "Deploy method is not correct: $DEPLOY_METHOD. Valid values: git, bundle or local" >&2
exit 1
fi
VALUES_FILES_FLAGS=()
IFS=',' read -ra VALUES_FILE_LOCATION_SPLITTED <<< "$VALUES_FILE_LOCATION"
for VALUE_FILE in ${VALUES_FILE_LOCATION_SPLITTED[*]}; do
VALUES_FILES_FLAGS+=("-f" $VALUE_FILE)
done
EXTRA_VALUES_FLAGS=()
IFS=',' read -ra EXTRA_VALUES_SPLITTED <<< "$EXTRA_VALUES"
for EXTRA_VALUE in ${EXTRA_VALUES_SPLITTED[*]}; do
EXTRA_VALUES_FLAGS+=("--set" $EXTRA_VALUE)
done
if [[ "$USE_SEPARATE_OWGW_LB" == "true" ]] ; then
export HAPROXY_SERVICE_DNS_RECORDS="sec-${NAMESPACE}.${DOMAIN},fms-${NAMESPACE}.${DOMAIN},prov-${NAMESPACE}.${DOMAIN},analytics-${NAMESPACE}.${DOMAIN},sub-${NAMESPACE}.${DOMAIN}"
export OWGW_SERVICE_DNS_RECORDS="gw-${NAMESPACE}.${DOMAIN}"
else
export HAPROXY_SERVICE_DNS_RECORDS="gw-${NAMESPACE}.${DOMAIN},sec-${NAMESPACE}.${DOMAIN},fms-${NAMESPACE}.${DOMAIN},prov-${NAMESPACE}.${DOMAIN},analytics-${NAMESPACE}.${DOMAIN},sub-${NAMESPACE}.${DOMAIN}"
export OWGW_SERVICE_DNS_RECORDS=""
fi
envsubst < values.custom.tpl.yaml > _values.custom-${NAMESPACE}.yaml
helm upgrade --install --create-namespace --wait --timeout 60m \
--namespace openwifi-${NAMESPACE} \
${VALUES_FILES_FLAGS[*]} \
${EXTRA_VALUES_FLAGS[*]} \
-f _values.custom-${NAMESPACE}.yaml \
--set-file owgw.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owgw.certs."restapi-key\.pem"=$KEY_LOCATION \
--set-file owgw.certs."websocket-cert\.pem"=$CERT_LOCATION \
--set-file owgw.certs."websocket-key\.pem"=$KEY_LOCATION \
--set-file owsec.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owsec.certs."restapi-key\.pem"=$KEY_LOCATION \
--set-file owfms.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owfms.certs."restapi-key\.pem"=$KEY_LOCATION \
--set-file owprov.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owprov.certs."restapi-key\.pem"=$KEY_LOCATION \
--set-file owls.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owls.certs."restapi-key\.pem"=$KEY_LOCATION \
--set-file owls.certs."device-cert\.pem"=$DEVICE_CERT_LOCATION \
--set-file owls.certs."device-key\.pem"=$DEVICE_KEY_LOCATION \
--set-file owanalytics.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owanalytics.certs."restapi-key\.pem"=$KEY_LOCATION \
--set-file owsub.certs."restapi-cert\.pem"=$CERT_LOCATION \
--set-file owsub.certs."restapi-key\.pem"=$KEY_LOCATION \
tip-openwifi $DEPLOY_SOURCE

View File

@@ -0,0 +1,105 @@
# TODO adapt config for your environments - change FQDNs, certificates and security credentials
owgw:
configProperties: # TODO change FQDNs
openwifi.fileuploader.host.0.name: gw.cicd.lab.wlan.tip.build
openwifi.system.uri.public: https://gw.cicd.lab.wlan.tip.build:16002
openwifi.system.uri.private: https://gw.cicd.lab.wlan.tip.build:17002
openwifi.system.uri.ui: https://webui.cicd.lab.wlan.tip.build
rtty.server: rtty.cicd.lab.wlan.tip.build
owgwui:
services:
owgwui:
type: NodePort
ingresses:
default:
enabled: true
className: alb
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/group.name: wlan-cicd
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-south-1:289708231103:certificate/2cc8c764-11fd-411d-bf7d-a93f488f3f6c
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_302"}}'
external-dns.alpha.kubernetes.io/hostname: webui.cicd.lab.wlan.tip.build # TODO change FQDN
paths:
- path: /*
serviceName: owgwui
servicePort: http
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://sec.cicd.lab.wlan.tip.build:16001 # TODO change to OWSEC RESTAPI url
owsec:
configProperties: # TODO change FQDNs and credentials
authentication.default.username: tip@ucentral.com
authentication.default.password: TOFILL # TODO change password to default hashed password (see OWSEC readme for details)
openwifi.system.uri.public: https://sec.cicd.lab.wlan.tip.build:16001
openwifi.system.uri.private: https://sec.cicd.lab.wlan.tip.build:17001
openwifi.system.uri.ui: https://webui.cicd.lab.wlan.tip.build
owfms:
configProperties: # TODO change FQDNs and credentials
s3.key: TOFILL # TODO change these values to S3 credentials to get firmwares from bucket
s3.secret: TOFILL
# TODO uncomment and change these values if you are using your own S3 bucket with firmwares
#s3.bucketname: ucentral-ap-firmware
#s3.region: us-east-1
#s3.bucket.uri: ucentral-ap-firmware.s3.amazonaws.com
openwifi.system.uri.public: https://fms.cicd.lab.wlan.tip.build:16004
openwifi.system.uri.private: https://fms.cicd.lab.wlan.tip.build:17004
openwifi.system.uri.ui: https://webui.cicd.lab.wlan.tip.build
owprov:
configProperties: # TODO change FQDNs
openwifi.system.uri.public: https://prov.cicd.lab.wlan.tip.build:16005
openwifi.system.uri.private: https://prov.cicd.lab.wlan.tip.build:17005
openwifi.system.uri.ui: https://webui.cicd.lab.wlan.tip.build
owprovui:
services:
owprovui:
type: NodePort
ingresses:
default:
enabled: true
className: alb
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/group.name: wlan-cicd
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-south-1:289708231103:certificate/2cc8c764-11fd-411d-bf7d-a93f488f3f6c
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_302"}}'
external-dns.alpha.kubernetes.io/hostname: provui.cicd.lab.wlan.tip.build # TODO change FQDN
paths:
- path: /*
serviceName: owprovui
servicePort: http
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://sec.cicd.lab.wlan.tip.build:16001 # TODO change to OWSEC RESTAPI url
owsub:
configProperties: # TODO change FQDNs
openwifi.system.uri.public: https://sub.cicd.lab.wlan.tip.build:16007
openwifi.system.uri.private: https://sub.cicd.lab.wlan.tip.build:17007
openwifi.system.uri.ui: https://webui.cicd.lab.wlan.tip.build
owanalytics:
configProperties: # TODO change FQDNs
openwifi.system.uri.public: https://analytics.cicd.lab.wlan.tip.build:16009
openwifi.system.uri.private: https://analytics.cicd.lab.wlan.tip.build:17009
openwifi.system.uri.ui: https://webui.cicd.lab.wlan.tip.build
haproxy:
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "8080"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16004,17004,16002,16003,17002,16005,17005,16001,17001,5912,5913,16009,16007"
service.beta.kubernetes.io/aws-load-balancer-type: nlb-ip
external-dns.alpha.kubernetes.io/hostname: "gw.cicd.lab.wlan.tip.build,sec.cicd.lab.wlan.tip.build,fms.cicd.lab.wlan.tip.build,prov.cicd.lab.wlan.tip.build,rtty.cicd.lab.wlan.tip.build,sub.cicd.lab.wlan.tip.build,analytics.cicd.lab.wlan.tip.build" # TODO change FQDNs

View File

@@ -0,0 +1,95 @@
owgw:
existingCertsSecret: openwifi-certs
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.public: http://localhost:16002
openwifi.system.uri.private: http://owgw-owgw:17002
openwifi.system.uri.ui: http://localhost
owsec:
existingCertsSecret: openwifi-certs
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.public: http://localhost:16001
openwifi.system.uri.private: http://owsec-owsec:17001
openwifi.system.uri.ui: http://localhost
owfms:
existingCertsSecret: openwifi-certs
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.public: http://localhost:16004
openwifi.system.uri.private: http://owfms-owfms:17004
openwifi.system.uri.ui: http://localhost
owprov:
existingCertsSecret: openwifi-certs
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.public: http://localhost:16005
openwifi.system.uri.private: http://owprov-owprov:17005
openwifi.system.uri.ui: http://localhost
owanalytics:
existingCertsSecret: openwifi-certs
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.public: http://localhost:16009
openwifi.system.uri.private: http://owanalytics-owanalytics:17009
openwifi.system.uri.ui: http://localhost
owsub:
existingCertsSecret: openwifi-certs
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.public: http://localhost:16006
openwifi.system.uri.private: http://owsub-owsub:17006
openwifi.system.uri.ui: http://localhost
owgwui:
public_env_variables:
REACT_APP_UCENTRALSEC_URL: http://localhost:16001
owprovui:
public_env_variables:
REACT_APP_UCENTRALSEC_URL: http://localhost:16001
kafka:
volumePermissions:
enabled: true
commonAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
readinessProbe:
initialDelaySeconds: 45
livenessProbe:
initialDelaySeconds: 60
kraft:
enabled: true
heapOpts: -Xmx1024m -Xms1024m
zookeeper:
enabled: false
controller:
replicaCount: 1
extraConfig: |-
maxMessageBytes = 1048588
offsets.topic.replication.factor = 1
transaction.state.log.replication.factor = 1
extraEnvVars:
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
listeners:
client:
protocol: PLAINTEXT
containerPort: 9092
controller:
protocol: "PLAINTEXT"
broker:
persistence:
size: 20Gi
replicaCount: 0

View File

@@ -0,0 +1,351 @@
owgw:
public_env_variables:
SELFSIGNED_CERTS: "true"
existingCertsSecret: openwifi-certs
configProperties:
openwifi.system.uri.public: https://localhost:16002
openwifi.system.uri.private: https://owgw-owgw:17002
openwifi.system.uri.ui: http://localhost:8443
openwifi.internal.restapi.host.0.rootca: $OWGW_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWGW_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWGW_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWGW_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWGW_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWGW_ROOT/certs/restapi-certs/tls.key
volumes:
owgw:
- name: config
mountPath: /owgw-data/owgw.properties
subPath: owgw.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-config
- name: certs
mountPath: /owgw-data/certs
volumeDefinition: |
secret:
secretName: {{ if .Values.existingCertsSecret }}{{ .Values.existingCertsSecret }}{{ else }}{{ include "owgw.fullname" . }}-certs{{ end }}
- name: certs-cas
mountPath: /owgw-data/certs/cas
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-certs-cas
- name: persist
mountPath: /owgw-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owgw.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owgw-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-owgw-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-owgw-restapi-tls
owsec:
public_env_variables:
SELFSIGNED_CERTS: "true"
existingCertsSecret: openwifi-certs
configProperties:
openwifi.system.uri.public: https://localhost:16001
openwifi.system.uri.private: https://owsec-owsec:17001
openwifi.system.uri.ui: http://localhost:8080
openwifi.internal.restapi.host.0.rootca: $OWSEC_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWSEC_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWSEC_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWSEC_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWSEC_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWSEC_ROOT/certs/restapi-certs/tls.key
volumes:
owsec:
- name: config
mountPath: /owsec-data/owsec.properties
subPath: owsec.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-config
- name: certs
mountPath: /owsec-data/certs
volumeDefinition: |
secret:
secretName: {{ if .Values.existingCertsSecret }}{{ .Values.existingCertsSecret }}{{ else }}{{ include "owsec.fullname" . }}-certs{{ end }}
- name: persist
mountPath: /owsec-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owsec.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owsec-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-owsec-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-owsec-restapi-tls
owfms:
public_env_variables:
SELFSIGNED_CERTS: "true"
existingCertsSecret: openwifi-certs
configProperties:
openwifi.system.uri.public: https://localhost:16004
openwifi.system.uri.private: https://owfms-owfms:17004
openwifi.system.uri.ui: http://localhost:8080
openwifi.internal.restapi.host.0.rootca: $OWFMS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWFMS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWFMS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWFMS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWFMS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWFMS_ROOT/certs/restapi-certs/tls.key
volumes:
owfms:
- name: config
mountPath: /owfms-data/owfms.properties
subPath: owfms.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-config
- name: certs
mountPath: /owfms-data/certs
volumeDefinition: |
secret:
secretName: {{ if .Values.existingCertsSecret }}{{ .Values.existingCertsSecret }}{{ else }}{{ include "owfms.fullname" . }}-certs{{ end }}
- name: persist
mountPath: /owfms-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owfms.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owfms-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-owfms-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-owfms-restapi-tls
owprov:
public_env_variables:
SELFSIGNED_CERTS: "true"
existingCertsSecret: openwifi-certs
configProperties:
openwifi.system.uri.public: https://localhost:16005
openwifi.system.uri.private: https://owprov-owprov:17005
openwifi.system.uri.ui: http://localhost:8080
openwifi.internal.restapi.host.0.rootca: $OWPROV_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWPROV_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWPROV_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWPROV_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWPROV_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWPROV_ROOT/certs/restapi-certs/tls.key
volumes:
owprov:
- name: config
mountPath: /owprov-data/owprov.properties
subPath: owprov.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-config
- name: certs
mountPath: /owprov-data/certs
volumeDefinition: |
secret:
secretName: {{ if .Values.existingCertsSecret }}{{ .Values.existingCertsSecret }}{{ else }}{{ include "owprov.fullname" . }}-certs{{ end }}
- name: persist
mountPath: /owprov-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owprov.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owprov-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-owprov-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-owprov-restapi-tls
owanalytics:
public_env_variables:
SELFSIGNED_CERTS: "true"
existingCertsSecret: openwifi-certs
configProperties:
openwifi.system.uri.public: https://localhost:16009
openwifi.system.uri.private: https://owanalytics-owanalytics:17009
openwifi.system.uri.ui: http://localhost:8080
openwifi.internal.restapi.host.0.rootca: $OWANALYTICS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWANALYTICS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWANALYTICS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWANALYTICS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWANALYTICS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWANALYTICS_ROOT/certs/restapi-certs/tls.key
volumes:
owanalytics:
- name: config
mountPath: /owanalytics-data/owanalytics.properties
subPath: owanalytics.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-config
- name: certs
mountPath: /owanalytics-data/certs
volumeDefinition: |
secret:
secretName: {{ if .Values.existingCertsSecret }}{{ .Values.existingCertsSecret }}{{ else }}{{ include "owanalytics.fullname" . }}-certs{{ end }}
- name: persist
mountPath: /owanalytics-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owanalytics.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owanalytics-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-owanalytics-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-owanalytics-restapi-tls
owsub:
public_env_variables:
SELFSIGNED_CERTS: "true"
existingCertsSecret: openwifi-certs
configProperties:
openwifi.system.uri.public: https://localhost:16006
openwifi.system.uri.private: https://owsub-owsub:17006
openwifi.system.uri.ui: http://localhost:8080
openwifi.internal.restapi.host.0.rootca: $OWSUB_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWSUB_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWSUB_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWSUB_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWSUB_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWSUB_ROOT/certs/restapi-certs/tls.key
volumes:
owsub:
- name: config
mountPath: /owsub-data/owsub.properties
subPath: owsub.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-config
- name: certs
mountPath: /owsub-data/certs
volumeDefinition: |
secret:
secretName: {{ if .Values.existingCertsSecret }}{{ .Values.existingCertsSecret }}{{ else }}{{ include "owsub.fullname" . }}-certs{{ end }}
- name: persist
mountPath: /owsub-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owsub.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owsub-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-owsub-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-owsub-restapi-tls
owgwui:
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://localhost:16001
owprovui:
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://localhost:16001
kafka:
volumePermissions:
enabled: true
commonAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
#resources:
# requests:
# cpu: 100m
# memory: 512Mi
# limits:
# cpu: 500m
# memory: 1Gi
readinessProbe:
initialDelaySeconds: 45
livenessProbe:
initialDelaySeconds: 60
kraft:
enabled: true
heapOpts: -Xmx1024m -Xms1024m
zookeeper:
enabled: false
controller:
replicaCount: 1
extraConfig: |-
maxMessageBytes = 1048588
offsets.topic.replication.factor = 1
transaction.state.log.replication.factor = 1
extraEnvVars:
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
listeners:
client:
protocol: PLAINTEXT
containerPort: 9092
controller:
protocol: "PLAINTEXT"
broker:
persistence:
size: 20Gi
replicaCount: 0
restapiCerts:
enabled: true

View File

@@ -0,0 +1,132 @@
owgw:
services:
owgw:
annotations:
external-dns.alpha.kubernetes.io/hostname: gw-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
configProperties:
openwifi.fileuploader.host.0.name: gw-${NAMESPACE}.${DOMAIN}
rtty.server: gw-${NAMESPACE}.${DOMAIN}
openwifi.system.uri.public: https://gw-${NAMESPACE}.${DOMAIN}:16002
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owgw-owgw:17002
openwifi.system.uri.ui: https://webui-${NAMESPACE}.${DOMAIN}
iptocountry.ipinfo.token: "${IPTOCOUNTRY_IPINFO_TOKEN}"
public_env_variables:
OWSEC: sec-${NAMESPACE}.${DOMAIN}:16001
owsec:
configProperties:
authentication.default.username: "${OWGW_AUTH_USERNAME}"
authentication.default.password: "${OWGW_AUTH_PASSWORD}"
openwifi.system.uri.public: https://sec-${NAMESPACE}.${DOMAIN}:16001
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owsec-owsec:17001
openwifi.ystem.uri.ui: https://webui-${NAMESPACE}.${DOMAIN}
mailer.sender: "sec-${NAMESPACE}@${DOMAIN}"
mailer.enabled: $MAILER_ENABLED
mailer.username: "$MAILER_USERNAME"
mailer.password: "$MAILER_PASSWORD"
services:
owsec:
annotations:
external-dns.alpha.kubernetes.io/hostname: sec-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
owfms:
configProperties:
s3.secret: "${OWFMS_S3_SECRET}"
s3.key: "${OWFMS_S3_KEY}"
openwifi.system.uri.public: https://fms-${NAMESPACE}.${DOMAIN}:16004
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owfms-owfms:17004
openwifi.system.uri.ui: https://webui-${NAMESPACE}.${DOMAIN}
services:
owfms:
annotations:
external-dns.alpha.kubernetes.io/hostname: fms-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
public_env_variables:
OWSEC: sec-${NAMESPACE}.${DOMAIN}:16001
owprov:
services:
owprov:
annotations:
external-dns.alpha.kubernetes.io/hostname: prov-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
configProperties:
openwifi.system.uri.public: https://prov-${NAMESPACE}.${DOMAIN}:16005
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owprov-owprov:17005
openwifi.system.uri.ui: https://provui-${NAMESPACE}.${DOMAIN}
iptocountry.ipinfo.token: "${IPTOCOUNTRY_IPINFO_TOKEN}"
public_env_variables:
OWSEC: sec-${NAMESPACE}.${DOMAIN}:16001
owgwui:
ingresses:
default:
hosts:
- webui-${NAMESPACE}.${DOMAIN}
annotations:
external-dns.alpha.kubernetes.io/hostname: webui-${NAMESPACE}.${DOMAIN}
alb.ingress.kubernetes.io/certificate-arn: ${CERTIFICATE_ARN}
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://sec-${NAMESPACE}.${DOMAIN}:16001
owprovui:
ingresses:
default:
hosts:
- provui-${NAMESPACE}.${DOMAIN}
annotations:
external-dns.alpha.kubernetes.io/hostname: provui-${NAMESPACE}.${DOMAIN}
alb.ingress.kubernetes.io/certificate-arn: ${CERTIFICATE_ARN}
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://sec-${NAMESPACE}.${DOMAIN}:16001
owanalytics:
services:
owanalytics:
annotations:
external-dns.alpha.kubernetes.io/hostname: analytics-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
configProperties:
openwifi.system.uri.public: https://analytics-${NAMESPACE}.${DOMAIN}:16009
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owanalytics-owanalytics:17009
openwifi.system.uri.ui: https://webui-${NAMESPACE}.${DOMAIN}
public_env_variables:
OWSEC: sec-${NAMESPACE}.${DOMAIN}:16001
owsub:
services:
owsub:
annotations:
external-dns.alpha.kubernetes.io/hostname: sub-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
configProperties:
openwifi.system.uri.public: https://sub-${NAMESPACE}.${DOMAIN}:16006
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owsub-owsub:17006
openwifi.system.uri.ui: https://webui-${NAMESPACE}.${DOMAIN}
public_env_variables:
OWSEC: sec-${NAMESPACE}.${DOMAIN}:16001
clustersysteminfo:
public_env_variables:
OWSEC: sec-${NAMESPACE}.${DOMAIN}:16001
secret_env_variables:
OWSEC_NEW_PASSWORD: "${OWSEC_NEW_PASSWORD}"
owls:
services:
owls:
annotations:
external-dns.alpha.kubernetes.io/hostname: ls-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
configProperties:
openwifi.system.uri.public: https://ls-${NAMESPACE}.${DOMAIN}:16007
openwifi.system.uri.private: $INTERNAL_RESTAPI_ENDPOINT_SCHEMA://owls-owls:17007
openwifi.system.uri.ui: https://webui-${NAMESPACE}.${DOMAIN}
owlsui:
ingresses:
default:
hosts:
- lsui-${NAMESPACE}.${DOMAIN}
annotations:
external-dns.alpha.kubernetes.io/hostname: lsui-${NAMESPACE}.${DOMAIN}
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}
public_env_variables:
REACT_APP_UCENTRALSEC_URL: https://sec-${NAMESPACE}.${DOMAIN}:16001
haproxy:
service:
annotations:
external-dns.alpha.kubernetes.io/hostname: "$HAPROXY_SERVICE_DNS_RECORDS"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${CERTIFICATE_ARN}

View File

@@ -0,0 +1,7 @@
owgw:
configProperties:
radius.proxy.enable: "false"
radius.proxy.accounting.port: 1813
radius.proxy.authentication.port: 1812
radius.proxy.coa.port: 3799
radsec.keepalive: 120

View File

@@ -0,0 +1,29 @@
# NOTE: using of this values files will require you to use http schema in 'openwifi.system.uri.private' (and maybe 'openwifi.system.uri.public') configuration properties (i.e. http://owgw-owgw:17002)
owgw:
configProperties:
openwifi.security.restapi.disable: "true"
owsec:
configProperties:
openwifi.security.restapi.disable: "true"
owfms:
configProperties:
openwifi.security.restapi.disable: "true"
owprov:
configProperties:
openwifi.security.restapi.disable: "true"
owanalytics:
configProperties:
openwifi.security.restapi.disable: "true"
owsub:
configProperties:
openwifi.security.restapi.disable: "true"
haproxy:
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

View File

@@ -0,0 +1,137 @@
owgw:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: owgw-pgsql
storage.type.postgresql.database: owgw
storage.type.postgresql.username: owgw
storage.type.postgresql.password: owgw
postgresql:
enabled: true
nameOverride: owgw-pgsql
fullnameOverride: owgw-pgsql
postgresqlDatabase: owgw
postgresqlUsername: owgw
postgresqlPassword: owgw
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi
owsec:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: owsec-pgsql
storage.type.postgresql.database: owsec
storage.type.postgresql.username: owsec
storage.type.postgresql.password: owsec
postgresql:
enabled: true
nameOverride: owsec-pgsql
fullnameOverride: owsec-pgsql
postgresqlDatabase: owsec
postgresqlUsername: owsec
postgresqlPassword: owsec
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi
owfms:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: owfms-pgsql
storage.type.postgresql.database: owfms
storage.type.postgresql.username: owfms
storage.type.postgresql.password: owfms
postgresql:
enabled: true
nameOverride: owfms-pgsql
fullnameOverride: owfms-pgsql
postgresqlDatabase: owfms
postgresqlUsername: owfms
postgresqlPassword: owfms
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi
owprov:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: owprov-pgsql
storage.type.postgresql.database: owprov
storage.type.postgresql.username: owprov
storage.type.postgresql.password: owprov
postgresql:
enabled: true
nameOverride: owprov-pgsql
fullnameOverride: owprov-pgsql
postgresqlDatabase: owprov
postgresqlUsername: owprov
postgresqlPassword: owprov
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi
owanalytics:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: owanalytics-pgsql
storage.type.postgresql.database: owanalytics
storage.type.postgresql.username: owanalytics
storage.type.postgresql.password: owanalytics
postgresql:
enabled: true
nameOverride: owanalytics-pgsql
fullnameOverride: owanalytics-pgsql
postgresqlDatabase: owanalytics
postgresqlUsername: owanalytics
postgresqlPassword: owanalytics
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi
owsub:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: owsub-pgsql
storage.type.postgresql.database: owsub
storage.type.postgresql.username: owsub
storage.type.postgresql.password: owsub
postgresql:
enabled: true
nameOverride: owsub-pgsql
fullnameOverride: owsub-pgsql
postgresqlDatabase: owsub
postgresqlUsername: owsub
postgresqlPassword: owsub
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi

View File

@@ -0,0 +1,148 @@
# This helm values file is to be used when OWLS is run in the same namespace.
owgw:
configProperties:
simulatorid: 53494D020202
storage.type.postgresql.maxsessions: 120
# this actually disables websocket logging:
logging.websocket: true
resources:
requests:
cpu: 2000m
memory: 3Gi
limits:
cpu: 2000m
memory: 5Gi
owls:
enabled: true
services:
owls:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16107"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16007,17007"
external-dns.alpha.kubernetes.io/ttl: "60"
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
resources:
requests:
cpu: 6000m
memory: 8000Mi
limits:
cpu: 6000m
memory: 8000Mi
checks:
owls:
liveness:
httpGet:
path: /
port: 16107
failureThreshold: 900
readiness:
httpGet:
path: /
port: 16107
failureThreshold: 900
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWLS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWLS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWLS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWLS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWLS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWLS_ROOT/certs/restapi-certs/tls.key
volumes:
owls:
- name: config
mountPath: /owls-data/owls.properties
subPath: owls.properties
volumeDefinition: |
secret:
secretName: {{ include "owls.fullname" . }}-config
- name: certs
mountPath: /owls-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owls.fullname" . }}-certs
- name: certs-cas
mountPath: /owls-data/certs/cas
volumeDefinition: |
secret:
secretName: {{ include "owls.fullname" . }}-certs-cas
- name: persist
mountPath: /owls-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owls.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owls-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owls.fullname" . }}-owls-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owls.fullname" . }}-owls-restapi-tls
owlsui:
enabled: true
services:
owlsui:
type: NodePort
ingresses:
default:
enabled: true
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/group.name: wlan-cicd
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_302"}}'
external-dns.alpha.kubernetes.io/ttl: "60"
paths:
- path: /*
serviceName: owlsui
servicePort: http
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"

View File

@@ -0,0 +1,51 @@
# This helm values file is to be used when OWLS is run externally.
owgw:
configProperties:
# done by default for owgw now:
#simulatorid: 53494D020202
# on a host with more CPUs you may need to bump this up from default of 64
storage.type.postgresql.maxsessions: 120
# this actually disables websocket logging:
logging.websocket: true
# consider lowering the # of days to keep archives in the database
#archiver.db.0.name = healthchecks
#archiver.db.0.keep = 1
#archiver.db.1.name = statistics
#archiver.db.1.keep = 1
#archiver.db.2.name = devicelogs
#archiver.db.2.keep = 1
#archiver.db.3.name = commandlist
#archiver.db.3.keep = 1
resources:
requests:
cpu: 2000m
memory: 3Gi
limits:
cpu: 2000m
memory: 5Gi
owprov:
resources:
requests:
cpu: 10m
memory: 200Mi
limits:
cpu: 100m
memory: 4Gi
# Postgres tuning for larger # of APs
#postgresql:
# primary:
# resourcesPreset: large
# persistence:
# size: 120Gi
#kafka:
# controller:
# persistence:
# size: 80Gi
# extraConfig: |-
# # consider tuning this as otherwise kafka storage may be exceeded quickly
# # the default is 1 week!
# logRetentionHours = 24

View File

@@ -0,0 +1,74 @@
owgw:
services:
owgw:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16102"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16002,16003,17002,5913"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
owsec:
services:
owsec:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16101"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16001,17001"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
owfms:
services:
owfms:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16104"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16004,17004"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
owprov:
services:
owprov:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16105"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16005,17005"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
owanalytics:
services:
owanalytics:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16109"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16009,17009"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
owsub:
services:
owsub:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb-ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "16106"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16006,17006"
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
haproxy:
enabled: false

View File

@@ -0,0 +1,106 @@
owgw:
configProperties:
simulatorid: 53494D020202
storage.type: postgresql
storage.type.postgresql.host: pgsql
storage.type.postgresql.database: owgw
storage.type.postgresql.username: owgw
storage.type.postgresql.password: owgw
owsec:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: pgsql
storage.type.postgresql.database: owsec
storage.type.postgresql.username: owsec
storage.type.postgresql.password: owsec
owfms:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: pgsql
storage.type.postgresql.database: owfms
storage.type.postgresql.username: owfms
storage.type.postgresql.password: owfms
owprov:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: pgsql
storage.type.postgresql.database: owprov
storage.type.postgresql.username: owprov
storage.type.postgresql.password: owprov
owanalytics:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: pgsql
storage.type.postgresql.database: owanalytics
storage.type.postgresql.username: owanalytics
storage.type.postgresql.password: owanalytics
owsub:
configProperties:
storage.type: postgresql
storage.type.postgresql.host: pgsql
storage.type.postgresql.database: owsub
storage.type.postgresql.username: owsub
storage.type.postgresql.password: owsub
postgresql:
enabled: true
initDbScriptSecret:
enabled: true
initdbScriptsSecret: tip-openwifi-initdb-scripts
volumePermissions:
enabled: true
global:
postgresql:
auth:
postgresPassword: postgres
auth:
postgresPassword: postgres
primary:
# TODO: tweak this next major release - 8Gi default is a bit too low
#persistence:
# size: 30Gi
# Consider using this resource model for small installations
#resourcesPreset: medium
extendedConfiguration: |-
max_connections = 550
shared_buffers = 128MB
initdb:
scriptsSecret: tip-openwifi-initdb-scripts
# Consider using this disk size for small installations
#persistence:
# size: 30Gi
postgresql-ha:
enabled: false
initDbScriptSecret:
enabled: false
initdbScriptsSecret: tip-openwifi-initdb-scripts
pgpool:
adminPassword: admin
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi
initdbScriptsSecret: tip-openwifi-initdb-scripts
postgresql:
replicaCount: 1
password: postgres
postgresPassword: postgres
repmgrPassword: repmgr
maxConnections: 1000
resources:
requests:
cpu: 250m
memory: 1024Mi
limits:
cpu: 250m
memory: 1024Mi

View File

@@ -0,0 +1,220 @@
owgw:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owsec:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owgwui:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owfms:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owprov:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owprovui:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owls:
nodeSelector:
env: owls
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owlsui:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owanalytics:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
owsub:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
primary:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
readReplicas:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
kafka:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
zookeeper:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql-ha:
pgpool:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"
postgresql:
nodeSelector:
env: tests
tolerations:
- key: "tests"
operator: "Exists"
effect: "NoSchedule"

View File

@@ -0,0 +1,816 @@
owgw:
# https://telecominfraproject.atlassian.net/browse/WIFI-5840
checks:
owgw:
readiness:
exec:
command: ["true"]
failureThreshold: 5
readiness:
failureThreshold: 5
resources:
requests:
cpu: 2000m
memory: 100Mi
limits:
cpu: 2000m
memory: 2Gi
# securityContext:
# sysctls:
# - name: net.ipv4.tcp_keepalive_intvl
# value: "5"
# - name: net.ipv4.tcp_keepalive_probes
# value: "2"
# - name: net.ipv4.tcp_keepalive_time
# value: "45"
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
# podSecurityPolicy:
# enabled: true
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
clientcas.pem: |
-----BEGIN CERTIFICATE-----
MIIEnDCCA4SgAwIBAgIUVpyCUx1MUeUwxg+7I1BvGFTz7HkwDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjUxMjZaFw0yNjA0MTMyMjM4NDZaMGwx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEpMCcGA1UEAxMgVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IElzc3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtKBrq
qd2aKVSk25KfL5xHu8X7/8rJrz3IvyPuVKWhk/N1zabot3suBcGaYNKjnRHxg78R
yKwKzajKYWtiQFqztu24g16LQeAnoUxZnF6a0z3JkkRPsz14A2y8TUhdEe1tx+UU
4VGsk3n+FMmOQHL+79FO57zQC1LwylgfLSltrI6mF3jowVUQvnwzKhUzT87AJ6EO
ndK/q0T/Bgi+aI39zfVOjJjsTJwghvrmYW3iarP1THSKxeib2s02bZKrvvHa5HL4
UI8+LvREpVZl4mzt1z6Nl344Y6f+UeJlYa/Ci0jJqaXJmyVnUbAz+c0i5JfwAVn3
YQzfC4eLnZCmdF8zAgMBAAGjggE3MIIBMzAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
DgQWBBSzG1S44EerPfM4gOQ85f0AYW3R6DAfBgNVHSMEGDAWgBQCRpZgebFT9qny
98WfIUDk6ZEB+jAOBgNVHQ8BAf8EBAMCAYYwgYMGCCsGAQUFBwEBBHcwdTAoBggr
BgEFBQcwAYYcaHR0cDovL29jc3Aub25lLmRpZ2ljZXJ0LmNvbTBJBggrBgEFBQcw
AoY9aHR0cDovL2NhY2VydHMub25lLmRpZ2ljZXJ0LmNvbS9UZWxlY29tSW5mcmFQ
cm9qZWN0Um9vdENBLmNydDBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vY3JsLm9u
ZS5kaWdpY2VydC5jb20vVGVsZWNvbUluZnJhUHJvamVjdFJvb3RDQS5jcmwwDQYJ
KoZIhvcNAQELBQADggEBAFbz+K94bHIkBMJqps0dApniUmOn0pO6Q6cGh47UP/kX
IiPIsnYgG+hqYD/qtsiqJhaWi0hixRWn38UmvZxMRk27aSTGE/TWx0JTC3qDGsSe
XkUagumbSfmS0ZyiTwMPeGAjXwyzGorqZWeA95eKfImntMiOf3E7//GK0K7HpCx8
IPCnLZsZD2q/mLyBsduImFIRQJbLAhwIxpcd1qYJk+BlGFL+HtBpEbq6JxW2Xy+v
DpNWc2WIsUTle0rTc9JNJrLX4ChUJmKqf8obKHap3Xh3//qw/jDB9pOAinA33FLJ
EmCnwBvQr9mfNmPBGMYZVU8cPruDQJ57GjmmvdisbJY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
issuer.pem: |
-----BEGIN CERTIFICATE-----
MIIEnDCCA4SgAwIBAgIUVpyCUx1MUeUwxg+7I1BvGFTz7HkwDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjUxMjZaFw0yNjA0MTMyMjM4NDZaMGwx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEpMCcGA1UEAxMgVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IElzc3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtKBrq
qd2aKVSk25KfL5xHu8X7/8rJrz3IvyPuVKWhk/N1zabot3suBcGaYNKjnRHxg78R
yKwKzajKYWtiQFqztu24g16LQeAnoUxZnF6a0z3JkkRPsz14A2y8TUhdEe1tx+UU
4VGsk3n+FMmOQHL+79FO57zQC1LwylgfLSltrI6mF3jowVUQvnwzKhUzT87AJ6EO
ndK/q0T/Bgi+aI39zfVOjJjsTJwghvrmYW3iarP1THSKxeib2s02bZKrvvHa5HL4
UI8+LvREpVZl4mzt1z6Nl344Y6f+UeJlYa/Ci0jJqaXJmyVnUbAz+c0i5JfwAVn3
YQzfC4eLnZCmdF8zAgMBAAGjggE3MIIBMzAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
DgQWBBSzG1S44EerPfM4gOQ85f0AYW3R6DAfBgNVHSMEGDAWgBQCRpZgebFT9qny
98WfIUDk6ZEB+jAOBgNVHQ8BAf8EBAMCAYYwgYMGCCsGAQUFBwEBBHcwdTAoBggr
BgEFBQcwAYYcaHR0cDovL29jc3Aub25lLmRpZ2ljZXJ0LmNvbTBJBggrBgEFBQcw
AoY9aHR0cDovL2NhY2VydHMub25lLmRpZ2ljZXJ0LmNvbS9UZWxlY29tSW5mcmFQ
cm9qZWN0Um9vdENBLmNydDBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vY3JsLm9u
ZS5kaWdpY2VydC5jb20vVGVsZWNvbUluZnJhUHJvamVjdFJvb3RDQS5jcmwwDQYJ
KoZIhvcNAQELBQADggEBAFbz+K94bHIkBMJqps0dApniUmOn0pO6Q6cGh47UP/kX
IiPIsnYgG+hqYD/qtsiqJhaWi0hixRWn38UmvZxMRk27aSTGE/TWx0JTC3qDGsSe
XkUagumbSfmS0ZyiTwMPeGAjXwyzGorqZWeA95eKfImntMiOf3E7//GK0K7HpCx8
IPCnLZsZD2q/mLyBsduImFIRQJbLAhwIxpcd1qYJk+BlGFL+HtBpEbq6JxW2Xy+v
DpNWc2WIsUTle0rTc9JNJrLX4ChUJmKqf8obKHap3Xh3//qw/jDB9pOAinA33FLJ
EmCnwBvQr9mfNmPBGMYZVU8cPruDQJ57GjmmvdisbJY=
-----END CERTIFICATE-----
root.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
certsCAs:
issuer.pem: |
-----BEGIN CERTIFICATE-----
MIIEnDCCA4SgAwIBAgIUVpyCUx1MUeUwxg+7I1BvGFTz7HkwDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjUxMjZaFw0yNjA0MTMyMjM4NDZaMGwx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEpMCcGA1UEAxMgVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IElzc3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtKBrq
qd2aKVSk25KfL5xHu8X7/8rJrz3IvyPuVKWhk/N1zabot3suBcGaYNKjnRHxg78R
yKwKzajKYWtiQFqztu24g16LQeAnoUxZnF6a0z3JkkRPsz14A2y8TUhdEe1tx+UU
4VGsk3n+FMmOQHL+79FO57zQC1LwylgfLSltrI6mF3jowVUQvnwzKhUzT87AJ6EO
ndK/q0T/Bgi+aI39zfVOjJjsTJwghvrmYW3iarP1THSKxeib2s02bZKrvvHa5HL4
UI8+LvREpVZl4mzt1z6Nl344Y6f+UeJlYa/Ci0jJqaXJmyVnUbAz+c0i5JfwAVn3
YQzfC4eLnZCmdF8zAgMBAAGjggE3MIIBMzAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
DgQWBBSzG1S44EerPfM4gOQ85f0AYW3R6DAfBgNVHSMEGDAWgBQCRpZgebFT9qny
98WfIUDk6ZEB+jAOBgNVHQ8BAf8EBAMCAYYwgYMGCCsGAQUFBwEBBHcwdTAoBggr
BgEFBQcwAYYcaHR0cDovL29jc3Aub25lLmRpZ2ljZXJ0LmNvbTBJBggrBgEFBQcw
AoY9aHR0cDovL2NhY2VydHMub25lLmRpZ2ljZXJ0LmNvbS9UZWxlY29tSW5mcmFQ
cm9qZWN0Um9vdENBLmNydDBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vY3JsLm9u
ZS5kaWdpY2VydC5jb20vVGVsZWNvbUluZnJhUHJvamVjdFJvb3RDQS5jcmwwDQYJ
KoZIhvcNAQELBQADggEBAFbz+K94bHIkBMJqps0dApniUmOn0pO6Q6cGh47UP/kX
IiPIsnYgG+hqYD/qtsiqJhaWi0hixRWn38UmvZxMRk27aSTGE/TWx0JTC3qDGsSe
XkUagumbSfmS0ZyiTwMPeGAjXwyzGorqZWeA95eKfImntMiOf3E7//GK0K7HpCx8
IPCnLZsZD2q/mLyBsduImFIRQJbLAhwIxpcd1qYJk+BlGFL+HtBpEbq6JxW2Xy+v
DpNWc2WIsUTle0rTc9JNJrLX4ChUJmKqf8obKHap3Xh3//qw/jDB9pOAinA33FLJ
EmCnwBvQr9mfNmPBGMYZVU8cPruDQJ57GjmmvdisbJY=
-----END CERTIFICATE-----
root.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWGW_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWGW_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWGW_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWGW_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWGW_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWGW_ROOT/certs/restapi-certs/tls.key
volumes:
owgw:
- name: config
mountPath: /owgw-data/owgw.properties
subPath: owgw.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-config
- name: certs
mountPath: /owgw-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-certs
- name: certs-cas
mountPath: /owgw-data/certs/cas
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-certs-cas
- name: persist
mountPath: /owgw-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owgw.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owgw-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-owgw-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-owgw-restapi-tls
owsec:
# https://telecominfraproject.atlassian.net/browse/WIFI-5840
checks:
owsec:
readiness:
exec:
command: ["true"]
resources:
requests:
cpu: 10m
memory: 15Mi
limits:
cpu: 100m
memory: 100Mi
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWSEC_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWSEC_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWSEC_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWSEC_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWSEC_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWSEC_ROOT/certs/restapi-certs/tls.key
mailer.hostname: email-smtp.us-east-2.amazonaws.com
openwifi.certificates.allowmismatch: "false"
volumes:
owsec:
- name: config
mountPath: /owsec-data/owsec.properties
subPath: owsec.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-config
- name: certs
mountPath: /owsec-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-certs
- name: persist
mountPath: /owsec-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owsec.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owsec-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-owsec-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-owsec-restapi-tls
owgwui:
services:
owgwui:
type: NodePort
ingresses:
default:
enabled: true
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/group.name: wlan-cicd
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-south-1:289708231103:certificate/2cc8c764-11fd-411d-bf7d-a93f488f3f6c
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_302"}}'
paths:
- path: /*
serviceName: owgwui
servicePort: http
resources:
requests:
cpu: 10m
memory: 30Mi
limits:
cpu: 10m
memory: 30Mi
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
owfms:
# https://telecominfraproject.atlassian.net/browse/WIFI-5840
checks:
owfms:
readiness:
exec:
command: ["true"]
resources:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 100m
memory: 160Mi
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
# This has no effect as template based config is not enabled (see configProperties)
FIRMWAREDB_MAXAGE: "360"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWFMS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWFMS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWFMS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWFMS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWFMS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWFMS_ROOT/certs/restapi-certs/tls.key
firmwaredb.maxage: 360
volumes:
owfms:
- name: config
mountPath: /owfms-data/owfms.properties
subPath: owfms.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-config
- name: certs
mountPath: /owfms-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-certs
- name: persist
mountPath: /owfms-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owfms.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owfms-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-owfms-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-owfms-restapi-tls
owprov:
checks:
owprov:
readiness:
exec:
command: ["true"]
resources:
requests:
cpu: 10m
memory: 20Mi
limits:
cpu: 100m
memory: 100Mi
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWPROV_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWPROV_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWPROV_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWPROV_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWPROV_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWPROV_ROOT/certs/restapi-certs/tls.key
volumes:
owprov:
- name: config
mountPath: /owprov-data/owprov.properties
subPath: owprov.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-config
- name: certs
mountPath: /owprov-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-certs
- name: persist
mountPath: /owprov-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owprov.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owprov-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-owprov-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-owprov-restapi-tls
owprovui:
services:
owprovui:
type: NodePort
ingresses:
default:
enabled: true
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/group.name: wlan-cicd
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-south-1:289708231103:certificate/2cc8c764-11fd-411d-bf7d-a93f488f3f6c
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_302"}}'
paths:
- path: /*
serviceName: owprovui
servicePort: http
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
owanalytics:
checks:
owanalytics:
readiness:
exec:
command: ["true"]
resources:
requests:
cpu: 10m
memory: 100Mi
limits:
cpu: 100m
memory: 500Mi
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWANALYTICS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWANALYTICS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWANALYTICS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWANALYTICS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWANALYTICS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWANALYTICS_ROOT/certs/restapi-certs/tls.key
volumes:
owanalytics:
- name: config
mountPath: /owanalytics-data/owanalytics.properties
subPath: owanalytics.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-config
- name: certs
mountPath: /owanalytics-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-certs
- name: persist
mountPath: /owanalytics-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owanalytics.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owanalytics-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-owanalytics-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-owanalytics-restapi-tls
owsub:
resources:
requests:
cpu: 10m
memory: 100Mi
limits:
cpu: 100m
memory: 500Mi
podAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
certs:
restapi-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIUPVYBpqNbcLYygF6Mx+qxSWwQyFowDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG1RlbGVjb20gSW5mcmEgUHJvamVj
dCwgSW5jLjEMMAoGA1UECxMDVElQMSYwJAYDVQQDEx1UZWxlY29tIEluZnJhIFBy
b2plY3QgUm9vdCBDQTAeFw0yMTA0MTMyMjQyNDRaFw0zMTA0MTMyMjM4NDZaMGkx
CzAJBgNVBAYTAlVTMSQwIgYDVQQKExtUZWxlY29tIEluZnJhIFByb2plY3QsIElu
Yy4xDDAKBgNVBAsTA1RJUDEmMCQGA1UEAxMdVGVsZWNvbSBJbmZyYSBQcm9qZWN0
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIGCibwf5u
AAwZ+1H8U0e3u2V+0d2gSctucoK86XwUmfe1V2a/qlCYZd29r80IuN1IIeB0naIm
KnK/MzXW87clF6tFd1+HzEvmlY/W4KyIXalVCTEzirFSvBEG2oZpM0yC3AefytAO
aOpA00LaM3xTfTqMKIRhJBuLy0I4ANUVG6ixVebbGuc78IodleqiLoWy2Q9QHyEO
t/7hZndJhiVogh0PveRhho45EbsACu7ymDY+JhlIleevqwlE3iQoq0YcmYADHno6
Eq8vcwLpZFxihupUafkd1T3WJYQAJf9coCjBu2qIhNgrcrGD8R9fGswwNRzMRMpX
720+GjcDW3bJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAJG
lmB5sVP2qfL3xZ8hQOTpkQH6MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEAVjl9dm4epG9NUYnagT9sg7scVQEPfz3Lt6w1NXJXgD8mAUlK0jXmEyvM
dCPD4514n+8+lM7US8fh+nxc7jO//LwK17Wm9FblgjNFR7+anv0Q99T9fP19DLlF
PSNHL2emogy1bl1lLTAoj8nxg2wVKPDSHBGviQ5LR9fsWUIJDv9Bs5k0qWugWYSj
19S6qnHeskRDB8MqRLhKMG82oDVLerSnhD0P6HjySBHgTTU7/tYS/OZr1jI6MPbG
L+/DtiR5fDVMNdBSGU89UNTi0wHY9+RFuNlIuvZC+x/swF0V9R5mN+ywquTPtDLA
5IOM7ItsRmen6u3qu+JXros54e4juQ==
-----END CERTIFICATE-----
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWSUB_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWSUB_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWSUB_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWSUB_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWSUB_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWSUB_ROOT/certs/restapi-certs/tls.key
volumes:
owsub:
- name: config
mountPath: /owsub-data/owsub.properties
subPath: owsub.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-config
- name: certs
mountPath: /owsub-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-certs
- name: persist
mountPath: /owsub-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owsub.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owsub-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-owsub-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-owsub-restapi-tls
kafka:
volumePermissions:
enabled: true
commonAnnotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
readinessProbe:
initialDelaySeconds: 45
livenessProbe:
initialDelaySeconds: 60
heapOpts: -Xmx1024m -Xms1024m
kraft:
enabled: true
zookeeper:
enabled: false
controller:
replicaCount: 1
persistence:
size: 20Gi
extraConfig: |-
maxMessageBytes = 1048588
offsets.topic.replication.factor = 1
transaction.state.log.replication.factor = 1
extraEnvVars:
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 750m
memory: 2Gi
listeners:
client:
protocol: PLAINTEXT
containerPort: 9092
controller:
protocol: "PLAINTEXT"
broker:
persistence:
size: 20Gi
replicaCount: 0
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 750m
memory: 2Gi
clustersysteminfo:
enabled: true
delay: 60 # delaying to wait for AWS Route53 DNS propagation
haproxy:
resources:
requests:
cpu: 50m
memory: 50Mi
limits:
cpu: 50m
memory: 50Mi
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: ssl
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "8080"
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16004,17004,16002,16003,17002,16005,17005,5913,16001,17001,16009,16006,17006"
service.beta.kubernetes.io/aws-load-balancer-type: nlb-ip
restapiCerts:
enabled: true

View File

@@ -0,0 +1,27 @@
owgw:
services:
owgw:
type: LoadBalancer
owsec:
services:
owsec:
type: LoadBalancer
rttys:
services:
rttys:
type: LoadBalancer
owfms:
services:
owfms:
type: LoadBalancer
owprov:
services:
owprov:
type: LoadBalancer
haproxy:
enabled: false

View File

@@ -0,0 +1,15 @@
clustersysteminfo:
enabled: true
delay: 0 # you may change this if you need to wait for DNS propogation or other things
public_env_variables:
OWSEC: owsec-owsec:16001
# Uncomment these options if you want to run systeminfo checks inside of cluster
#OWGW_OVERRIDE: owgw-owgw:16002
#OWFMS_OVERRIDE: owfms-owfms:16004
#OWPROV_OVERRIDE: owprov-owprov:16005
secret_env_variables:
OWSEC_DEFAULT_USERNAME: tip@ucentral.com
OWSEC_DEFAULT_PASSWORD: openwifi
OWSEC_NEW_PASSWORD: TOFILL # TODO adapt password to your new password with password policy in mind

View File

@@ -0,0 +1,9 @@
owgw:
configProperties:
simulatorid: 53494D020202 # This value should be set to serial number of certificate that was provided to OWLS
owls:
enabled: true
owlsui:
enabled: true

View File

@@ -0,0 +1,12 @@
owgw:
securityContext:
sysctls:
- name: net.ipv4.tcp_keepalive_intvl
value: "5"
- name: net.ipv4.tcp_keepalive_probes
value: "2"
- name: net.ipv4.tcp_keepalive_time
value: "45"
podSecurityPolicy:
enabled: true

View File

@@ -0,0 +1,271 @@
owgw:
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWGW_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWGW_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWGW_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWGW_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWGW_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWGW_ROOT/certs/restapi-certs/tls.key
volumes:
owgw:
- name: config
mountPath: /owgw-data/owgw.properties
subPath: owgw.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-config
- name: certs
mountPath: /owgw-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-certs
- name: certs-cas
mountPath: /owgw-data/certs/cas
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-certs-cas
- name: persist
mountPath: /owgw-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owgw.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owgw-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-owgw-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owgw.fullname" . }}-owgw-restapi-tls
owsec:
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWSEC_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWSEC_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWSEC_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWSEC_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWSEC_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWSEC_ROOT/certs/restapi-certs/tls.key
volumes:
owsec:
- name: config
mountPath: /owsec-data/owsec.properties
subPath: owsec.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-config
- name: certs
mountPath: /owsec-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-certs
- name: persist
mountPath: /owsec-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owsec.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owsec-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-owsec-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owsec.fullname" . }}-owsec-restapi-tls
owfms:
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWFMS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWFMS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWFMS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWFMS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWFMS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWFMS_ROOT/certs/restapi-certs/tls.key
volumes:
owfms:
- name: config
mountPath: /owfms-data/owfms.properties
subPath: owfms.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-config
- name: certs
mountPath: /owfms-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-certs
- name: persist
mountPath: /owfms-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owfms.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owfms-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-owfms-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owfms.fullname" . }}-owfms-restapi-tls
owprov:
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWPROV_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWPROV_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWPROV_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWPROV_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWPROV_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWPROV_ROOT/certs/restapi-certs/tls.key
volumes:
owprov:
- name: config
mountPath: /owprov-data/owprov.properties
subPath: owprov.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-config
- name: certs
mountPath: /owprov-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-certs
- name: persist
mountPath: /owprov-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owprov.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owprov-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-owprov-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owprov.fullname" . }}-owprov-restapi-tls
owanalytics:
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWANALYTICS_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWANALYTICS_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWANALYTICS_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWANALYTICS_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWANALYTICS_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWANALYTICS_ROOT/certs/restapi-certs/tls.key
volumes:
owanalytics:
- name: config
mountPath: /owanalytics-data/owanalytics.properties
subPath: owanalytics.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-config
- name: certs
mountPath: /owanalytics-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-certs
- name: persist
mountPath: /owanalytics-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owanalytics.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owanalytics-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-owanalytics-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owanalytics.fullname" . }}-owanalytics-restapi-tls
owsub:
public_env_variables:
SELFSIGNED_CERTS: "true"
configProperties:
openwifi.internal.restapi.host.0.rootca: $OWSUB_ROOT/certs/restapi-certs/ca.crt
openwifi.internal.restapi.host.0.cert: $OWSUB_ROOT/certs/restapi-certs/tls.crt
openwifi.internal.restapi.host.0.key: $OWSUB_ROOT/certs/restapi-certs/tls.key
openwifi.restapi.host.0.rootca: $OWSUB_ROOT/certs/restapi-certs/ca.crt
openwifi.restapi.host.0.cert: $OWSUB_ROOT/certs/restapi-certs/tls.crt
openwifi.restapi.host.0.key: $OWSUB_ROOT/certs/restapi-certs/tls.key
volumes:
owsub:
- name: config
mountPath: /owsub-data/owsub.properties
subPath: owsub.properties
# Template below will be rendered in template
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-config
- name: certs
mountPath: /owsub-data/certs
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-certs
- name: persist
mountPath: /owsub-data/persist
volumeDefinition: |
persistentVolumeClaim:
claimName: {{ template "owsub.fullname" . }}-pvc
- name: restapi-certs
mountPath: /owsub-data/certs/restapi-certs
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-owsub-restapi-tls
- name: restapi-ca
mountPath: /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
subPath: ca.crt
volumeDefinition: |
secret:
secretName: {{ include "owsub.fullname" . }}-owsub-restapi-tls
restapiCerts:
enabled: true

View File

@@ -0,0 +1,30 @@
# NOTE: using of this values files will require you to use http schema in 'openwifi.system.uri.public' configuration properties (i.e. "openwifi.system.uri.public=http://owgw.openwifi.local:16002")
owgw:
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.private: http://owsec-owsec:17002
owsec:
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.private: http://owsec-owsec:17001
owfms:
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.private: http://owsec-owsec:17004
owprov:
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.private: http://owsec-owsec:17005
owanalytics:
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.private: http://owsec-owsec:17009
owsub:
configProperties:
openwifi.security.restapi.disable: "true"
openwifi.system.uri.private: http://owsec-owsec:17006

View File

@@ -0,0 +1,21 @@
{{- define "openwifi.user_creation_script" -}}
{{- $root := . -}}
{{- $postgresqlBase := index .Values "postgresql-ha" }}
{{- $postgresqlEmulatedRoot := (dict "Values" $postgresqlBase "Chart" (dict "Name" "postgresql-ha") "Release" $.Release) }}
#!/bin/bash
export PGPASSWORD=$PGPOOL_POSTGRES_PASSWORD
until psql -h {{ include "postgresql-ha.postgresql" $postgresqlEmulatedRoot }} postgres postgres -c '\q'; do
>&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
{{ range index .Values "postgresql-ha" "initDbScriptSecret" "services" }}
echo "{{ . }}"
echo "SELECT 'CREATE USER {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }}' WHERE NOT EXISTS (SELECT FROM pg_user WHERE usename = '{{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }}')\gexec" | psql -h {{ include "postgresql-ha.postgresql" $postgresqlEmulatedRoot }} postgres postgres
echo "ALTER USER {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }} WITH ENCRYPTED PASSWORD '{{ index $root "Values" . "configProperties" "storage.type.postgresql.password" }}'" | psql -h {{ include "postgresql-ha.postgresql" $postgresqlEmulatedRoot }} postgres postgres
echo "SELECT 'CREATE DATABASE {{ index $root "Values" . "configProperties" "storage.type.postgresql.database" }}' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '{{ index $root "Values" . "configProperties" "storage.type.postgresql.database" }}')\gexec" | psql -h {{ include "postgresql-ha.postgresql" $postgresqlEmulatedRoot }} postgres postgres
echo "GRANT ALL PRIVILEGES ON DATABASE {{ index $root "Values" . "configProperties" "storage.type.postgresql.database" }} TO {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }}" | psql -h {{ include "postgresql-ha.postgresql" $postgresqlEmulatedRoot }} postgres postgres
{{ end }}
{{- end -}}

View File

@@ -0,0 +1,13 @@
{{- define "openwifi.user_creation_script_sql" -}}
{{- $root := . -}}
{{- $postgresqlBase := index .Values "postgresql" }}
{{- $postgresqlEmulatedRoot := (dict "Values" $postgresqlBase "Chart" (dict "Name" "postgresql") "Release" $.Release) }}
{{ range index .Values "postgresql" "initDbScriptSecret" "services" }}
CREATE USER {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }};
ALTER USER {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }} WITH ENCRYPTED PASSWORD '{{ index $root "Values" . "configProperties" "storage.type.postgresql.password" }}';
CREATE DATABASE {{ index $root "Values" . "configProperties" "storage.type.postgresql.database" }};
GRANT ALL PRIVILEGES ON DATABASE {{ index $root "Values" . "configProperties" "storage.type.postgresql.database" }} TO {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }};
ALTER DATABASE {{ index $root "Values" . "configProperties" "storage.type.postgresql.database" }} OWNER TO {{ index $root "Values" . "configProperties" "storage.type.postgresql.username" }};
{{ end }}
{{- end -}}

View File

@@ -0,0 +1,52 @@
{{- $root := . -}}
{{- if .Values.restapiCerts.enabled }}
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ow-wildcard
spec:
secretName: ow-wildcard-tls
commonName: {{ .Release.Namespace }}.svc.{{ .Values.restapiCerts.clusterDomain }}
isCA: true
duration: 87600h
usages:
- server auth
- client auth
issuerRef:
name: selfsigned-issuer
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: ow-ca-issuer
spec:
ca:
secretName: ow-wildcard-tls
{{ range .Values.restapiCerts.services }}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: {{ . }}-restapi
spec:
secretName: {{ . }}-restapi-tls
isCA: false
usages:
- server auth
- client auth
dnsNames:
- "{{ . }}"
- "{{ . }}.{{ $root.Release.Namespace }}.svc"
- "{{ . }}.{{ $root.Release.Namespace }}.svc.{{ $root.Values.restapiCerts.clusterDomain }}"
issuerRef:
name: ow-ca-issuer
{{- end }}
{{- end }}

View File

@@ -30,6 +30,10 @@ spec:
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
initContainers:
- name: delay
image: "alpine:latest"
command: ["/bin/sleep","{{ default 0 .Values.clustersysteminfo.delay }}"]
containers:
- name: clustersysteminfo-check
image: "{{ .Values.clustersysteminfo.images.clustersysteminfo.repository }}:{{ .Values.clustersysteminfo.images.clustersysteminfo.tag }}"

View File

@@ -0,0 +1,31 @@
{{- $root := . -}}
{{- if index .Values "postgresql-ha" "initDbScriptSecret" "enabled" }}
---
apiVersion: v1
metadata:
labels:
app.kubernetes.io/name: {{ include "openwifi.name" . }}
helm.sh/chart: {{ include "openwifi.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
name: {{ include "openwifi.fullname" . }}-initdb-scripts
kind: Secret
type: Opaque
data:
users_creation.sh: {{ include "openwifi.user_creation_script" . | b64enc | quote }}
{{- end }}
{{- if index .Values "postgresql" "initDbScriptSecret" "enabled" }}
---
apiVersion: v1
metadata:
labels:
app.kubernetes.io/name: {{ include "openwifi.name" . }}
helm.sh/chart: {{ include "openwifi.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
name: {{ include "openwifi.fullname" . }}-initdb-scripts
kind: Secret
type: Opaque
data:
initdb.sql: {{ include "openwifi.user_creation_script_sql" . | b64enc | quote }}
{{- end }}

View File

@@ -1,7 +1,6 @@
# OpenWIFI Gateway (https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/)
owgw:
fullnameOverride: owgw
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
@@ -9,7 +8,6 @@ owgw:
# OpenWIFI Security (https://github.com/Telecominfraproject/wlan-cloud-ucentralsec)
owsec:
fullnameOverride: owsec
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
@@ -17,7 +15,6 @@ owsec:
# OpenWIFI Firmware (https://github.com/Telecominfraproject/wlan-cloud-ucentralfms)
owfms:
fullnameOverride: owfms
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
@@ -25,7 +22,13 @@ owfms:
# OpenWIFI Provisioning (https://github.com/Telecominfraproject/wlan-cloud-owprov/)
owprov:
fullnameOverride: owprov
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
# OpenWIFI Analytics (https://github.com/Telecominfraproject/wlan-cloud-analytics)
owanalytics:
fullnameOverride: owanalytics
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
@@ -38,41 +41,26 @@ owgwui:
owprovui:
fullnameOverride: owprovui
# rttys (https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-rtty)
rttys:
enabled: true
fullnameOverride: rttys
config:
token: 96181c567b4d0d98c50f127230068fa8
# OpenWIFI Subscription (https://github.com/Telecominfraproject/wlan-cloud-userportal/)
owsub:
fullnameOverride: owsub
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
# kafka (https://github.com/bitnami/charts/blob/master/bitnami/kafka/)
kafka:
enabled: true
fullnameOverride: kafka
image:
registry: docker.io
repository: bitnami/kafka
tag: 2.8.0-debian-10-r43
minBrokerId: 100
zookeeper:
fullnameOverride: zookeeper
# clustersysteminfo check
clustersysteminfo:
enabled: false
fullnameOverride: clustersysteminfo
delay: 0 # number of seconds to delay clustersysteminfo execution
images:
clustersysteminfo:
repository: tip-tip-wlan-cloud-ucentral.jfrog.io/clustersysteminfo
tag: main
tag: v3.2.0
pullPolicy: Always
# regcred:
# registry: tip-tip-wlan-cloud-ucentral.jfrog.io
@@ -90,23 +78,353 @@ clustersysteminfo:
# limits:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
public_env_variables:
FLAGS: "-s --connect-timeout 3"
OWSEC: sec:16001
OWSEC: owsec-owsec:16001
CHECK_RETRIES: 30
secret_env_variables:
OWSEC_USERNAME: tip@ucentral.com
OWSEC_PASSWORD: openwifi
activeDeadlineSeconds: 1200
OWSEC_DEFAULT_USERNAME: tip@ucentral.com
OWSEC_DEFAULT_PASSWORD: openwifi
#OWSEC_NEW_PASSWORD: "" # Set this value in order for the check to work. Password must comply https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/#authenticationvalidationexpression
activeDeadlineSeconds: 2400
backoffLimit: 5
restartPolicy: OnFailure
# OpenWIFI Load Simulator (https://github.com/Telecominfraproject/wlan-cloud-owls)
owls:
enabled: false
fullnameOverride: owls
configProperties:
openwifi.kafka.enable: "true"
openwifi.kafka.brokerlist: kafka:9092
# OpenWIFI Load Simulator UI (https://github.com/Telecominfraproject/wlan-cloud-owls-ui)
owlsui:
enabled: false
fullnameOverride: owlsui
# HAproxy (https://github.com/bitnami/charts/tree/master/bitnami/haproxy)
haproxy:
enabled: true
fullnameOverride: proxy
replicaCount: 1
service:
type: LoadBalancer
ports:
# healthcheck
- name: health
protocol: TCP
port: 8080
targetPort: health
# owfms
- name: owfmsrest
protocol: TCP
port: 16004
targetPort: owfmsrest
- name: owfmsrestint
protocol: TCP
port: 17004
targetPort: owfmsrestint
# owgw
- name: owgwws
protocol: TCP
port: 15002
targetPort: owgwws
- name: owgwrest
protocol: TCP
port: 16002
targetPort: owgwrest
- name: owgwfileup
protocol: TCP
port: 16003
targetPort: owgwfileup
- name: owgwrestint
protocol: TCP
port: 17002
targetPort: owgwrestint
- name: owgwrttys
protocol: TCP
port: 5912
targetPort: owgwrttys
- name: owgwrttysview
protocol: TCP
port: 5913
targetPort: owgwrttysview
# owprov
- name: owprovrest
protocol: TCP
port: 16005
targetPort: owprovrest
- name: owprovrestint
protocol: TCP
port: 17005
targetPort: owprovrestint
# owsec
- name: owsecrest
protocol: TCP
port: 16001
targetPort: owsecrest
- name: owsecrestint
protocol: TCP
port: 17001
targetPort: owsecrestint
# owanalytics
- name: owanalyticsrest
protocol: TCP
port: 16009
targetPort: owanalyticsrest
- name: owanalyticsrint
protocol: TCP
port: 17009
targetPort: owanalyticsrint
# owsub
- name: owsubrest
protocol: TCP
port: 16006
targetPort: owsubrest
- name: owsubrint
protocol: TCP
port: 17006
targetPort: owsubrint
containerPorts:
# healthcheck
- name: health
containerPort: 8080
# owfms
- name: owfmsrest
containerPort: 16004
- name: owfmsrestint
containerPort: 17004
# owgw
- name: owgwws
containerPort: 15002
- name: owgwrest
containerPort: 16002
- name: owgwfileup
containerPort: 16003
- name: owgwrestint
containerPort: 17002
- name: owgwrttys
containerPort: 5912
- name: owgwrttysview
containerPort: 5913
# owprov
- name: owprovrest
containerPort: 16005
- name: owprovrestint
containerPort: 17005
# owsec
- name: owsecrest
containerPort: 16001
- name: owsecrestint
containerPort: 17001
# owanalytics
- name: owanalyticsrest
containerPort: 16009
- name: owanalyticsrint
containerPort: 17009
# owsub
- name: owsubrest
containerPort: 16006
- name: owsubrint
containerPort: 17006
configuration: |
global
log stdout format raw local0
maxconn 1024
defaults
log global
timeout client 360s
timeout connect 60s
timeout server 360s
# healthcheck
frontend front_healthcheck
bind :8080
mode http
default_backend back_healthcheck
backend back_healthcheck
mode http
http-after-response set-header Access-Control-Allow-Origin "*"
http-after-response set-header Access-Control-Max-Age "31536000"
http-request return status 200 content-type "text/plain" string "Pong"
# owfms
frontend front_owfms_rest
bind :16004
mode tcp
default_backend back_owfms_rest
backend back_owfms_rest
mode tcp
server svc_owfms_rest owfms-owfms:16004
frontend front_owfms_rest_internal
bind :17004
mode tcp
default_backend back_owfms_rest_internal
backend back_owfms_rest_internal
mode tcp
server svc_owfms_rest_internal owfms-owfms:17004
# owgw
frontend front_owgw_websocket
bind :15002
mode tcp
default_backend back_owgw_websocket
backend back_owgw_websocket
mode tcp
server svc_owgw_websocket owgw-owgw:15002
frontend front_owgw_rest
bind :16002
mode tcp
default_backend back_owgw_rest
backend back_owgw_rest
mode tcp
server svc_owgw_rest owgw-owgw:16002
frontend front_owgw_fileuploader
bind :16003
mode tcp
default_backend back_owgw_fileuploader
backend back_owgw_fileuploader
mode tcp
server svc_owgw_fileuploader owgw-owgw:16003
frontend front_owgw_rest_internal
bind :17002
mode tcp
default_backend back_owgw_rest_internal
backend back_owgw_rest_internal
mode tcp
server svc_owgw_rest_internal owgw-owgw:17002
frontend front_owgw_rttys
bind :5912
mode tcp
default_backend back_owgw_rttys
backend back_owgw_rttys
mode tcp
server svc_owgw_rttys owgw-owgw:5912
frontend front_owgw_rttys_view
bind :5913
mode tcp
default_backend back_owgw_rttys_view
backend back_owgw_rttys_view
mode tcp
server svc_owgw_rttys_view owgw-owgw:5913
# owprov
frontend front_owprov_rest
bind :16005
mode tcp
default_backend back_owprov_rest
backend back_owprov_rest
mode tcp
server svc_owprov_rest owprov-owprov:16005
frontend front_owprov_rest_internal
bind :17005
mode tcp
default_backend back_owprov_rest_internal
backend back_owprov_rest_internal
mode tcp
server svc_owprov_rest_internal owprov-owprov:17005
# owsec
frontend front_owsec_rest
bind :16001
mode tcp
default_backend back_owsec_rest
backend back_owsec_rest
mode tcp
server svc_owsec_rest owsec-owsec:16001
frontend front_owsec_rest_internal
bind :17001
mode tcp
default_backend back_owsec_rest_internal
backend back_owsec_rest_internal
mode tcp
server svc_owsec_rest_internal owsec-owsec:17001
# owanalytics
frontend front_owanalytics_rest
bind :16009
mode tcp
default_backend back_owanalytics_rest
backend back_owanalytics_rest
mode tcp
server svc_owanalytics_rest owanalytics-owanalytics:16009
frontend front_owanalytics_rest_internal
bind :17009
mode tcp
default_backend back_owanalytics_rest_internal
backend back_owanalytics_rest_internal
mode tcp
server svc_owanalytics_rest_internal owanalytics-owanalytics:17009
# owsub
frontend front_owsub_rest
bind :16006
mode tcp
default_backend back_owsub_rest
backend back_owsub_rest
mode tcp
server svc_owsub_rest owsub-owsub:16006
frontend front_owsub_rest_internal
bind :17006
mode tcp
default_backend back_owsub_rest_internal
backend back_owsub_rest_internal
mode tcp
server svc_owsub_rest_internal owsub-owsub:17006
# Cert-manager RESTAPI certs
restapiCerts:
enabled: false
services:
- owgw-owgw
- owsec-owsec
- owfms-owfms
- owprov-owprov
- owls-owls
- owanalytics-owanalytics
- owsub-owsub
clusterDomain: cluster.local
postgresql:
enabled: false
nameOverride: pgsql
fullnameOverride: pgsql
initDbScriptSecret:
enabled: false
services:
- owgw
- owsec
- owfms
- owprov
- owanalytics
- owsub
postgresql-ha:
enabled: false
nameOverride: pgsql
fullnameOverride: pgsql
initDbScriptSecret:
enabled: false
services:
- owgw
- owsec
- owfms
- owprov
- owanalytics
- owsub

View File

@@ -1,16 +1,19 @@
# Image tags
COMPOSE_PROJECT_NAME=openwifi
OWGW_TAG=master
OWGWUI_TAG=main
OWSEC_TAG=main
OWFMS_TAG=main
OWPROV_TAG=main
OWPROVUI_TAG=main
RTTYS_TAG=3.5.0
KAFKA_TAG=latest
ZOOKEEPER_TAG=latest
ACMESH_TAG=latest
TRAEFIK_TAG=latest
# set either default, selfsigned or letsencrypt
DEPLOY_TYPE=default
# Image tags
OWGW_TAG=v3.2.0
OWGWUI_TAG=v3.2.0
OWSEC_TAG=v3.2.0
OWFMS_TAG=v3.2.0
OWPROV_TAG=v3.2.0
OWPROVUI_TAG=v3.2.0
OWANALYTICS_TAG=v3.2.0
OWSUB_TAG=v3.2.0
KAFKA_TAG=3.7-debian-12
POSTGRESQL_TAG=15.0
# Microservice root/config directories
OWGW_ROOT=/owgw-data
@@ -21,9 +24,15 @@ OWFMS_ROOT=/owfms-data
OWFMS_CONFIG=/owfms-data
OWPROV_ROOT=/owprov-data
OWPROV_CONFIG=/owprov-data
OWANALYTICS_ROOT=/owanalytics-data
OWANALYTICS_CONFIG=/owanalytics-data
OWSUB_ROOT=/owsub-data
OWSUB_CONFIG=/owsub-data
# Microservice hostnames
INTERNAL_OWGW_HOSTNAME=owgw.wlan.local
INTERNAL_OWSEC_HOSTNAME=owsec.wlan.local
INTERNAL_OWFMS_HOSTNAME=owfms.wlan.local
INTERNAL_OWPROV_HOSTNAME=owprov.wlan.local
INTERNAL_OWANALYTICS_HOSTNAME=owanalytics.wlan.local
INTERNAL_OWSUB_HOSTNAME=owsub.wlan.local

View File

@@ -1,16 +1,19 @@
# Image tags
COMPOSE_PROJECT_NAME=openwifi
OWGW_TAG=master
OWGWUI_TAG=main
OWSEC_TAG=main
OWFMS_TAG=main
OWPROV_TAG=main
OWPROVUI_TAG=main
RTTYS_TAG=3.5.0
KAFKA_TAG=latest
ZOOKEEPER_TAG=latest
# Image tags
OWGW_TAG=v3.2.0
OWGWUI_TAG=v3.2.0
OWSEC_TAG=v3.2.0
OWFMS_TAG=v3.2.0
OWPROV_TAG=v3.2.0
OWPROVUI_TAG=v3.2.0
OWANALYTICS_TAG=v3.2.0
OWSUB_TAG=v3.2.0
KAFKA_TAG=3.7-debian-12
POSTGRESQL_TAG=15.0
ACMESH_TAG=latest
TRAEFIK_TAG=latest
TRAEFIK_TAG=v3.1.0
# Microservice root/config directories
OWGW_ROOT=/owgw-data
@@ -21,6 +24,10 @@ OWFMS_ROOT=/owfms-data
OWFMS_CONFIG=/owfms-data
OWPROV_ROOT=/owprov-data
OWPROV_CONFIG=/owprov-data
OWANALYTICS_ROOT=/owanalytics-data
OWANALYTICS_CONFIG=/owanalytics-data
OWSUB_ROOT=/owsub-data
OWSUB_CONFIG=/owsub-data
# Microservice hostnames
INTERNAL_OWGW_HOSTNAME=owgw.wlan.local
@@ -29,12 +36,8 @@ INTERNAL_OWSEC_HOSTNAME=owsec.wlan.local
INTERNAL_OWFMS_HOSTNAME=owfms.wlan.local
INTERNAL_OWPROV_HOSTNAME=owprov.wlan.local
INTERNAL_OWPROVUI_HOSTNAME=owprov-ui.wlan.local
INTERNAL_OWANALYTICS_HOSTNAME=owanalytics.wlan.local
INTERNAL_RTTYS_HOSTNAME=rttys.wlan.local
OWGW_HOSTNAME=
OWGWUI_HOSTNAME=
OWGWFILEUPLOAD_HOSTNAME=
OWSEC_HOSTNAME=
OWFMS_HOSTNAME=
OWPROV_HOSTNAME=
OWPROVUI_HOSTNAME=
RTTYS_HOSTNAME=
INTERNAL_OWSUB_HOSTNAME=owsub.wlan.local
SDKHOSTNAME=
#SDKHOSTNAME=openwifi.example.com

View File

@@ -1,14 +1,17 @@
# Image tags
COMPOSE_PROJECT_NAME=openwifi
OWGW_TAG=master
OWGWUI_TAG=main
OWSEC_TAG=main
OWFMS_TAG=main
OWPROV_TAG=main
OWPROVUI_TAG=main
RTTYS_TAG=3.5.0
KAFKA_TAG=latest
ZOOKEEPER_TAG=latest
# Image tags
OWGW_TAG=v3.2.0
OWGWUI_TAG=v3.2.0
OWSEC_TAG=v3.2.0
OWFMS_TAG=v3.2.0
OWPROV_TAG=v3.2.0
OWPROVUI_TAG=v3.2.0
OWANALYTICS_TAG=v3.2.0
OWSUB_TAG=v3.2.0
KAFKA_TAG=3.7-debian-12
POSTGRESQL_TAG=15.0
ACMESH_TAG=latest
TRAEFIK_TAG=latest
@@ -21,6 +24,10 @@ OWFMS_ROOT=/owfms-data
OWFMS_CONFIG=/owfms-data
OWPROV_ROOT=/owprov-data
OWPROV_CONFIG=/owprov-data
OWANALYTICS_ROOT=/owanalytics-data
OWANALYTICS_CONFIG=/owanalytics-data
OWSUB_ROOT=/owsub-data
OWSUB_CONFIG=/owsub-data
# Microservice hostnames
INTERNAL_OWGW_HOSTNAME=owgw.wlan.local
@@ -29,4 +36,5 @@ INTERNAL_OWSEC_HOSTNAME=owsec.wlan.local
INTERNAL_OWFMS_HOSTNAME=owfms.wlan.local
INTERNAL_OWPROV_HOSTNAME=owprov.wlan.local
INTERNAL_OWPROVUI_HOSTNAME=owprov-ui.wlan.local
INTERNAL_RTTYS_HOSTNAME=rttys.wlan.local
INTERNAL_OWANALYTICS_HOSTNAME=owanalytics.wlan.local
INTERNAL_OWSUB_HOSTNAME=owsub.wlan.local

View File

@@ -1,130 +1,247 @@
# Docker Compose
# OpenWifi SDK Docker Compose
### Overview
With the provided Docker Compose files you can instantiate a deployment of the OpenWifi microservices and related components. The repository contains a self-signed certificate and a TIP-signed gateway certificate which are valid for the `*.wlan.local` domain. You also have the possibility to either generate and use Letsencrypt certs or provide your own certificates. Furthermore the deployments are split by whether Traefik is used as a reverse proxy/load balancer in front of the microservices or if they are exposed directly on the host. The advantage of using the deployments with Traefik is that you can use Letsencrypt certs (automatic certificate generation and renewal) and you have the ability to scale specific containers to multiple replicas.
With the provided Docker Compose files you can instantiate a deployment of the OpenWifi microservices and related components. The repository contains a self-signed certificate and a TIP-signed gateway certificate which are valid for the `*.wlan.local` domain. You also have the possibility to either generate and use Let's Encrypt certs or provide your own certificates. Furthermore the deployments are split by whether Traefik is used as a reverse proxy/load balancer in front of the microservices or if they are exposed directly on the host. The advantage of using the deployments with Traefik is that you can use Let's Encrypt certs (automatic certificate generation and renewal) and you have the ability to scale specific containers to multiple replicas.
The repository also contains a separate Docker Compose deployment to set up the [OWLS microservice](https://github.com/Telecominfraproject/wlan-cloud-owls) and related components for running a load simulation test against an existing controller.
- [Non-LB deployment with self-signed certificates](#non-lb-deployment-with-self-signed-certificates)
- [Non-LB deployment with own certificates](#non-lb-deployment-with-own-certificates)
- [LB deployment with self-signed certificates](#lb-deployment-with-self-signed-certificates)
- [LB deployment with Letsencrypt certificates](#lb-deployment-with-letsencrypt-certificates)
- [LB deployment with Let's Encrypt certificates](#lb-deployment-with-letsencrypt-certificates)
- [OWLS deployment with self-signed certificates](owls/README.md)
- [AWS CloudFormation template](cloudformation/openwifi-cloudsdk-docker-compose.yml)
### Configuration
The configuration of the OpenWifi microservices is done via environment variables. For an overview of the supported configuration properties have a look into the microservice specific env files. For an explanation of the configuration properties please see the README in the respective microservice repository.
Config files for the microservices are generated on every startup based on the environment variables in the microservice specific env files. For an overview of the supported configuration properties have a look into these files. For an explanation of the configuration properties please see the README in the respective microservice repository.
Be aware that local changes to the config files will be overwritten on every startup if `TEMPLATE_CONFIG` is set to `true` in the microservice env files. If you want to bind mount your own config file or make local changes, please set this variable to `false`.
#### Required password changing on the first startup
One important action that must be done before using the deployment is changing password for the default user in owsec as described in [owsec docs](https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/tree/main#changing-default-password). Please use these docs to find the actions that must be done **after** the deployment in order to start using your deployment.
### Ports
Every OpenWifi service is exposed via a separate port either directly on the host or through Traefik. For an overview of the exposed ports have a look into the deployment specific Docker Compose file. If you use your own certificates, you can also configure different hostnames for the microservices.
Please note that the OWProv-UI is exposed on port `8080(HTTP)/8443(HTTPS)` by default.
### owsec templates and wwwassets
On the startup of owsec directories for wwwassets and mailer templates are created from the base files included in Docker image. After the initial startup you may edit those files as you wish in the [owsec-data/persist](./owsec-data/persist) directory.
## PostgreSQL
PostgreSQL is used by default for the database for all components.
The following variables may be set in the env files. It is highly recommended that you change the DB passwords to some random string. The defaults are shown here.
### owgw.env
| Variable | Value/Description |
| ---------------------------------- | ----------------- |
| `STORAGE_TYPE` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_HOST` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_USERNAME` | `owgw` |
| `STORAGE_TYPE_POSTGRESQL_PASSWORD` | `owgw` |
| `STORAGE_TYPE_POSTGRESQL_DATABASE` | `owgw` |
### owsec.env
| Variable | Value/Description |
| ---------------------------------- | ----------------- |
| `STORAGE_TYPE` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_HOST` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_USERNAME` | `owsec` |
| `STORAGE_TYPE_POSTGRESQL_PASSWORD` | `owsec` |
| `STORAGE_TYPE_POSTGRESQL_DATABASE` | `owsec` |
### owfms.env
| Variable | Value/Description |
| ---------------------------------- | ----------------- |
| `STORAGE_TYPE` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_HOST` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_USERNAME` | `owfms` |
| `STORAGE_TYPE_POSTGRESQL_PASSWORD` | `owfms` |
| `STORAGE_TYPE_POSTGRESQL_DATABASE` | `owfms` |
### owprov.env
| Variable | Value/Description |
| ---------------------------------- | ----------------- |
| `STORAGE_TYPE` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_HOST` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_USERNAME` | `owprov` |
| `STORAGE_TYPE_POSTGRESQL_PASSWORD` | `owprov` |
| `STORAGE_TYPE_POSTGRESQL_DATABASE` | `owprov` |
### owanalytics.env
| Variable | Value/Description |
| ---------------------------------- | ----------------- |
| `STORAGE_TYPE` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_HOST` | `postgresql` |
| `STORAGE_TYPE_POSTGRESQL_USERNAME` | `owanalytics` |
| `STORAGE_TYPE_POSTGRESQL_PASSWORD` | `owanalytics` |
| `STORAGE_TYPE_POSTGRESQL_DATABASE` | `owanalytics` |
### postgresql.env
| Variable | Value |
| --------------------------| ------------- |
| `POSTGRES_PASSWORD` | `postgres` |
| `POSTGRES_USER` | `postgres` |
| `OWGW_DB` | `owgw` |
| `OWGW_DB_USER` | `owgw` |
| `OWGW_DB_PASSWORD` | `owgw` |
| `OWSEC_DB` | `owsec` |
| `OWSEC_DB_USER` | `owsec` |
| `OWSEC_DB_PASSWORD` | `owsec` |
| `OWFMS_DB` | `owfms` |
| `OWFMS_DB_USER` | `owfms` |
| `OWFMS_DB_PASSWORD` | `owfms` |
| `OWPROV_DB` | `owprov` |
| `OWPROV_DB_USER` | `owprov` |
| `OWPROV_DB_PASSWORD` | `owprov` |
| `OWANALYTICS_DB` | `owanalytics` |
| `OWANALYTICS_DB_USER` | `owanalytics` |
| `OWANALYTICS_DB_PASSWORD` | `owanalytics` |
| `OWSUB_DB` | `owsub` |
| `OWSUB_DB_USER` | `owsub` |
| `OWSUB_DB_PASSWORD` | `owsub` |
## Non-LB deployment with self-signed certificates
1. Switch into the project directory with `cd docker-compose/`.
2. Add an entry for `openwifi.wlan.local` in your hosts file which points to `127.0.0.1` or whatever the IP of the host running the deployment is.
3. Spin up the deployment with `docker-compose up -d`.
4. Check if the containers are up and running with `docker-compose ps`.
5. Add SSL certificate exceptions in your browser by visiting https://openwifi.wlan.local:16001, https://openwifi.wlan.local:16002, https://openwifi.wlan.local:16004 and https://openwifi.wlan.local:16005.
5. Add SSL certificate exceptions in your browser by visiting https://openwifi.wlan.local:16001, https://openwifi.wlan.local:16002, https://openwifi.wlan.local:16004, https://openwifi.wlan.local:16005, https://openwifi.wlan.local:16006 and https://openwifi.wlan.local:16009.
6. Connect to your AP via SSH and add a static hosts entry in `/etc/hosts` for `openwifi.wlan.local`. This should point to the address of the host the Compose deployment runs on.
7. Navigate to the UI `https://openwifi.wlan.local` and login with your OWSec authentication data.
7. Login to the UI `https://openwifi.wlan.local` and follow the instructions to change your default password.
8. To use the curl test scripts included in the microservice repositories set the following environment variables:
```
export UCENTRALSEC="openwifi.wlan.local:16001"
export OWSEC="openwifi.wlan.local:16001"
export FLAGS="-s --cacert <your-wlan-cloud-ucentral-deploy-location>/docker-compose/certs/restapi-ca.pem"
```
⚠️**Note**: When deploying with self-signed certificates you can not make use of the trace functionality in the UI since the AP will throw a TLS error when uploading the trace to OWGW. Please use the Letsencrypt deployment or provide your own valid certificates if you want to use this function.
⚠️**Note**: When deploying with self-signed certificates you can not use the 'Trace' and 'Connect' features in the UI since the AP will throw a TLS error. Please use the Let's Encrypt deployment or provide your own valid certificates if you want to use these features.
## Non-LB deployment with own certificates
1. Switch into the project directory with `cd docker-compose/`. Copy your websocket and REST API certificates into the `certs/` directory. Make sure to reference the certificates accordingly in the service config if you use different file names or if you want to use different certificates for the respective microservices.
2. Adapt the following hostname and URI variables according to your environment:
### .env
| Variable | Description |
| -------------------------- | ------------------------------------------------------------------- |
| `INTERNAL_OWGW_HOSTNAME` | Set this to your OWGW hostname, for example `owgw.example.com`. |
| `INTERNAL_OWSEC_HOSTNAME` | Set this to your OWSec hostname, for example `owsec.example.com`. |
| `INTERNAL_OWFMS_HOSTNAME` | Set this to your OWFms hostname, for example `owfms.example.com`. |
| `INTERNAL_OWPROV_HOSTNAME` | Set this to your OWProv hostname, for example `owprov.example.com`. |
| Variable | Description |
| ------------------------------- | ---------------------------------------------------------------------------------- |
| `INTERNAL_OWGW_HOSTNAME` | Set this to your OWGW hostname, for example `owgw.example.com`. |
| `INTERNAL_OWSEC_HOSTNAME` | Set this to your OWSec hostname, for example `owsec.example.com`. |
| `INTERNAL_OWFMS_HOSTNAME` | Set this to your OWFms hostname, for example `owfms.example.com`. |
| `INTERNAL_OWPROV_HOSTNAME` | Set this to your OWProv hostname, for example `owprov.example.com`. |
| `INTERNAL_OWANALYTICS_HOSTNAME` | Set this to your OWAnalytics hostname, for example `owanalytics.example.com`. |
| `INTERNAL_OWSUB_HOSTNAME` | Set this to your OWSub hostname, for example `owsub.example.com`. |
### owgw.env
| Variable | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------------- |
| `FILEUPLOADER_HOST_NAME` | Set this to your OWGW fileupload hostname, for example `owgw.example.com`. |
| `FILEUPLOADER_URI` | Set this to your OWGW fileupload URL, for example `https://owgw.example.com:16003`. |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWGW REST API URL, for example `https://owgw.example.com:16002`. |
| `RTTY_SERVER` | Set this to your RTTY server hostname, for example `rttys.example.com`. |
| `RTTY_SERVER` | Set this to your OWGW RTTYS hostname, for example `owgw.example.com`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
### owgw-ui.env
| Variable | Description |
| ------------------------- | -------------------------------------------------------------------------- |
| `DEFAULT_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
| Variable | Description |
| --------------------------- | -------------------------------------------------------------------------- |
| `REACT_APP_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
### owsec.env
| Variable | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------------- |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWSec REST API URL, for example `https://owsec.example.com:16001`. |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
### owfms.env
| Variable | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------------- |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWFms REST API URL, for example `https://owfms.example.com:16004`. |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWFms URL, for example `https://owfms.example.com:16004`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
### owprov.env
| Variable | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------- |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWProv REST API URL, for example `https://owprov.example.com:16005`. |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWProv URL, for example `https://owprov.example.com:16005`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
### owprov-ui.env
| Variable | Description |
| ------------------------- | -------------------------------------------------------------------------- |
| `DEFAULT_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
| Variable | Description |
| --------------------------- | -------------------------------------------------------------------------- |
| `REACT_APP_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
### owanalytics.env
| Variable | Description |
| ---------------------------------------- | -------------------------------------------------------------------------------------- |
| `SYSTEM_URI_PRIVATE`,`SYSTEM_URI_PUBLIC` | Set this to your OWAnalytics URL, for example `https://owanalytics.example.com:16009`. |
| `SYSTEM_URI_UI` | Set this to your OWProv-UI URL, for example `https://owprov-ui.example.com`. |
3. Spin up the deployment with `docker-compose up -d`.
4. Check if the containers are up and running with `docker-compose ps`.
5. Navigate to the UI and login with your OWSec authentication data.
5. Login to the UI and and follow the instructions to change your default password.
## LB deployment with self-signed certificates
Follow the same instructions as for the self-signed deployment without Traefik. The only difference is that you have to spin up the deployment with `docker-compose -f docker-compose.lb.selfsigned.yml --env-file .env.selfsigned up -d`. Make sure to specify the Compose and the according .env file every time you're working with the deployment or create an alias, for example `alias docker-compose-lb-selfsigned="docker-compose -f docker-compose.lb.selfsigned.yml --env-file .env.selfsigned"`. You also have the possibility to scale specific services to a specified number of instances with `docker-compose-lb-selfsigned up -d --scale SERVICE=NUM`, where `SERVICE` is the service name as defined in the Compose file.
## LB deployment with Letsencrypt certificates
For the Letsencrypt challenge to work you need a public IP address. The hostnames which you set for the microservices have to resolve to this IP address to pass the HTTP-01 challenge (https://letsencrypt.org/docs/challenge-types/#http-01-challenge).
## LB deployment with Let's Encrypt certificates
For the Let's Encrypt challenge to work you need a public IP address. The hostname which you set in the `$SDKHOSTNAME` env variable has to resolve to this IP address to pass the HTTP-01 challenge (https://letsencrypt.org/docs/challenge-types/#http-01-challenge).
1. Switch into the project directory with `cd docker-compose/`.
2. Adapt the following hostname and URI variables according to your environment.
### .env.letsencrypt
| Variable | Description |
| ------------------------- | -------------------------------------------------------------------------- |
| `OWGW_HOSTNAME` | Set this to your OWGW hostname, for example `owgw.example.com`. |
| `OWGWUI_HOSTNAME` | Set this to your OWGW-UI hostname, for example `owgw-ui.example.com`. |
| `OWGWFILEUPLOAD_HOSTNAME` | Set this to your OWGW fileupload hostname, for example `owgw.example.com`. |
| `OWSEC_HOSTNAME` | Set this to your OWSec hostname, for example `owsec.example.com`. |
| `OWFMS_HOSTNAME` | Set this to your OWFms hostname, for example `owfms.example.com`. |
| `OWPROV_HOSTNAME` | Set this to your OWProv hostname, for example `owprov.example.com`. |
| `OWPROVUI_HOSTNAME` | Set this to your OWProv-UI hostname, for example `owprov-ui.example.com`. |
| `RTTYS_HOSTNAME` | Set this to your RTTYS hostname, for example `rttys.example.com`. |
| Variable | Description |
| ------------- | ---------------------------------------------------------------------------------------------------------- |
| `SDKHOSTNAME` | Set this to the public hostname you want to use for all microservices, for example `openwifi.example.com`. |
### owgw.env
| Variable | Description |
| ----------------------- | ----------------------------------------------------------------------------------- |
| `FILEUPLOADER_HOST_NAME` | Set this to your OWGW fileupload hostname, for example `owgw.example.com`. |
| `FILEUPLOADER_URI` | Set this to your OWGW fileupload URL, for example `https://owgw.example.com:16003`. |
| `SYSTEM_URI_PUBLIC` | Set this to your OWGW REST API URL, for example `https://owgw.example.com:16002`. |
| `RTTY_SERVER` | Set this to your public RTTY server hostname, for example `rttys.example.com`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
| Variable | Description |
| ----------------------- | --------------------------------------------------------------------------------------- |
| `FILEUPLOADER_HOST_NAME` | Set this to your OWGW fileupload hostname, for example `openwifi.example.com`. |
| `FILEUPLOADER_URI` | Set this to your OWGW fileupload URL, for example `https://openwifi.example.com:16003`. |
| `SYSTEM_URI_PUBLIC` | Set this to your OWGW REST API URL, for example `https://openwifi.example.com:16002`. |
| `RTTY_SERVER` | Set this to your OWGW RTTYS hostname, for example `openwifi.example.com`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://openwifi.example.com`. |
### owgw-ui.env
| Variable | Description |
| ------------------- | -------------------------------------------------------------------------- |
| `DEFAULT_OWSEC_URL` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
| Variable | Description |
| --------------------------- | ----------------------------------------------------------------------------- |
| `REACT_APP_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://openwifi.example.com:16001`. |
### owsec.env
| Variable | Description |
| ------------------- | -------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
| Variable | Description |
| ------------------- | ----------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWSec URL, for example `https://openwifi.example.com:16001`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://openwifi.example.com`. |
### owfms.env
| Variable | Description |
| ------------------- | -------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWFms URL, for example `https://owfms.example.com:16004`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
| Variable | Description |
| ------------------- | ----------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWFms URL, for example `https://openwifi.example.com:16004`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://openwifi.example.com`. |
### owprov.env
| Variable | Description |
| -------------------- | ---------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWProv URL, for example `https://owprov.example.com:16005`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://owgw-ui.example.com`. |
| Variable | Description |
| -------------------- | ------------------------------------------------------------------------------ |
| `SYSTEM_URI_PUBLIC` | Set this to your OWProv URL, for example `https://openwifi.example.com:16005`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://openwifi.example.com`. |
### owprov-ui.env
| Variable | Description |
| ------------------------- | -------------------------------------------------------------------------- |
| `DEFAULT_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://owsec.example.com:16001`. |
| Variable | Description |
| --------------------------- | ----------------------------------------------------------------------------- |
| `REACT_APP_UCENTRALSEC_URL` | Set this to your OWSec URL, for example `https://openwifi.example.com:16001`. |
### owanalytics.env
| Variable | Description |
| -------------------- | ----------------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWAnalytics URL, for example `https://openwifi.example.com:16009`. |
| `SYSTEM_URI_UI` | Set this to your OWProv-UI URL, for example `https://openwifi.example.com`. |
### owsub.env
| Variable | Description |
| -------------------- | ----------------------------------------------------------------------------- |
| `SYSTEM_URI_PUBLIC` | Set this to your OWSub URL, for example `https://openwifi.example.com:16006`. |
| `SYSTEM_URI_UI` | Set this to your OWGW-UI URL, for example `https://openwifi.example.com`. |
### traefik.env
| Variable | Description |
| --------------------------------------------------- | ----------------------------------------- |
| `TRAEFIK_CERTIFICATESRESOLVERS_OPENWIFI_ACME_EMAIL` | Email address used for ACME registration. |
3. Spin up the deployment with `docker-compose -f docker-compose.lb.letsencrypt.yml --env-file .env.letsencrypt up -d`. Make sure to specify the Compose and the according .env file every time you're working with the deployment or create an alias, for example `alias docker-compose-lb-letsencrypt="docker-compose -f docker-compose.lb.letsencrypt.yml --env-file .env.letsencrypt"`. You also have the possibility to scale specific services to a specified number of instances with `docker-compose-lb-letsencrypt up -d --scale SERVICE=NUM`, where `SERVICE` is the service name as defined in the Compose file.
4. Check if the containers are up and running with `docker-compose-lb-letsencrypt ps`.
5. Navigate to the UI and login with your OWSec authentication data.
5. Login to the UI and follow the instructions to change your default password.
**Note**: The deployments create local volumes to persist mostly application, database and certificate data. In addition to that the `certs/` directory is bind mounted into the microservice containers. Be aware that for the bind mounts the host directories and files will be owned by the user in the container. Since the files are under version control, you may have to change the ownership to your user again before pulling changes.
### owsec templates and wwwassets
On the startup of owsec directories for wwwassets and mailer templates are created from the base files included in Docker image. After the initial startup you may edit those files as you wish in the [owsec-data/persist](./owsec-data/persist) directory.
**Note**: All deployments create local volumes to persist mostly application, database and certificate data. In addition to that the `certs/` directory is bind mounted into the microservice containers. Be aware that for the bind mounts the host directories and files will be owned by the user in the container. Since the files are under version control, you may have to change the ownership to your user again before pulling changes.

View File

@@ -0,0 +1,20 @@
# OpenWiFi Cloud SDK deployment with CloudFormation
With the YAML template included in this directory you can create an OpenWiFi Cloud SDK deployment with the help of AWS CloudFormation (https://aws.amazon.com/cloudformation).
The template creates a CloudFormation stack based on the Docker Compose Let's Encrypt deployment (https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/tree/main/docker-compose#lb-deployment-with-letsencrypt-certificates). The created stack consists of an EC2 instance, and depending on the input parameters, also adds a Route53 hosted zone and a DNS record.
⚠️**Note**: Please be aware that you will be billed for the AWS resources if you create a stack from this template.
1. Login into the AWS Management Console (https://aws.amazon.com/de/console).
2. Go to the AWS Systems Manager Parameter Store page and create two parameters according to these instructions https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-create-console.html: one for your Digicert-signed websocket certificate and the other one for the corresponding key. You can leave the default parameter details: you need two standard parameters with type `String` and data type `text`. Just copy and paste your certificate and key into the `Value` field of the respective parameter and remember the parameter names.
3. Go to the CloudFormation service page and follow the instructions described here https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html to upload a template file and choose the template included in this repository.
4. In the next step you have to enter multiple input parameters required for a successful deployment. Here's an explanation of all parameters:
**InstanceType**: Choose an AWS EC2 instance type (https://aws.amazon.com/ec2/instance-types). The smallest instance type you can choose is t2.small.
**KeyName**: Specify the name of the SSH key pair you want to use to connect the instance. If you don't have a key pair yet, please create or import one according to these instructions https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html.
**SSHLocation**: If you want to restrict the IP range which is allowed to connect to the instance via SSH, please specify a valid CIDR IP range here.
**CreateRoute53Record**: To expose your SDK installation to the public you need a valid DNS entry for your SDK hostname. This is also required to pass the Let's Encrypt HTTP-01 challenge (https://letsencrypt.org/de/docs/challenge-types/#http-01-challenge). If you set this to `True`, an Amazon Route53 entry (https://aws.amazon.com/route53) for the hostname defined in the **SDKHostname** parameter is automatically created. This Route53 entry will resolve to the public IP address of the EC2 instance. You can also set this to `False` and create a DNS entry manually afterwards.
**ExistingHostedZoneId**: If you decide to create a Route53 record and already have an existing hosted zone which you want to use, please specify the according hosted zone ID. You can get the ID by listing your public hosted zones (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ListInfoOnHostedZone.html).
**HostedZoneName**: If you didn't create the hosted zone yet which you want to use for your Route53 record, please specify the domain name of the hosted zone you want to create. Be aware that if you set **CreateRoute53Record** to `True`, you only have to specify either `ExistingHostedZoneId` or `HostedZoneName`. If you decide to create the DNS record yourself, you can leave both parameters empty.
**SDKVersion**: The SDK version you want to use for your deployment. You can either use release names (e.g. `v2.6.0`) or Git branch names (for example `release/v2.6.0`).
**SDKHostname**: Enter a valid public hostname which you want to use for your deployment. This has to resolve to the public IP address of the created EC2 instance. If you set **CreateRoute53Record** to `False`, don't forget to create a DNS entry manually afterwards.
**WebsocketCertParameter**: The name of the AWS Systems Manager parameter containing your Digicert-signed websocket certificate.
**WebsocketKeyParameter**: The name of the AWS Systems Manager parameter containing the key to your Digicert-signed websocket certificate.
**TraefikAcmeEmail**: Enter a valid email address to complete Let's Encrypt ACME registration.

View File

@@ -0,0 +1,333 @@
AWSTemplateFormatVersion: 2010-09-09
Description: |
OpenWiFi Cloud SDK Docker Compose Deployment: This template creates an
OpenWiFi Cloud SDK deployment using Docker Compose and Letsencrypt for
northbound certificates (https://github.com/Telecominfraproject/
wlan-cloud-ucentral-deploy/tree/main/docker-compose
#lb-deployment-with-letsencrypt-certificates).
**WARNING** You will be billed for the AWS resources used if you create a
stack from this template.
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: "Amazon EC2 configuration"
Parameters:
- InstanceType
- LatestUbuntuFocalAMI
- KeyName
- SSHLocation
- Label:
default: "Amazon Route53 configuration"
Parameters:
- CreateRoute53Record
- ExistingHostedZoneId
- HostedZoneName
- Label:
default: "OpenWiFi cloud SDK configuration"
Parameters:
- SDKVersion
- SDKHostname
- WebsocketCertParameter
- WebsocketKeyParameter
- TraefikAcmeEmail
Parameters:
KeyName:
Description: Name of the EC2 KeyPair to enable SSH access to the instance.
Type: AWS::EC2::KeyPair::KeyName
ConstraintDescription: Must be the name of an existing EC2 KeyPair.
SDKHostname:
Description: Hostname you want to use for your OpenWiFi Cloud SDK installation.
Default: openwifi.wlan.local
Type: String
AllowedPattern: "^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$"
TraefikAcmeEmail:
Description: Email address used for ACME registration
Type: String
CreateRoute53Record:
Description: |
Set this to "True" if you want to create a DNS record for the SDK
hostname.
This will resolve to the public IP of the created EC2 instance.
AllowedValues:
- "True"
- "False"
Default: "False"
Type: String
ExistingHostedZoneId:
Description: |
If you want to create the Route53 record in an existing hosted zone,
please specify the according hosted zone ID.
Type: String
# MinLength: 21
# MaxLength: 21
# AllowedPattern: "[A-Z0-9]+"
HostedZoneName:
Description: |
If you want to create a new hosted zone for the Route53 record, please
specify the name of the domain.
Type: String
# AllowedPattern: "^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$"
SDKVersion:
Description: OpenWiFi Cloud SDK version to be deployed.
Default: main
Type: String
WebsocketCertParameter:
Description: |
The AWS Systems Manager parameter containing your Digicert-signed
websocket certificate.
Type: AWS::SSM::Parameter::Value<String>
WebsocketKeyParameter:
Description: |
The AWS Systems Manager parameter containing the key to your
Digicert-signed websocket certificate.
Type: AWS::SSM::Parameter::Value<String>
LatestUbuntuFocalAMI:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
Default: "/aws/service/canonical/ubuntu/server/focal/stable/current/amd64/hvm/ebs-gp2/ami-id"
InstanceType:
Description: Cloud SDK EC2 instance type
Type: String
Default: t2.small
AllowedValues:
- t2.small
- t2.medium
- t2.large
- m1.small
- m1.medium
- m1.large
- m1.xlarge
- m2.xlarge
- m2.2xlarge
- m2.4xlarge
- m3.medium
- m3.large
- m3.xlarge
- m3.2xlarge
- m4.large
- m4.xlarge
- m4.2xlarge
- m4.4xlarge
- m4.10xlarge
- c1.medium
- c1.xlarge
- c3.large
- c3.xlarge
- c3.2xlarge
- c3.4xlarge
- c3.8xlarge
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- g2.2xlarge
- g2.8xlarge
- r3.large
- r3.xlarge
- r3.2xlarge
- r3.4xlarge
- r3.8xlarge
- i2.xlarge
- i2.2xlarge
- i2.4xlarge
- i2.8xlarge
- d2.xlarge
- d2.2xlarge
- d2.4xlarge
- d2.8xlarge
- hi1.4xlarge
- hs1.8xlarge
- cr1.8xlarge
- cc2.8xlarge
- cg1.4xlarge
ConstraintDescription: must be a valid EC2 instance type.
SSHLocation:
Description: |
The IP address range that can be used to SSH to the EC2 instances
Type: String
MinLength: "9"
MaxLength: "18"
Default: 0.0.0.0/0
AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})"
ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.
Conditions:
HasExistingHostedZoneId: !Not [ !Equals [ !Ref ExistingHostedZoneId, "" ] ]
HasHostedZoneName: !Not [ !Equals [ !Ref HostedZoneName, "" ] ]
CreateRoute53Record: !Equals [ !Ref CreateRoute53Record, "True" ]
CreateRecordInExistingZone: !And [ Condition: HasExistingHostedZoneId, Condition: CreateRoute53Record ]
CreateRecordInNewZone: !And [ Condition: HasHostedZoneName, Condition: CreateRoute53Record ]
Resources:
CloudSDKInstance:
Type: "AWS::EC2::Instance"
Metadata:
"AWS::CloudFormation::Init":
configSets:
InstallDockerAndCreateDeployment:
- InstallDocker
- CreateCloudSDKDeployment
InstallDocker:
packages:
apt:
ca-certificates: []
curl: []
gnupg: []
lsb-release: []
php-mysql: []
commands:
a_add_repo_gpg_key:
command: |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o \
/usr/share/keyrings/docker-archive-keyring.gpg
b_add_docker_repo:
command: |
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) \
stable" | sudo tee /etc/apt/sources.list.d/docker.list \
> /dev/null
c_install_docker:
command: |
sudo apt-get update \
&& sudo apt-get install -y docker-ce docker-ce-cli \
containerd.io docker-compose-plugin docker-compose
d_enable_and_start_docker:
command: |
sudo systemctl enable docker && sudo systemctl start docker
e_add_ubuntu_user_to_docker_group:
command: "sudo usermod -aG docker ubuntu"
CreateCloudSDKDeployment:
files:
/etc/profile.d/aliases.sh:
content: |
alias docker-compose-lb-letsencrypt="docker-compose -f \
docker-compose.lb.letsencrypt.yml --env-file .env.letsencrypt"
alias docker-compose-lb-selfsigned="docker-compose -f \
docker-compose.lb.selfsigned.yml --env-file .env.selfsigned"
mode: "000644"
owner: "root"
group: "root"
commands:
a_clone_deploy_repo:
command: |
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy
cwd: "~"
b_checkout_deploy_version:
command: !Sub "git checkout ${SDKVersion}"
cwd: "~/wlan-cloud-ucentral-deploy"
c_create_deployment:
command: "./deploy.sh"
env:
DEFAULT_UCENTRALSEC_URL: !Sub "https://${SDKHostname}:16001"
SYSTEM_URI_UI: !Sub "https://${SDKHostname}"
SDKHOSTNAME: !Sub "${SDKHostname}"
WEBSOCKET_CERT: !Ref WebsocketCertParameter
WEBSOCKET_KEY: !Ref WebsocketKeyParameter
OWGW_FILEUPLOADER_HOST_NAME: !Sub "${SDKHostname}"
OWGW_FILEUPLOADER_URI: !Sub "https://${SDKHostname}:16003"
OWGW_SYSTEM_URI_PUBLIC: !Sub "https://${SDKHostname}:16002"
OWGW_RTTY_SERVER: !Sub "${SDKHostname}"
OWSEC_SYSTEM_URI_PUBLIC: !Sub "https://${SDKHostname}:16001"
OWFMS_SYSTEM_URI_PUBLIC: !Sub "https://${SDKHostname}:16004"
OWPROV_SYSTEM_URI_PUBLIC: !Sub "https://${SDKHostname}:16005"
OWANALYTICS_SYSTEM_URI_PUBLIC: !Sub "https://${SDKHostname}:16009"
OWSUB_SYSTEM_URI_PUBLIC: !Sub "https://${SDKHostname}:16006"
TRAEFIK_ACME_EMAIL: !Sub "${TraefikAcmeEmail}"
cwd: "~/wlan-cloud-ucentral-deploy/docker-compose"
Properties:
ImageId: !Ref LatestUbuntuFocalAMI
InstanceType: !Ref InstanceType
SecurityGroups:
- !Ref CloudSDKSecurityGroup
KeyName: !Ref KeyName
UserData:
Fn::Base64: !Sub |
#!/bin/bash -xe
apt-get update -y
mkdir -p /opt/aws/bin
wget https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz
python3 -m easy_install --script-dir /opt/aws/bin aws-cfn-bootstrap-py3-latest.tar.gz
/opt/aws/bin/cfn-init -v \
--stack ${AWS::StackName} \
--resource CloudSDKInstance \
--configsets InstallDockerAndCreateDeployment \
--region ${AWS::Region}
/opt/aws/bin/cfn-signal -e $? \
--stack ${AWS::StackName} \
--resource CloudSDKInstance \
--region ${AWS::Region}
CreationPolicy:
ResourceSignal:
Timeout: PT5M
CloudSDKSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
GroupDescription: Enable OpenWiFi Cloud SDK and SSH access
SecurityGroupIngress:
- IpProtocol: icmp
FromPort: "-1"
ToPort: "-1"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "80"
ToPort: "80"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "443"
ToPort: "443"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "15002"
ToPort: "15002"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "16001"
ToPort: "16006"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "16009"
ToPort: "16009"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "5912"
ToPort: "5913"
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: "22"
ToPort: "22"
CidrIp: !Ref SSHLocation
CloudSDKHostedZone:
Condition: HasHostedZoneName
Type: AWS::Route53::HostedZone
Properties:
Name: !Ref HostedZoneName
CloudSDKRoute53RecordExistingHostedZone:
Condition: CreateRecordInExistingZone
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: !Ref ExistingHostedZoneId
Name: !Ref SDKHostname
Type: A
TTL: 900
ResourceRecords:
- !GetAtt CloudSDKInstance.PublicIp
CloudSDKRoute53RecordNewHostedZone:
Condition: CreateRecordInNewZone
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: !GetAtt CloudSDKHostedZone.Id
Name: !Ref SDKHostname
Type: A
TTL: 900
ResourceRecords:
- !GetAtt CloudSDKInstance.PublicIp
Outputs:
WebsiteURL:
Description: |
Visit this URL and login with user 'tip@ucentral.com' and password
'openwifi'.
Value: !Join
- ""
- - "https://"
- !Ref SDKHostname

32
docker-compose/dco Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
# Wrapper around docker-compose that will use the correct command line options
# depending on what type of setup you have.
# It captures $1 == clean and performs cleanup of the volumes and data directories,
# It captures $1 == launch or l and runs: ... up -d,
# but passes everything else straight to the docker-compose command.
cmd="docker-compose"
deploy_type=$(grep "^DEPLOY_TYPE=" .env | awk -F= '{ print $2 }')
[ -z "$deploy_type" ] && deploy_type="default"
if [[ "$deploy_type" == "letsencrypt" ]] ; then
cmd="$cmd -f docker-compose.lb.letsencrypt.yml --env-file .env.letsencrypt"
elif [[ "$deploy_type" == "selfsigned" ]] ; then
cmd="$cmd -f docker-compose.lb.selfsigned.yml --env-file .env.selfsigned"
elif [[ "$deploy_type" == "default" ]] ; then
# ok
true
else
echo "Invalid DEPLOY_TYPE: $deploy_type"
echo "Should be one of: default, letsencrypt or selfsigned"
exit 1
fi
if [[ "$1" == "clean" ]] ; then
set -x
$cmd down -v
rm -rf *_data
elif [[ "$1" == "launch" || "$1" == "l" ]] ; then
set -x
$cmd up -d
else
set -x
$cmd "$@"
fi

191
docker-compose/deploy.sh Executable file
View File

@@ -0,0 +1,191 @@
#!/bin/bash
set -e
# Usage function
usage () {
echo;
echo "This script is intended for OpenWiFi cloud SDK deployment using Docker Compose (https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/tree/main/docker-compose). Configuration is done based on shell environment variables.";
echo;
echo "Required environment variables:"
echo;
echo "- DEFAULT_UCENTRALSEC_URL - public URL of the OWSec service"
echo "- SYSTEM_URI_UI - public URL of the OWGW-UI service"
echo;
# echo "- INTERNAL_OWGW_HOSTNAME - OWGW microservice hostname for Docker internal communication"
# echo "- INTERNAL_OWSEC_HOSTNAME - OWSec microservice hostname for Docker internal communication"
# echo "- INTERNAL_OWFMS_HOSTNAME - OWFms microservice hostname for Docker internal communication"
# echo "- INTERNAL_OWPROV_HOSTNAME - OWProv microservice hostname for Docker internal communication"
# echo "- INTERNAL_OWANALYTICS_HOSTNAME - OWAnalytics microservice hostname for Docker internal communication"
# echo "- INTERNAL_OWSUB_HOSTNAME - OWSub microservice hostname for Docker internal communication"
# echo;
echo "- OWGW_FILEUPLOADER_HOST_NAME - hostname to be used for OWGW fileupload";
echo "- OWGW_FILEUPLOADER_URI - URL to be used for OWGW fileupload";
# echo "- OWGW_SYSTEM_URI_PRIVATE - private URL to be used for OWGW";
echo "- OWGW_SYSTEM_URI_PUBLIC - public URL to be used for OWGW";
echo "- OWGW_RTTY_SERVER - public hostname of the RTTY server";
echo;
# echo "- OWSEC_SYSTEM_URI_PRIVATE - private URL to be used for OWSec";
echo "- OWSEC_SYSTEM_URI_PUBLIC - public URL to be used for OWSec";
echo;
# echo "- OWFMS_SYSTEM_URI_PRIVATE - private URL to be used for OWFms";
echo "- OWFMS_SYSTEM_URI_PUBLIC - public URL to be used for OWFms";
echo;
# echo "- OWPROV_SYSTEM_URI_PRIVATE - private URL to be used for OWProv";
echo "- OWPROV_SYSTEM_URI_PUBLIC - public URL to be used for OWProv";
echo;
# echo "- OWANALYTICS_SYSTEM_URI_PRIVATE - private URL to be used for OWAnalytics";
echo "- OWANALYTICS_SYSTEM_URI_PUBLIC - public URL to be used for OWAnalytics";
echo;
# echo "- OWSUB_SYSTEM_URI_PRIVATE - private URL to be used for OWSub";
echo "- OWSUB_SYSTEM_URI_PUBLIC - public URL to be used for OWSub";
echo;
echo "Optional environment variables:"
echo "- WEBSOCKET_CERT - Your Digicert-signed websocket certificate"
echo "- WEBSOCKET_KEY - The key to your Digicert-signed websocket certificate"
echo;
echo "- OWSEC_AUTHENTICATION_DEFAULT_USERNAME - username to be used for requests to OWSec";
echo "- OWSEC_AUTHENTICATION_DEFAULT_PASSWORD - hashed password for OWSec (details on this may be found in https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/#authenticationdefaultpassword)";
echo;
echo "- OWFMS_S3_SECRET - secret key that is used for OWFms access to firmwares S3 bucket";
echo "- OWFMS_S3_KEY - access key that is used for OWFms access to firmwares S3 bucket";
echo;
echo "- SDKHOSTNAME - Public hostname which is used for cert generation when using the Letsencrypt deployment method"
echo;
echo "- TRAEFIK_ACME_EMAIL - Email address used for ACME registration"
echo;
echo "- CERTIFICATES_ALLOWMISMATCH - boolean flag to allow certificates serial mismatch";
}
# Check if required environment variables were passed
## Configuration variables applying to multiple microservices
[ -z ${DEFAULT_UCENTRALSEC_URL+x} ] && echo "DEFAULT_UCENTRALSEC_URL is unset" && usage && exit 1
[ -z ${SYSTEM_URI_UI+x} ] && echo "SYSTEM_URI_UI is unset" && usage && exit 1
## Internal microservice hostnames
#[ -z ${INTERNAL_OWGW_HOSTNAME+x} ] && echo "INTERNAL_OWGW_HOSTNAME is unset" && usage && exit 1
#[ -z ${INTERNAL_OWSEC_HOSTNAME+x} ] && echo "INTERNAL_OWSEC_HOSTNAME is unset" && usage && exit 1
#[ -z ${INTERNAL_OWFMS_HOSTNAME+x} ] && echo "INTERNAL_OWFMS_HOSTNAME is unset" && usage && exit 1
#[ -z ${INTERNAL_OWPROV_HOSTNAME+x} ] && echo "INTERNAL_OWPROV_HOSTNAME is unset" && usage && exit 1
#[ -z ${INTERNAL_OWANALYTICS_HOSTNAME+x} ] && echo "INTERNAL_OWANALYTICS_HOSTNAME is unset" && usage && exit 1
#[ -z ${INTERNAL_OWSUB_HOSTNAME+x} ] && echo "INTERNAL_OWSUB_HOSTNAME is unset" && usage && exit 1
## OWGW configuration variables
[ -z ${OWGW_FILEUPLOADER_HOST_NAME+x} ] && echo "OWGW_FILEUPLOADER_HOST_NAME is unset" && usage && exit 1
[ -z ${OWGW_FILEUPLOADER_URI+x} ] && echo "OWGW_FILEUPLOADER_URI is unset" && usage && exit 1
#[ -z ${OWGW_SYSTEM_URI_PRIVATE+x} ] && echo "OWGW_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWGW_SYSTEM_URI_PUBLIC+x} ] && echo "OWGW_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
[ -z ${OWGW_RTTY_SERVER+x} ] && echo "OWGW_RTTY_SERVER is unset" && usage && exit 1
## OWSec configuration variables
#[ -z ${OWSEC_SYSTEM_URI_PRIVATE+x} ] && echo "OWSEC_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWSEC_SYSTEM_URI_PUBLIC+x} ] && echo "OWSEC_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
## OWFms configuration variables
#[ -z ${OWFMS_SYSTEM_URI_PRIVATE+x} ] && echo "OWFMS_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWFMS_SYSTEM_URI_PUBLIC+x} ] && echo "OWFMS_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
## OWProv configuration variables
#[ -z ${OWPROV_SYSTEM_URI_PRIVATE+x} ] && echo "OWPROV_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWPROV_SYSTEM_URI_PUBLIC+x} ] && echo "OWPROV_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
## OWAnalytics configuration variables
#[ -z ${OWANALYTICS_SYSTEM_URI_PRIVATE+x} ] && echo "OWANALYTICS_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWANALYTICS_SYSTEM_URI_PUBLIC+x} ] && echo "OWANALYTICS_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
## OWSub configuration variables
#[ -z ${OWSUB_SYSTEM_URI_PRIVATE+x} ] && echo "OWSUB_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWSUB_SYSTEM_URI_PUBLIC+x} ] && echo "OWSUB_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
# Search and replace image version tags if set
if [[ ! -z "$OWGW_VERSION" ]]; then
sed -i "s~.*OWGW_TAG=.*~OWGW_TAG=$OWGW_VERSION~" .env
fi
if [[ ! -z "$OWSEC_VERSION" ]]; then
sed -i "s~.*OWSEC_TAG=.*~OWSEC_TAG=$OWSEC_VERSION~" .env
fi
if [[ ! -z "$OWFMS_VERSION" ]]; then
sed -i "s~.*OWFMS_TAG=.*~OWFMS_TAG=$OWFMS_VERSION~" .env
fi
if [[ ! -z "$OWPROV_VERSION" ]]; then
sed -i "s~.*OWPROV_TAG=.*~OWPROV_TAG=$OWPROV_VERSION~" .env
fi
if [[ ! -z "$OWANALYTICS_VERSION" ]]; then
sed -i "s~.*OWANALYTICS_TAG=.*~OWANALYTICS_TAG=$OWANALYTICS_VERSION~" .env
fi
if [[ ! -z "$OWSUB_VERSION" ]]; then
sed -i "s~.*OWSUB_TAG=.*~OWSUB_TAG=$OWSUB_VERSION~" .env
fi
# Search and replace variable values in env files
#sed -i "s~\(^INTERNAL_OWGW_HOSTNAME=\).*~\1$INTERNAL_OWGW_HOSTNAME~" .env
#sed -i "s~\(^INTERNAL_OWSEC_HOSTNAME=\).*~\1$INTERNAL_OWSEC_HOSTNAME~" .env
#sed -i "s~\(^INTERNAL_OWFMS_HOSTNAME=\).*~\1$INTERNAL_OWFMS_HOSTNAME~" .env
#sed -i "s~\(^INTERNAL_OWPROV_HOSTNAME=\).*~\1$INTERNAL_OWPROV_HOSTNAME~" .env
#sed -i "s~\(^INTERNAL_OWANALYTICS_HOSTNAME=\).*~\1$INTERNAL_OWANALYTICS_HOSTNAME~" .env
#sed -i "s~\(^INTERNAL_OWSUB_HOSTNAME=\).*~\1$INTERNAL_OWSUB_HOSTNAME~" .env
if [[ ! -z "$SDKHOSTNAME" ]]; then
sed -i "s~.*SDKHOSTNAME=.*~SDKHOSTNAME=$SDKHOSTNAME~" .env.letsencrypt
fi
if [[ ! -z "$WEBSOCKET_CERT" ]]; then
echo "$WEBSOCKET_CERT" > certs/websocket-cert.pem
fi
if [[ ! -z "$WEBSOCKET_KEY" ]]; then
echo "$WEBSOCKET_KEY" > certs/websocket-key.pem && chmod 600 certs/websocket-key.pem
fi
sed -i "s~.*FILEUPLOADER_HOST_NAME=.*~FILEUPLOADER_HOST_NAME=$OWGW_FILEUPLOADER_HOST_NAME~" owgw.env
sed -i "s~.*FILEUPLOADER_URI=.*~FILEUPLOADER_URI=$OWGW_FILEUPLOADER_URI~" owgw.env
sed -i "s~.*SYSTEM_URI_PUBLIC=.*~SYSTEM_URI_PUBLIC=$OWGW_SYSTEM_URI_PUBLIC~" owgw.env
#sed -i "s~.*SYSTEM_URI_PRIVATE=.*~SYSTEM_URI_PRIVATE=$OWGW_SYSTEM_URI_PRIVATE~" owgw.env
sed -i "s~.*SYSTEM_URI_UI=.*~SYSTEM_URI_UI=$SYSTEM_URI_UI~" owgw.env
sed -i "s~.*RTTY_SERVER=.*~RTTY_SERVER=$OWGW_RTTY_SERVER~" owgw.env
if [[ ! -z "$SIMULATORID" ]]; then
sed -i "s~.*SIMULATORID=.*~SIMULATORID=$SIMULATORID~" owgw.env
fi
sed -i "s~.*REACT_APP_UCENTRALSEC_URL=.*~REACT_APP_UCENTRALSEC_URL=$DEFAULT_UCENTRALSEC_URL~" owgw-ui.env
if [[ ! -z "$OWSEC_AUTHENTICATION_DEFAULT_USERNAME" ]]; then
sed -i "s~.*AUTHENTICATION_DEFAULT_USERNAME=.*~AUTHENTICATION_DEFAULT_USERNAME=$OWSEC_AUTHENTICATION_DEFAULT_USERNAME~" owsec.env
fi
if [[ ! -z "$OWSEC_AUTHENTICATION_DEFAULT_PASSWORD" ]]; then
sed -i "s~.*AUTHENTICATION_DEFAULT_PASSWORD=.*~AUTHENTICATION_DEFAULT_PASSWORD=$OWSEC_AUTHENTICATION_DEFAULT_PASSWORD~" owsec.env
fi
#sed -i "s~.*SYSTEM_URI_PRIVATE=.*~SYSTEM_URI_PRIVATE=$OWSEC_SYSTEM_URI_PRIVATE~" owsec.env
sed -i "s~.*SYSTEM_URI_PUBLIC=.*~SYSTEM_URI_PUBLIC=$OWSEC_SYSTEM_URI_PUBLIC~" owsec.env
sed -i "s~.*SYSTEM_URI_UI=.*~SYSTEM_URI_UI=$SYSTEM_URI_UI~" owsec.env
#sed -i "s~.*SYSTEM_URI_PRIVATE=.*~SYSTEM_URI_PRIVATE=$OWFMS_SYSTEM_URI_PRIVATE~" owfms.env
sed -i "s~.*SYSTEM_URI_PUBLIC=.*~SYSTEM_URI_PUBLIC=$OWFMS_SYSTEM_URI_PUBLIC~" owfms.env
sed -i "s~.*SYSTEM_URI_UI=.*~SYSTEM_URI_UI=$SYSTEM_URI_UI~" owfms.env
if [[ ! -z "$OWFMS_S3_SECRET" ]]; then
sed -i "s~.*S3_SECRET=.*~S3_SECRET=$OWFMS_S3_SECRET~" owfms.env
fi
if [[ ! -z "$OWFMS_S3_KEY" ]]; then
sed -i "s~.*S3_KEY=.*~S3_KEY=$OWFMS_S3_KEY~" owfms.env
fi
#sed -i "s~.*SYSTEM_URI_PRIVATE=.*~SYSTEM_URI_PRIVATE=$OWPROV_SYSTEM_URI_PRIVATE~" owprov.env
sed -i "s~.*SYSTEM_URI_PUBLIC=.*~SYSTEM_URI_PUBLIC=$OWPROV_SYSTEM_URI_PUBLIC~" owprov.env
sed -i "s~.*SYSTEM_URI_UI=.*~SYSTEM_URI_UI=$SYSTEM_URI_UI~" owprov.env
sed -i "s~.*REACT_APP_UCENTRALSEC_URL=.*~REACT_APP_UCENTRALSEC_URL=$DEFAULT_UCENTRALSEC_URL~" owprov-ui.env
#sed -i "s~.*SYSTEM_URI_PRIVATE=.*~SYSTEM_URI_PRIVATE=$OWANALYTICS_SYSTEM_URI_PRIVATE~" owanalytics.env
sed -i "s~.*SYSTEM_URI_PUBLIC=.*~SYSTEM_URI_PUBLIC=$OWANALYTICS_SYSTEM_URI_PUBLIC~" owanalytics.env
sed -i "s~.*SYSTEM_URI_UI=.*~SYSTEM_URI_UI=$SYSTEM_URI_UI~" owanalytics.env
#sed -i "s~.*SYSTEM_URI_PRIVATE=.*~SYSTEM_URI_PRIVATE=$OWSUB_SYSTEM_URI_PRIVATE~" owsub.env
sed -i "s~.*SYSTEM_URI_PUBLIC=.*~SYSTEM_URI_PUBLIC=$OWSUB_SYSTEM_URI_PUBLIC~" owsub.env
sed -i "s~.*SYSTEM_URI_UI=.*~SYSTEM_URI_UI=$SYSTEM_URI_UI~" owsub.env
if [[ ! -z "$TRAEFIK_ACME_EMAIL" ]]; then
sed -i "s~.*TRAEFIK_CERTIFICATESRESOLVERS_OPENWIFI_ACME_EMAIL=.*~TRAEFIK_CERTIFICATESRESOLVERS_OPENWIFI_ACME_EMAIL=$TRAEFIK_ACME_EMAIL~" traefik.env
fi
if [[ ! -z "$CERTIFICATES_ALLOWMISMATCH" ]]; then
sed -i "s~.*CERTIFICATES_ALLOWMISMATCH=.*~CERTIFICATES_ALLOWMISMATCH=$CERTIFICATES_ALLOWMISMATCH~" owgw.env
fi
# Run the deployment
if [[ ! -z "$SDKHOSTNAME" ]]; then
docker-compose -f docker-compose.lb.letsencrypt.yml --env-file .env.letsencrypt up -d
else
docker-compose up -d
fi

View File

@@ -1,5 +1,3 @@
version: '3'
volumes:
owgw_data:
driver: local
@@ -9,12 +7,14 @@ volumes:
driver: local
owprov_data:
driver: local
zookeeper_data:
owanalytics_data:
driver: local
zookeeper_datalog:
owsub_data:
driver: local
kafka_data:
driver: local
postgresql_data:
driver: local
letsencrypt_certs:
driver: local
@@ -32,12 +32,19 @@ services:
- .env.letsencrypt
- owgw.env
depends_on:
- kafka
- rttys
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owgw"]
restart: unless-stopped
volumes:
- owgw_data:${OWGW_ROOT}/persist
- ./certs:/${OWGW_ROOT}/certs
sysctls:
- net.ipv4.tcp_keepalive_intvl=5
- net.ipv4.tcp_keepalive_probes=2
- net.ipv4.tcp_keepalive_time=45
owgw-ui:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui:${OWGWUI_TAG}"
@@ -64,7 +71,11 @@ services:
- .env.letsencrypt
- owsec.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owsec"]
restart: unless-stopped
volumes:
- owsec_data:${OWSEC_ROOT}/persist
@@ -80,7 +91,11 @@ services:
- .env.letsencrypt
- owfms.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owfms"]
restart: unless-stopped
volumes:
- owfms_data:${OWFMS_ROOT}/persist
@@ -96,7 +111,11 @@ services:
- .env.letsencrypt
- owprov.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owprov"]
restart: unless-stopped
volumes:
- owprov_data:${OWPROV_ROOT}
@@ -117,26 +136,45 @@ services:
- owprov
restart: unless-stopped
rttys:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/rttys:${RTTYS_TAG}"
owanalytics:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owanalytics:${OWANALYTICS_TAG}"
networks:
openwifi:
aliases:
- ${INTERNAL_RTTYS_HOSTNAME}
- ${INTERNAL_OWANALYTICS_HOSTNAME}
env_file:
- .env.letsencrypt
- owanalytics.env
depends_on:
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owanalytics"]
restart: unless-stopped
volumes:
- "./certs/restapi-cert.pem:/etc/rttys/restapi-cert.pem"
- "./certs/restapi-key.pem:/etc/rttys/restapi-key.pem"
- "./rttys/rttys_letsencrypt.conf:/rttys/rttys.conf"
- owanalytics_data:${OWANALYTICS_ROOT}
- ./certs:/${OWANALYTICS_ROOT}/certs
zookeeper:
image: "zookeeper:${ZOOKEEPER_TAG}"
owsub:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owsub:${OWSUB_TAG}"
networks:
openwifi:
aliases:
- ${INTERNAL_OWSUB_HOSTNAME}
env_file:
- .env.letsencrypt
- owsub.env
depends_on:
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owsub"]
restart: unless-stopped
volumes:
- zookeeper_data:/data
- zookeeper_datalog:/datalog
- owsub_data:${OWSUB_ROOT}
- ./certs:/${OWSUB_ROOT}/certs
kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
@@ -145,11 +183,30 @@ services:
env_file:
- kafka.env
restart: unless-stopped
depends_on:
- zookeeper
volumes:
- kafka_data:/bitnami/kafka
init-kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
networks:
openwifi:
depends_on:
- kafka
env_file:
- kafka.env
entrypoint:
- /bin/sh
- -c
- |
echo "Sleeping to allow kafka to start up..."
sleep 10
echo "Creating all required Kafka topics..."
for topic in $$TOPICS; do
/opt/bitnami/kafka/bin/kafka-topics.sh \
--create --if-not-exists --topic $$topic --replication-factor 1 \
--partitions 1 --bootstrap-server kafka:9092
done && echo "Successfully created Kafka topics, exiting." && exit 0
traefik:
image: "traefik:${TRAEFIK_TAG}"
networks:
@@ -164,20 +221,58 @@ services:
- owfms
- owprov
- owprov-ui
- rttys
- owanalytics
- owsub
restart: unless-stopped
volumes:
- "./traefik/openwifi_letsencrypt.yaml:/etc/traefik/openwifi.yaml"
- "./certs/restapi-ca.pem:/certs/restapi-ca.pem"
- "letsencrypt_certs:/letsencrypt"
entrypoint:
- /bin/sh
- -c
- |
timeout 10m sh -c 'until [[ "$$(getent hosts $SDKHOSTNAME)" ]]; do echo "Waiting until DNS record for $SDKHOSTNAME is resolvable"; sleep 5; done' \
&& ./entrypoint.sh traefik
ports:
- "15002:15002"
- "16002:16002"
- "16003:16003"
- "80:80"
- "8080:8080"
- "443:443"
- "8443:8443"
- "16001:16001"
- "16004:16004"
- "16005:16005"
- "16009:16009"
- "16006:16006"
- "5912:5912"
- "5913:5913"
- "1812:1812/udp"
- "1813:1813/udp"
- "3799:3799/udp"
postgresql:
image: "postgres:${POSTGRESQL_TAG}"
networks:
openwifi:
command:
- "postgres"
- "-c"
- "max_connections=400"
- "-c"
- "shared_buffers=20MB"
env_file:
- postgresql.env
restart: unless-stopped
volumes:
- postgresql_data:/var/lib/postgresql/data
- ./postgresql/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
healthcheck:
# owsub is the last DB created in init-db.sh
test: ["CMD-SHELL", "pg_isready -U postgres -d owsub"]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s

View File

@@ -1,5 +1,3 @@
version: '3'
volumes:
owgw_data:
driver: local
@@ -9,12 +7,14 @@ volumes:
driver: local
owprov_data:
driver: local
zookeeper_data:
owanalytics_data:
driver: local
zookeeper_datalog:
owsub_data:
driver: local
kafka_data:
driver: local
postgresql_data:
driver: local
networks:
openwifi:
@@ -30,17 +30,22 @@ services:
- .env.selfsigned
- owgw.env
depends_on:
- kafka
- rttys
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owgw"]
restart: unless-stopped
volumes:
- owgw_data:${OWGW_ROOT}/persist
- ./certs:/${OWGW_ROOT}/certs
sysctls:
- net.ipv4.tcp_keepalive_intvl=5
- net.ipv4.tcp_keepalive_probes=2
- net.ipv4.tcp_keepalive_time=45
owgw-ui:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui:${OWGWUI_TAG}"
env_file:
- owgw-ui.env
networks:
openwifi:
aliases:
@@ -64,7 +69,11 @@ services:
- .env.selfsigned
- owsec.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owsec"]
restart: unless-stopped
volumes:
- owsec_data:${OWSEC_ROOT}/persist
@@ -80,7 +89,11 @@ services:
- .env.selfsigned
- owfms.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owfms"]
restart: unless-stopped
volumes:
- owfms_data:${OWFMS_ROOT}/persist
@@ -96,7 +109,11 @@ services:
- .env.selfsigned
- owprov.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owprov"]
restart: unless-stopped
volumes:
- owprov_data:${OWPROV_ROOT}
@@ -117,26 +134,45 @@ services:
- owprov
restart: unless-stopped
rttys:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/rttys:${RTTYS_TAG}"
owanalytics:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owanalytics:${OWANALYTICS_TAG}"
networks:
openwifi:
aliases:
- ${INTERNAL_RTTYS_HOSTNAME}
- ${INTERNAL_OWANALYTICS_HOSTNAME}
env_file:
- .env.selfsigned
- owanalytics.env
depends_on:
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owanalytics"]
restart: unless-stopped
volumes:
- "./certs/restapi-cert.pem:/etc/rttys/restapi-cert.pem"
- "./certs/restapi-key.pem:/etc/rttys/restapi-key.pem"
- "./rttys/rttys.conf:/rttys/rttys.conf"
- owanalytics_data:${OWANALYTICS_ROOT}
- ./certs:/${OWANALYTICS_ROOT}/certs
zookeeper:
image: "zookeeper:${ZOOKEEPER_TAG}"
owsub:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owsub:${OWSUB_TAG}"
networks:
openwifi:
aliases:
- ${INTERNAL_OWSUB_HOSTNAME}
env_file:
- .env.selfsigned
- owsub.env
depends_on:
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owsub"]
restart: unless-stopped
volumes:
- zookeeper_data:/data
- zookeeper_datalog:/datalog
- owsub_data:${OWSUB_ROOT}
- ./certs:/${OWSUB_ROOT}/certs
kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
@@ -145,11 +181,30 @@ services:
env_file:
- kafka.env
restart: unless-stopped
depends_on:
- zookeeper
volumes:
- kafka_data:/bitnami/kafka
init-kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
networks:
openwifi:
depends_on:
- kafka
env_file:
- kafka.env
entrypoint:
- /bin/sh
- -c
- |
echo "Sleeping to allow kafka to start up..."
sleep 10
echo "Creating all required Kafka topics..."
for topic in $$TOPICS; do
/opt/bitnami/kafka/bin/kafka-topics.sh \
--create --if-not-exists --topic $$topic --replication-factor 1 \
--partitions 1 --bootstrap-server kafka:9092
done && echo "Successfully created Kafka topics, exiting." && exit 0
traefik:
image: "traefik:${TRAEFIK_TAG}"
networks:
@@ -163,7 +218,8 @@ services:
- owfms
- owprov
- owprov-ui
- rttys
- owanalytics
- owsub
restart: unless-stopped
volumes:
- "./traefik/openwifi_selfsigned.yaml:/etc/traefik/openwifi.yaml"
@@ -181,5 +237,34 @@ services:
- "16001:16001"
- "16004:16004"
- "16005:16005"
- "16009:16009"
- "16006:16006"
- "5912:5912"
- "5913:5913"
- "1812:1812/udp"
- "1813:1813/udp"
- "3799:3799/udp"
postgresql:
image: "postgres:${POSTGRESQL_TAG}"
networks:
openwifi:
command:
- "postgres"
- "-c"
- "max_connections=400"
- "-c"
- "shared_buffers=20MB"
env_file:
- postgresql.env
restart: unless-stopped
volumes:
- postgresql_data:/var/lib/postgresql/data
- ./postgresql/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
healthcheck:
# owsub is the last DB created in init-db.sh
test: ["CMD-SHELL", "pg_isready -U postgres -d owsub"]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s

View File

@@ -1,12 +1,8 @@
version: '3'
volumes:
zookeeper_data:
driver: local
zookeeper_datalog:
driver: local
kafka_data:
driver: local
postgresql_data:
driver: local
networks:
openwifi:
@@ -21,8 +17,11 @@ services:
env_file:
- owgw.env
depends_on:
- kafka
- rttys
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owgw"]
restart: unless-stopped
volumes:
- "./owgw_data:${OWGW_ROOT}"
@@ -32,6 +31,15 @@ services:
- "16002:16002"
- "16102:16102"
- "16003:16003"
- "5912:5912"
- "5913:5913"
- "1812:1812/udp"
- "1813:1813/udp"
- "3799:3799/udp"
sysctls:
- net.ipv4.tcp_keepalive_intvl=5
- net.ipv4.tcp_keepalive_probes=2
- net.ipv4.tcp_keepalive_time=45
owgw-ui:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui:${OWGWUI_TAG}"
@@ -44,6 +52,8 @@ services:
- owgw
- owfms
- owprov
- owanalytics
- owsub
restart: unless-stopped
volumes:
- "./owgw-ui/default.conf:/etc/nginx/conf.d/default.conf"
@@ -62,7 +72,11 @@ services:
env_file:
- owsec.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owsec"]
restart: unless-stopped
volumes:
- "./owsec_data:${OWSEC_ROOT}"
@@ -80,7 +94,11 @@ services:
env_file:
- owfms.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owfms"]
restart: unless-stopped
volumes:
- "./owfms_data:${OWFMS_ROOT}"
@@ -98,7 +116,11 @@ services:
env_file:
- owprov.env
depends_on:
- kafka
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owprov"]
restart: unless-stopped
volumes:
- "./owprov_data:${OWPROV_ROOT}"
@@ -118,6 +140,8 @@ services:
- owgw
- owfms
- owprov
- owanalytics
- owsub
restart: unless-stopped
volumes:
- "./owprov-ui/default.conf:/etc/nginx/conf.d/default.conf"
@@ -127,27 +151,49 @@ services:
- "8080:8080"
- "8443:8443"
rttys:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/rttys:${RTTYS_TAG}"
restart: unless-stopped
owanalytics:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owanalytics:${OWANALYTICS_TAG}"
networks:
openwifi:
aliases:
- ${INTERNAL_OWANALYTICS_HOSTNAME}
env_file:
- owanalytics.env
depends_on:
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owanalytics"]
restart: unless-stopped
volumes:
- "./certs/restapi-cert.pem:/etc/rttys/restapi-cert.pem"
- "./certs/restapi-key.pem:/etc/rttys/restapi-key.pem"
- "./rttys/rttys.conf:/rttys/rttys.conf"
- "./owanalytics_data:${OWANALYTICS_ROOT}"
- "./certs:/${OWANALYTICS_ROOT}/certs"
ports:
- "5912:5912"
- "5913:5913"
- "16009:16009"
- "16109:16109"
zookeeper:
image: "zookeeper:${ZOOKEEPER_TAG}"
owsub:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owsub:${OWSUB_TAG}"
networks:
openwifi:
aliases:
- ${INTERNAL_OWSUB_HOSTNAME}
env_file:
- owsub.env
depends_on:
init-kafka:
condition: service_completed_successfully
postgresql:
condition: service_healthy
command: ["./wait-for-postgres.sh", "postgresql", "/openwifi/owsub"]
restart: unless-stopped
volumes:
- zookeeper_data:/data
- zookeeper_datalog:/datalog
- "./owsub_data:${OWSUB_ROOT}"
- "./certs:/${OWSUB_ROOT}/certs"
ports:
- "16006:16006"
- "16106:16106"
kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
@@ -156,7 +202,50 @@ services:
env_file:
- kafka.env
restart: unless-stopped
depends_on:
- zookeeper
volumes:
- kafka_data:/bitnami/kafka
init-kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
networks:
openwifi:
depends_on:
- kafka
env_file:
- kafka.env
entrypoint:
- /bin/sh
- -c
- |
echo "Sleeping to allow kafka to start up..."
sleep 10
echo "Creating all required Kafka topics..."
for topic in $$TOPICS; do
/opt/bitnami/kafka/bin/kafka-topics.sh \
--create --if-not-exists --topic $$topic --replication-factor 1 \
--partitions 1 --bootstrap-server kafka:9092
done && echo "Successfully created Kafka topics, exiting." && exit 0
postgresql:
image: "postgres:${POSTGRESQL_TAG}"
networks:
openwifi:
command:
- "postgres"
- "-c"
- "max_connections=400"
- "-c"
- "shared_buffers=20MB"
env_file:
- postgresql.env
restart: unless-stopped
volumes:
- postgresql_data:/var/lib/postgresql/data
- ./postgresql/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
healthcheck:
# owsub is the last DB created in init-db.sh
test: ["CMD-SHELL", "pg_isready -U postgres -d owsub"]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s

View File

@@ -1,2 +1,10 @@
KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
ALLOW_PLAINTEXT_LISTENER=yes
TOPICS=command connection device_event_queue device_telemetry healthcheck provisioning_change service_events state wifiscan
KAFKA_CFG_NODE_ID=0
KAFKA_CFG_PROCESS_ROLES=controller,broker
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT

View File

@@ -0,0 +1,41 @@
RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWANALYTICS_ROOT=/owanalytics-data
OWANALYTICS_CONFIG=/owanalytics-data
#RESTAPI_HOST_ROOTCA=$OWANALYTICS_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16009
#RESTAPI_HOST_CERT=$OWANALYTICS_ROOT/certs/restapi-cert.pem
#RESTAPI_HOST_KEY=$OWANALYTICS_ROOT/certs/restapi-key.pem
#RESTAPI_HOST_KEY_PASSWORD=mypassword
#INTERNAL_RESTAPI_HOST_ROOTCA=$OWANALYTICS_ROOT/certs/restapi-ca.pem
#INTERNAL_RESTAPI_HOST_PORT=17009
#INTERNAL_RESTAPI_HOST_CERT=$OWANALYTICS_ROOT/certs/restapi-cert.pem
#INTERNAL_RESTAPI_HOST_KEY=$OWANALYTICS_ROOT/certs/restapi-key.pem
#INTERNAL_RESTAPI_HOST_KEY_PASSWORD=mypassword
#FIRMWARE_UPDATER_UPGRADE=yes
#FIRMWARE_UPDATER_RCONLY=no
#SERVICE_KEY=$OWANALYTICS_ROOT/certs/restapi-key.pem
#SERVICE_KEY_PASSWORD=mypassword
SYSTEM_DATA=$OWANALYTICS_ROOT/persist
SYSTEM_URI_PRIVATE=https://owanalytics.wlan.local:17009
SYSTEM_URI_PUBLIC=https://openwifi.wlan.local:16009
SYSTEM_URI_UI=https://openwifi.wlan.local
#SECURITY_RESTAPI_DISABLE=false
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
STORAGE_TYPE=postgresql
STORAGE_TYPE_POSTGRESQL_HOST=postgresql
STORAGE_TYPE_POSTGRESQL_USERNAME=owanalytics
STORAGE_TYPE_POSTGRESQL_PASSWORD=owanalytics
STORAGE_TYPE_POSTGRESQL_DATABASE=owanalytics
STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owanalytics
#STORAGE_TYPE_MYSQL_PASSWORD=owanalytics
#STORAGE_TYPE_MYSQL_DATABASE=owanalytics
#STORAGE_TYPE_MYSQL_PORT=3306
#STORAGE_TYPE=sqlite

View File

@@ -2,6 +2,9 @@ RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWFMS_ROOT=/owfms-data
OWFMS_CONFIG=/owfms-data
#RESTAPI_HOST_ROOTCA=$OWFMS_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16004
#RESTAPI_HOST_CERT=$OWFMS_ROOT/certs/restapi-cert.pem
@@ -18,6 +21,7 @@ SYSTEM_DATA=$OWFMS_ROOT/persist
SYSTEM_URI_PRIVATE=https://owfms.wlan.local:17004
SYSTEM_URI_PUBLIC=https://openwifi.wlan.local:16004
SYSTEM_URI_UI=https://openwifi.wlan.local
#SECURITY_RESTAPI_DISABLE=false
#S3_BUCKETNAME=ucentral-ap-firmware
#S3_REGION=us-east-1
S3_SECRET=b0S6EiR5RLIxoe7Xvz9YXPPdxQCoZ6ze37qunTAI
@@ -25,14 +29,15 @@ S3_KEY=AKIAUG47UZG7R6SRLD7F
#S3_BUCKET_URI=ucentral-ap-firmware.s3.amazonaws.com
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
#STORAGE_TYPE=sqlite
#STORAGE_TYPE_POSTGRESQL_HOST=localhost
#STORAGE_TYPE_POSTGRESQL_USERNAME=owfms
#STORAGE_TYPE_POSTGRESQL_PASSWORD=owfms
#STORAGE_TYPE_POSTGRESQL_DATABASE=owfms
#STORAGE_TYPE_POSTGRESQL_PORT=5432
STORAGE_TYPE=postgresql
STORAGE_TYPE_POSTGRESQL_HOST=postgresql
STORAGE_TYPE_POSTGRESQL_USERNAME=owfms
STORAGE_TYPE_POSTGRESQL_PASSWORD=owfms
STORAGE_TYPE_POSTGRESQL_DATABASE=owfms
STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owfms
#STORAGE_TYPE_MYSQL_PASSWORD=owfms
#STORAGE_TYPE_MYSQL_DATABASE=owfms
#STORAGE_TYPE_MYSQL_PORT=3306
#STORAGE_TYPE=sqlite

View File

@@ -1,2 +1 @@
DEFAULT_UCENTRALSEC_URL=https://openwifi.wlan.local:16001
ALLOW_UCENTRALSEC_CHANGE=false
REACT_APP_UCENTRALSEC_URL=https://openwifi.wlan.local:16001

View File

@@ -1,6 +1,10 @@
server {
listen 80;
listen [::]:80;
# Disable emitting nginx version
server_tokens off;
return 301 https://$host$request_uri;
}
@@ -8,6 +12,9 @@ server {
listen 443 ssl;
listen [::]:443 ssl;
# Disable emitting nginx version
server_tokens off;
ssl_certificate /etc/nginx/restapi-cert.pem;
ssl_certificate_key /etc/nginx/restapi-key.pem;

View File

@@ -2,6 +2,9 @@ RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWGW_ROOT=/owgw-data
OWGW_CONFIG=/owgw-data
#WEBSOCKET_HOST_ROOTCA=$OWGW_ROOT/certs/root.pem
#WEBSOCKET_HOST_ISSUER=$OWGW_ROOT/certs/issuer.pem
#WEBSOCKET_HOST_CERT=$OWGW_ROOT/certs/websocket-cert.pem
@@ -34,22 +37,36 @@ SYSTEM_DATA=$OWGW_ROOT/persist
SYSTEM_URI_PRIVATE=https://owgw.wlan.local:17002
SYSTEM_URI_PUBLIC=https://openwifi.wlan.local:16002
SYSTEM_URI_UI=https://openwifi.wlan.local
RTTY_ENABLED=true
#SECURITY_RESTAPI_DISABLE=false
#SIMULATORID=
#IPTOCOUNTRY_PROVIDER=ipinfo
#IPTOCOUNTRY_IPINFO_TOKEN=
#IPTOCOUNTRY_IPDATA_APIKEY=
#RTTY_INTERNAL=true
#RTTY_ENABLED=true
RTTY_SERVER=openwifi.wlan.local
#RTTY_PORT=5912
#RTTY_TOKEN=96181c567b4d0d98c50f127230068fa8
#RTTY_TOKEN=
#RTTY_TIMEOUT=60
#RTTY_VIEWPORT=5913
#RTTY_ASSETS=$OWGW_ROOT/rtty_ui
RADIUS_PROXY_ENABLE=true
#RADIUS_PROXY_ACCOUNTING_PORT=1813
#RADIUS_PROXY_AUTHENTICATION_PORT=1812
#RADIUS_PROXY_COA_PORT=3799
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
#STORAGE_TYPE=sqlite
#STORAGE_TYPE_POSTGRESQL_HOST=localhost
#STORAGE_TYPE_POSTGRESQL_USERNAME=owgw
#STORAGE_TYPE_POSTGRESQL_PASSWORD=owgw
#STORAGE_TYPE_POSTGRESQL_DATABASE=owgw
#STORAGE_TYPE_POSTGRESQL_PORT=5432
STORAGE_TYPE=postgresql
STORAGE_TYPE_POSTGRESQL_HOST=postgresql
STORAGE_TYPE_POSTGRESQL_USERNAME=owgw
STORAGE_TYPE_POSTGRESQL_PASSWORD=owgw
STORAGE_TYPE_POSTGRESQL_DATABASE=owgw
STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owgw
#STORAGE_TYPE_MYSQL_PASSWORD=owgw
#STORAGE_TYPE_MYSQL_DATABASE=owgw
#STORAGE_TYPE_MYSQL_PORT=3306
#STORAGE_TYPE=sqlite
#CERTIFICATES_ALLOWMISMATCH=false

21
docker-compose/owls/.env Normal file
View File

@@ -0,0 +1,21 @@
COMPOSE_PROJECT_NAME=owls
# Image tags
# Currently main branches don't work - owlsui is not compatible with owls.
#OWSEC_TAG=main
#OWLS_TAG=main
#OWLSUI_TAG=master
OWSEC_TAG=v2.9.0
OWLS_TAG=v2.9.0
OWLSUI_TAG=v2.9.0
KAFKA_TAG=3.7-debian-12
# Microservice root/config directories
OWSEC_ROOT=/owsec-data
OWSEC_CONFIG=/owsec-data
OWLS_ROOT=/owls-data
OWLS_CONFIG=/owls-data
# Microservice hostnames
INTERNAL_OWSEC_HOSTNAME=owsec.wlan.local
INTERNAL_OWLS_HOSTNAME=owls.wlan.local

View File

@@ -0,0 +1,16 @@
# OpenWifi OWLS Docker Compose
## Deployment with self-signed certificates
To run a load simulation you need to generate a specific Digicert-signed AP certificate which will be used to connect to the gateway. The certificate serial number has to start with the digits `53494d` since otherwise the gateway won't allow a load simulation. The rest of the serial number and the specified redirector URL can be chosen randomly. You only need to generate one AP certificate for your simulations.
Be aware that since the OWLS deployment partly exposes the same ports on the host as the OpenWifi deployment, it is not intended that both run on the same host.
1. Copy or move your AP load simulation certificate into the `docker-compose/certs` directory. Don't forget to name the files `device-cert.pem` and `device-key.pem` or adapt the path names in the OWLS configuration if you're using different file names.
2. To be able to run load simulation tests against your OpenWifi SDK deployment, you'll have to [add the serial number of your generated AP certificate to the gateway configuration](https://github.com/Telecominfraproject/wlan-cloud-owls#prepare-your-openwifi-gateway). You can do that by either editing [owgw.env](../owgw.env) or doing the changes directly in your OWGW configuration file if it is exposed on your Docker host.
3. Switch into the project directory with `cd docker-compose/owls`.
4. Add an entry for `openwifi-owls.wlan.local` in your hosts file which points to `127.0.0.1` or whatever the IP of the host running the OWLS deployment is.
5. Spin up the deployment with `docker-compose up -d`.
6. Check if the containers are up and running with `docker-compose ps`.
7. Add SSL certificate exceptions in your browser by visiting https://openwifi-owls.wlan.local:16001 and https://openwifi-owls.wlan.local:16007.
8. If you're using an OpenWifi deployment with self-signed certificates, you'll have to add a custom hosts entry for `openwifi.wlan.local` on the machine running the OWLS deployment pointing to the remote IP of your OpenWifi host.
9. Login to the UI by visiting https://openwifi-owls.wlan.local and follow the instructions to change your default password.
10. In the Simulation tab, click on the + sign on the right side to add a load simulation.
11. Fill out the required fields. MAC prefix is used for the MAC addresses of the simulated devices, so you can use any six-digit hexadecimal number. Specify the remote address of your OpenWifi gateway in the Gateway field, for example `https://openwifi.wlan.local:15002`. Adapt the rest of the settings according to your needs.
12. Click on the floppy disk icon to save your load simulation. You can run it by clicking the play symbol in the table view.

View File

@@ -0,0 +1,74 @@
#!/bin/bash
set -e
# Usage function
usage () {
echo;
echo "This script is intended for OpenWifi OWLS deployment using Docker Compose (https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/tree/main/docker-compose) in a Kubernetes pod";
echo;
echo "Required environment variables:"
echo;
echo "- DEPLOY_VERSION - version of the wlan-cloud-ucentral-deploy repo to be used";
echo;
echo "- DEFAULT_UCENTRALSEC_URL - public URL of the OWSec service"
echo "- SYSTEM_URI_UI - public URL of the OWGW-UI service"
echo;
echo "- INTERNAL_OWSEC_HOSTNAME - OWSec microservice hostname for Docker internal communication"
echo;
echo "- OWSEC_SYSTEM_URI_PRIVATE - private URL to be used for OWSec";
echo "- OWSEC_SYSTEM_URI_PUBLIC - public URL to be used for OWSec";
echo "- OWSEC_AUTHENTICATION_DEFAULT_USERNAME - username to be used for requests to OWSec";
echo "- OWSEC_AUTHENTICATION_DEFAULT_PASSWORD - hashed password for OWSec (details on this may be found in https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/#authenticationdefaultpassword)";
echo;
echo "- OWLS_SYSTEM_URI_PRIVATE - private URL to be used for OWLS";
echo "- OWLS_SYSTEM_URI_PUBLIC - public URL to be used for OWLS";
echo;
echo "- DEVICE_CERT - path to the device certificate";
echo "- DEVICE_KEY - path to the device key";
}
# Check if required environment variables were passed
## Deployment specifics
[ -z ${DEPLOY_VERSION+x} ] && echo "DEPLOY_VERSION is unset" && usage && exit 1
## Configuration variables applying to multiple microservices
[ -z ${DEFAULT_UCENTRALSEC_URL+x} ] && echo "DEFAULT_UCENTRALSEC_URL is unset" && usage && exit 1
[ -z ${SYSTEM_URI_UI+x} ] && echo "SYSTEM_URI_UI is unset" && usage && exit 1
## Internal microservice hostnames
[ -z ${INTERNAL_OWSEC_HOSTNAME+x} ] && echo "INTERNAL_OWSEC_HOSTNAME is unset" && usage && exit 1
## OWSec configuration variables
[ -z ${OWSEC_AUTHENTICATION_DEFAULT_USERNAME+x} ] && echo "OWSEC_AUTHENTICATION_DEFAULT_USERNAME is unset" && usage && exit 1
[ -z ${OWSEC_AUTHENTICATION_DEFAULT_PASSWORD+x} ] && echo "OWSEC_AUTHENTICATION_DEFAULT_PASSWORD is unset" && usage && exit 1
[ -z ${OWSEC_SYSTEM_URI_PRIVATE+x} ] && echo "OWSEC_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWSEC_SYSTEM_URI_PUBLIC+x} ] && echo "OWSEC_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
# OWLS configuration variables
[ -z ${OWLS_SYSTEM_URI_PRIVATE+x} ] && echo "OWLS_SYSTEM_URI_PRIVATE is unset" && usage && exit 1
[ -z ${OWLS_SYSTEM_URI_PUBLIC+x} ] && echo "OWLS_SYSTEM_URI_PUBLIC is unset" && usage && exit 1
## cert related variables
[ -z ${DEVICE_CERT+x} ] && echo "DEVICE_CERT is unset" && usage && exit 1
[ -z ${DEVICE_KEY+x} ] && echo "DEVICE_KEY is unset" && usage && exit 1
# Clone repo and copy certificates
mkdir wlan-cloud-ucentral-deploy-tmp
git clone --branch $DEPLOY_VERSION https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy.git /wlan-cloud-ucentral-deploy-tmp
mv -f /wlan-cloud-ucentral-deploy-tmp/* /wlan-cloud-ucentral-deploy/ && rm -r wlan-cloud-ucentral-deploy-tmp
cd wlan-cloud-ucentral-deploy/docker-compose/owls
# Search and replace variable values in env files
sed -i "s~\(^INTERNAL_OWSEC_HOSTNAME=\).*~\1$INTERNAL_OWSEC_HOSTNAME~" .env
sed -i "s~\(^INTERNAL_OWLS_HOSTNAME=\).*~\1$INTERNAL_OWLS_HOSTNAME~" .env
sed -i "s~\(^REACT_APP_UCENTRALSEC_URL=\).*~\1$DEFAULT_UCENTRALSEC_URL~" owls-ui.env
sed -i "s~.*AUTHENTICATION_DEFAULT_USERNAME=.*~AUTHENTICATION_DEFAULT_USERNAME=$OWSEC_AUTHENTICATION_DEFAULT_USERNAME~" owsec.env
sed -i "s~.*AUTHENTICATION_DEFAULT_PASSWORD=.*~AUTHENTICATION_DEFAULT_PASSWORD=$OWSEC_AUTHENTICATION_DEFAULT_PASSWORD~" owsec.env
sed -i "s~\(^SYSTEM_URI_PRIVATE=\).*~\1$OWSEC_SYSTEM_URI_PRIVATE~" owsec.env
sed -i "s~\(^SYSTEM_URI_PUBLIC=\).*~\1$OWSEC_SYSTEM_URI_PUBLIC~" owsec.env
sed -i "s~\(^SYSTEM_URI_UI=\).*~\1$SYSTEM_URI_UI~" owsec.env
sed -i "s~\(^SYSTEM_URI_PRIVATE=\).*~\1$OWLS_SYSTEM_URI_PRIVATE~" owls.env
sed -i "s~\(^SYSTEM_URI_PUBLIC=\).*~\1$OWLS_SYSTEM_URI_PUBLIC~" owls.env
# Run the deployment and attach to logs
cat $DEVICE_CERT > ../certs/device-cert.pem
cat $DEVICE_KEY > ../certs/device-key.pem
exec docker-compose up --attach-dependencies

View File

@@ -0,0 +1,96 @@
volumes:
kafka_data:
driver: local
networks:
owls:
services:
owsec:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owsec:${OWSEC_TAG}"
networks:
owls:
aliases:
- ${INTERNAL_OWSEC_HOSTNAME}
env_file:
- owsec.env
depends_on:
init-kafka:
condition: service_completed_successfully
restart: unless-stopped
volumes:
- "./owsec_data:${OWSEC_ROOT}"
- "../certs:/${OWSEC_ROOT}/certs"
ports:
- "16001:16001"
- "16101:16101"
owls:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owls:${OWLS_TAG}"
networks:
owls:
aliases:
- ${INTERNAL_OWLS_HOSTNAME}
env_file:
- owls.env
depends_on:
owsec:
condition: service_started
init-kafka:
condition: service_completed_successfully
restart: unless-stopped
volumes:
- "./owls_data:${OWLS_ROOT}"
- "../certs:/${OWLS_ROOT}/certs"
ports:
- "16007:16007"
- "16107:16107"
owls-ui:
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/owls-ui:${OWLSUI_TAG}"
networks:
owls:
env_file:
- owls-ui.env
depends_on:
- owsec
- owls
restart: unless-stopped
volumes:
- "./owls-ui/default.conf:/etc/nginx/conf.d/default.conf"
- "../certs/restapi-cert.pem:/etc/nginx/restapi-cert.pem"
- "../certs/restapi-key.pem:/etc/nginx/restapi-key.pem"
ports:
- "80:80"
- "443:443"
kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
networks:
owls:
env_file:
- kafka.env
restart: unless-stopped
volumes:
- kafka_data:/bitnami/kafka
init-kafka:
image: "docker.io/bitnami/kafka:${KAFKA_TAG}"
networks:
owls:
depends_on:
- kafka
env_file:
- kafka.env
entrypoint:
- /bin/sh
- -c
- |
echo "Sleeping to allow kafka to start up..."
sleep 10
echo "Creating all required Kafka topics..."
for topic in $$TOPICS; do
/opt/bitnami/kafka/bin/kafka-topics.sh \
--create --if-not-exists --topic $$topic --replication-factor 1 \
--partitions 1 --bootstrap-server kafka:9092
done && echo "Successfully created Kafka topics, exiting." && exit 0

View File

@@ -0,0 +1,10 @@
ALLOW_PLAINTEXT_LISTENER=yes
TOPICS=service_events
KAFKA_CFG_NODE_ID=0
KAFKA_CFG_PROCESS_ROLES=controller,broker
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT

View File

@@ -0,0 +1 @@
REACT_APP_UCENTRALSEC_URL=https://openwifi.wlan.local:16001

View File

@@ -0,0 +1,32 @@
server {
listen 80;
listen [::]:80;
# Disable emitting nginx version
server_tokens off;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
# Disable emitting nginx version
server_tokens off;
ssl_certificate /etc/nginx/restapi-cert.pem;
ssl_certificate_key /etc/nginx/restapi-key.pem;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

View File

@@ -0,0 +1,43 @@
RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWLS_ROOT=/owls-data
OWLS_CONFIG=/owls-data
#ROOTCA=$OWLS_ROOT/certs/root.pem
#ISSUER=$OWLS_ROOT/certs/issuer.pem
#CERT=$OWLS_ROOT/certs/device-cert.pem
#KEY=$OWLS_ROOT/certs/device-key.pem
#CLIENTCAS=$OWLS_ROOT/certs/clientcas.pem
#CAS=$OWLS_ROOT/certs/cas
#KEY_PASSWORD=mypassword
#RESTAPI_HOST_ROOTCA=$OWLS_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16007
#RESTAPI_HOST_CERT=$OWLS_ROOT/certs/restapi-cert.pem
#RESTAPI_HOST_KEY=$OWLS_ROOT/certs/restapi-key.pem
#RESTAPI_HOST_KEY_PASSWORD=mypassword
#INTERNAL_RESTAPI_HOST_ROOTCA=$OWLS_ROOT/certs/restapi-ca.pem
#INTERNAL_RESTAPI_HOST_PORT=17007
#INTERNAL_RESTAPI_HOST_CERT=$OWLS_ROOT/certs/restapi-cert.pem
#INTERNAL_RESTAPI_HOST_KEY=$OWLS_ROOT/certs/restapi-key.pem
#INTERNAL_RESTAPI_HOST_KEY_PASSWORD=mypassword
#SERVICE_KEY=$OWLS_ROOT/certs/restapi-key.pem
#SERVICE_KEY_PASSWORD=mypassword
SYSTEM_DATA=$OWLS_ROOT/persist
SYSTEM_URI_PRIVATE=https://owls.wlan.local:17007
SYSTEM_URI_PUBLIC=https://openwifi-owls.wlan.local:16007
SYSTEM_URI_UI=https://openwifi-owls.wlan.local
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
#STORAGE_TYPE=sqlite
#STORAGE_TYPE_POSTGRESQL_HOST=localhost
#STORAGE_TYPE_POSTGRESQL_USERNAME=owls
#STORAGE_TYPE_POSTGRESQL_PASSWORD=owls
#STORAGE_TYPE_POSTGRESQL_DATABASE=owls
#STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owls
#STORAGE_TYPE_MYSQL_PASSWORD=owls
#STORAGE_TYPE_MYSQL_DATABASE=owls
#STORAGE_TYPE_MYSQL_PORT=3306

View File

@@ -0,0 +1,47 @@
RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWSEC_ROOT=/owsec-data
OWSEC_CONFIG=/owsec-data
#RESTAPI_HOST_ROOTCA=$OWSEC_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16001
#RESTAPI_HOST_CERT=$OWSEC_ROOT/certs/restapi-cert.pem
#RESTAPI_HOST_KEY=$OWSEC_ROOT/certs/restapi-key.pem
#RESTAPI_HOST_KEY_PASSWORD=mypassword
#RESTAPI_WWWASSETS=$OWSEC_ROOT/wwwassets
#INTERNAL_RESTAPI_HOST_ROOTCA=$OWSEC_ROOT/certs/restapi-ca.pem
#INTERNAL_RESTAPI_HOST_PORT=17001
#INTERNAL_RESTAPI_HOST_CERT=$OWSEC_ROOT/certs/restapi-cert.pem
#INTERNAL_RESTAPI_HOST_KEY=$OWSEC_ROOT/certs/restapi-key.pem
#INTERNAL_RESTAPI_HOST_KEY_PASSWORD=mypassword
#AUTHENTICATION_DEFAULT_USERNAME=tip@ucentral.com
#AUTHENTICATION_DEFAULT_PASSWORD=13268b7daa751240369d125e79c873bd8dd3bef7981bdfd38ea03dbb1fbe7dcf
SYSTEM_DATA=$OWSEC_ROOT/persist
SYSTEM_URI_PRIVATE=https://owsec.wlan.local:17001
SYSTEM_URI_PUBLIC=https://openwifi-owls.wlan.local:16001
SYSTEM_URI_UI=https://openwifi-owls.wlan.local
#SERVICE_KEY=$OWSEC_ROOT/certs/restapi-key.pem
#SERVICE_KEY_PASSWORD=mypassword
#MAILER_HOSTNAME=localhost
#MAILER_USERNAME=************************
#MAILER_PASSWORD=************************
#MAILER_SENDER=OpenWIFI
#MAILER_PORT=587
#MAILER_TEMPLATES=$OWSEC_ROOT/templates
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
#DOCUMENT_POLICY_ACCESS=$OWSEC_ROOT/wwwassets/access_policy.html
#DOCUMENT_POLICY_PASSWORD=$OWSEC_ROOT/wwwassets/password_policy.html
#STORAGE_TYPE=sqlite
#STORAGE_TYPE_POSTGRESQL_HOST=localhost
#STORAGE_TYPE_POSTGRESQL_USERNAME=owsec
#STORAGE_TYPE_POSTGRESQL_PASSWORD=owsec
#STORAGE_TYPE_POSTGRESQL_DATABASE=owsec
#STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owsec
#STORAGE_TYPE_MYSQL_PASSWORD=owsec
#STORAGE_TYPE_MYSQL_DATABASE=owsec
#STORAGE_TYPE_MYSQL_PORT=3306

View File

@@ -1,2 +1,2 @@
DEFAULT_UCENTRALSEC_URL=https://openwifi.wlan.local:16001
ALLOW_UCENTRALSEC_CHANGE=false
REACT_APP_UCENTRALSEC_URL=https://openwifi.wlan.local:16001

View File

@@ -1,6 +1,10 @@
server {
listen 8080;
listen [::]:8080;
# Disable emitting nginx version
server_tokens off;
return 301 https://$host:8443$request_uri;
}
@@ -8,6 +12,9 @@ server {
listen 8443 ssl;
listen [::]:8443 ssl;
# Disable emitting nginx version
server_tokens off;
ssl_certificate /etc/nginx/restapi-cert.pem;
ssl_certificate_key /etc/nginx/restapi-key.pem;

View File

@@ -2,6 +2,9 @@ RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWPROV_ROOT=/owprov-data
OWPROV_CONFIG=/owprov-data
#RESTAPI_HOST_ROOTCA=$OWPROV_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16005
#RESTAPI_HOST_CERT=$OWPROV_ROOT/certs/restapi-cert.pem
@@ -20,16 +23,18 @@ SYSTEM_DATA=$OWPROV_ROOT/persist
SYSTEM_URI_PRIVATE=https://owprov.wlan.local:17005
SYSTEM_URI_PUBLIC=https://openwifi.wlan.local:16005
SYSTEM_URI_UI=https://openwifi.wlan.local
#SECURITY_RESTAPI_DISABLE=false
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
#STORAGE_TYPE=sqlite
#STORAGE_TYPE_POSTGRESQL_HOST=localhost
#STORAGE_TYPE_POSTGRESQL_USERNAME=owprov
#STORAGE_TYPE_POSTGRESQL_PASSWORD=owprov
#STORAGE_TYPE_POSTGRESQL_DATABASE=owprov
#STORAGE_TYPE_POSTGRESQL_PORT=5432
STORAGE_TYPE=postgresql
STORAGE_TYPE_POSTGRESQL_HOST=postgresql
STORAGE_TYPE_POSTGRESQL_USERNAME=owprov
STORAGE_TYPE_POSTGRESQL_PASSWORD=owprov
STORAGE_TYPE_POSTGRESQL_DATABASE=owprov
STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owprov
#STORAGE_TYPE_MYSQL_PASSWORD=owprov
#STORAGE_TYPE_MYSQL_DATABASE=owprov
#STORAGE_TYPE_MYSQL_PORT=3306
#STORAGE_TYPE=sqlite

View File

@@ -2,6 +2,9 @@ RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWSEC_ROOT=/owsec-data
OWSEC_CONFIG=/owsec-data
#RESTAPI_HOST_ROOTCA=$OWSEC_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16001
#RESTAPI_HOST_CERT=$OWSEC_ROOT/certs/restapi-cert.pem
@@ -19,6 +22,7 @@ SYSTEM_DATA=$OWSEC_ROOT/persist
SYSTEM_URI_PRIVATE=https://owsec.wlan.local:17001
SYSTEM_URI_PUBLIC=https://openwifi.wlan.local:16001
SYSTEM_URI_UI=https://openwifi.wlan.local
#SECURITY_RESTAPI_DISABLE=false
#SERVICE_KEY=$OWSEC_ROOT/certs/restapi-key.pem
#SERVICE_KEY_PASSWORD=mypassword
#MAILER_HOSTNAME=localhost
@@ -31,14 +35,15 @@ SYSTEM_URI_UI=https://openwifi.wlan.local
KAFKA_BROKERLIST=kafka:9092
#DOCUMENT_POLICY_ACCESS=$OWSEC_ROOT/wwwassets/access_policy.html
#DOCUMENT_POLICY_PASSWORD=$OWSEC_ROOT/wwwassets/password_policy.html
#STORAGE_TYPE=sqlite
#STORAGE_TYPE_POSTGRESQL_HOST=localhost
#STORAGE_TYPE_POSTGRESQL_USERNAME=owsec
#STORAGE_TYPE_POSTGRESQL_PASSWORD=owsec
#STORAGE_TYPE_POSTGRESQL_DATABASE=owsec
#STORAGE_TYPE_POSTGRESQL_PORT=5432
STORAGE_TYPE=postgresql
STORAGE_TYPE_POSTGRESQL_HOST=postgresql
STORAGE_TYPE_POSTGRESQL_USERNAME=owsec
STORAGE_TYPE_POSTGRESQL_PASSWORD=owsec
STORAGE_TYPE_POSTGRESQL_DATABASE=owsec
STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owsec
#STORAGE_TYPE_MYSQL_PASSWORD=owsec
#STORAGE_TYPE_MYSQL_DATABASE=owsec
#STORAGE_TYPE_MYSQL_PORT=3306
#STORAGE_TYPE=sqlite

40
docker-compose/owsub.env Normal file
View File

@@ -0,0 +1,40 @@
RUN_CHOWN=true
TEMPLATE_CONFIG=true
SELFSIGNED_CERTS=true
OWSUB_ROOT=/owsub-data
OWSUB_CONFIG=/owsub-data
#RESTAPI_HOST_ROOTCA=$OWSUB_ROOT/certs/restapi-ca.pem
#RESTAPI_HOST_PORT=16006
#RESTAPI_HOST_CERT=$OWSUB_ROOT/certs/restapi-cert.pem
#RESTAPI_HOST_KEY=$OWSUB_ROOT/certs/restapi-key.pem
#RESTAPI_HOST_KEY_PASSWORD=mypassword
#INTERNAL_RESTAPI_HOST_ROOTCA=$OWSUB_ROOT/certs/restapi-ca.pem
#INTERNAL_RESTAPI_HOST_PORT=17006
#INTERNAL_RESTAPI_HOST_CERT=$OWSUB_ROOT/certs/restapi-cert.pem
#INTERNAL_RESTAPI_HOST_KEY=$OWSUB_ROOT/certs/restapi-key.pem
#INTERNAL_RESTAPI_HOST_KEY_PASSWORD=mypassword
#FIRMWARE_UPDATER_UPGRADE=yes
#FIRMWARE_UPDATER_RCONLY=no
#SERVICE_KEY=$OWSUB_ROOT/certs/restapi-key.pem
#SERVICE_KEY_PASSWORD=mypassword
SYSTEM_DATA=$OWSUB_ROOT/persist
SYSTEM_URI_PRIVATE=https://owsub.wlan.local:17006
SYSTEM_URI_PUBLIC=https://openwifi.wlan.local:16006
SYSTEM_URI_UI=https://openwifi.wlan.local
#SECURITY_RESTAPI_DISABLE=false
#KAFKA_ENABLE=true
KAFKA_BROKERLIST=kafka:9092
STORAGE_TYPE=postgresql
STORAGE_TYPE_POSTGRESQL_HOST=postgresql
STORAGE_TYPE_POSTGRESQL_USERNAME=owsub
STORAGE_TYPE_POSTGRESQL_PASSWORD=owsub
STORAGE_TYPE_POSTGRESQL_DATABASE=owsub
STORAGE_TYPE_POSTGRESQL_PORT=5432
#STORAGE_TYPE_MYSQL_HOST=localhost
#STORAGE_TYPE_MYSQL_USERNAME=owsub
#STORAGE_TYPE_MYSQL_PASSWORD=owsub
#STORAGE_TYPE_MYSQL_DATABASE=owsub
#STORAGE_TYPE_MYSQL_PORT=3306
#STORAGE_TYPE=sqlite

View File

@@ -0,0 +1,20 @@
POSTGRES_PASSWORD=postgres
POSTGRES_USER=postgres
OWGW_DB=owgw
OWGW_DB_USER=owgw
OWGW_DB_PASSWORD=owgw
OWSEC_DB=owsec
OWSEC_DB_USER=owsec
OWSEC_DB_PASSWORD=owsec
OWFMS_DB=owfms
OWFMS_DB_USER=owfms
OWFMS_DB_PASSWORD=owfms
OWPROV_DB=owprov
OWPROV_DB_USER=owprov
OWPROV_DB_PASSWORD=owprov
OWANALYTICS_DB=owanalytics
OWANALYTICS_DB_USER=owanalytics
OWANALYTICS_DB_PASSWORD=owanalytics
OWSUB_DB=owsub
OWSUB_DB_USER=owsub
OWSUB_DB_PASSWORD=owsub

View File

@@ -0,0 +1,17 @@
#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
CREATE USER $OWGW_DB_USER WITH ENCRYPTED PASSWORD '$OWGW_DB_PASSWORD';
CREATE DATABASE $OWGW_DB OWNER $OWGW_DB_USER;
CREATE USER $OWSEC_DB_USER WITH ENCRYPTED PASSWORD '$OWSEC_DB_PASSWORD';
CREATE DATABASE $OWSEC_DB OWNER $OWSEC_DB_USER;
CREATE USER $OWFMS_DB_USER WITH ENCRYPTED PASSWORD '$OWFMS_DB_PASSWORD';
CREATE DATABASE $OWFMS_DB OWNER $OWFMS_DB_USER;
CREATE USER $OWPROV_DB_USER WITH ENCRYPTED PASSWORD '$OWPROV_DB_PASSWORD';
CREATE DATABASE $OWPROV_DB OWNER $OWPROV_DB_USER;
CREATE USER $OWANALYTICS_DB_USER WITH ENCRYPTED PASSWORD '$OWANALYTICS_DB_PASSWORD';
CREATE DATABASE $OWANALYTICS_DB OWNER $OWANALYTICS_DB_USER;
CREATE USER $OWSUB_DB_USER WITH ENCRYPTED PASSWORD '$OWSUB_DB_PASSWORD';
CREATE DATABASE $OWSUB_DB OWNER $OWSUB_DB_USER;
EOSQL

View File

@@ -1,16 +0,0 @@
addr-dev: :5912
addr-user: :5913
#addr-web: :5914
#web-redir-url:# Auth for http
http-username: rttys
http-password: rttys
ssl-cert: /etc/rttys/restapi-cert.pem
ssl-key: /etc/rttys/restapi-key.pem
token: 96181c567b4d0d98c50f127230068fa8
# font-size: 16
# No login required to connect device.
# Values can be device IDs separated by spaces,
# or a "*" indicates that all devices do not require login
# http://localhost:5913/connect/rtty1
white-list: "*"
#white-list: rtty1 rtty2

View File

@@ -1,16 +0,0 @@
addr-dev: :5912
addr-user: :5913
#addr-web: :5914
#web-redir-url:# Auth for http
http-username: rttys
http-password: rttys
#ssl-cert: /etc/rttys/restapi-cert.pem
#ssl-key: /etc/rttys/restapi-key.pem
token: 96181c567b4d0d98c50f127230068fa8
# font-size: 16
# No login required to connect device.
# Values can be device IDs separated by spaces,
# or a "*" indicates that all devices do not require login
# http://localhost:5913/connect/rtty1
white-list: "*"
#white-list: rtty1 rtty2

View File

@@ -1,6 +1,11 @@
TRAEFIK_ENTRYPOINTS_OWGWWEBSOCKET_ADDRESS=:15002
TRAEFIK_ENTRYPOINTS_OWGWRESTAPI_ADDRESS=:16002
TRAEFIK_ENTRYPOINTS_OWGWFILEUPLOAD_ADDRESS=:16003
TRAEFIK_ENTRYPOINTS_OWGWRTTYS_ADDRESS=:5912
TRAEFIK_ENTRYPOINTS_OWGWRTTYSVIEW_ADDRESS=:5913
TRAEFIK_ENTRYPOINTS_OWGWRADACC_ADDRESS=:1813/udp
TRAEFIK_ENTRYPOINTS_OWGWRADAUTH_ADDRESS=:1812/udp
TRAEFIK_ENTRYPOINTS_OWGWRADCOA_ADDRESS=:3799/udp
TRAEFIK_ENTRYPOINTS_OWGWUIHTTP_ADDRESS=:80
TRAEFIK_ENTRYPOINTS_OWGWUIHTTP_HTTP_REDIRECTIONS_ENTRYPOINT_TO=owgwuihttps
TRAEFIK_ENTRYPOINTS_OWPROVUIHTTP_ADDRESS=:8080
@@ -10,8 +15,8 @@ TRAEFIK_ENTRYPOINTS_OWPROVUIHTTPS_ADDRESS=:8443
TRAEFIK_ENTRYPOINTS_OWSECRESTAPI_ADDRESS=:16001
TRAEFIK_ENTRYPOINTS_OWFMSRESTAPI_ADDRESS=:16004
TRAEFIK_ENTRYPOINTS_OWPROVRESTAPI_ADDRESS=:16005
TRAEFIK_ENTRYPOINTS_RTTYSDEV_ADDRESS=:5912
TRAEFIK_ENTRYPOINTS_RTTYSUSER_ADDRESS=:5913
TRAEFIK_ENTRYPOINTS_OWANALYTICSRESTAPI_ADDRESS=:16009
TRAEFIK_ENTRYPOINTS_OWSUBRESTAPI_ADDRESS=:16006
TRAEFIK_PROVIDERS_FILE_FILENAME=/etc/traefik/openwifi.yaml
TRAEFIK_CERTIFICATESRESOLVERS_OPENWIFI_ACME_EMAIL=
TRAEFIK_CERTIFICATESRESOLVERS_OPENWIFI_ACME_HTTPCHALLENGE=true

View File

@@ -28,66 +28,86 @@ http:
loadBalancer:
servers:
- url: "http://owprov-ui.wlan.local:80/"
rttys-user:
owanalytics-restapi:
loadBalancer:
servers:
- url: "http://rttys.wlan.local:5913/"
- url: "https://owanalytics.wlan.local:16009/"
owsub-restapi:
loadBalancer:
servers:
- url: "https://owsub.wlan.local:16006/"
owgw-rttys-view:
loadBalancer:
servers:
- url: "https://owgw.wlan.local:5913/"
routers:
owgw-ui-http:
entryPoints: "owgwuihttp"
service: "owgw-ui"
rule: "Host(`{{ env "OWGWUI_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
owgw-ui-https:
entryPoints: "owgwuihttps"
service: "owgw-ui"
rule: "Host(`{{ env "OWGWUI_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
tls:
certResolver: "openwifi"
owgw-fileupload:
entryPoints: "owgwfileupload"
service: "owgw-fileupload"
rule: "Host(`{{ env "OWGWFILEUPLOAD_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
tls:
certResolver: "openwifi"
owgw-restapi:
entryPoints: "owgwrestapi"
service: "owgw-restapi"
rule: "Host(`{{ env "OWGW_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
tls:
certResolver: "openwifi"
owgw-rttys-view:
entryPoints: "owgwrttysview"
service: "owgw-rttys-view"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
tls:
certResolver: "openwifi"
owsec-restapi:
entryPoints: "owsecrestapi"
service: "owsec-restapi"
rule: "Host(`{{ env "OWSEC_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
tls:
certResolver: "openwifi"
owfms-restapi:
entryPoints: "owfmsrestapi"
service: "owfms-restapi"
rule: "Host(`{{env "OWFMS_HOSTNAME"}}`)"
rule: "Host(`{{env "SDKHOSTNAME"}}`)"
tls:
certResolver: "openwifi"
owprov-restapi:
entryPoints: "owprovrestapi"
service: "owprov-restapi"
rule: "Host(`{{env "OWPROV_HOSTNAME"}}`)"
rule: "Host(`{{env "SDKHOSTNAME"}}`)"
tls:
certResolver: "openwifi"
owprov-ui-http:
entryPoints: "owgwuihttp"
entryPoints: "owprovuihttp"
service: "owprov-ui"
rule: "Host(`{{ env "OWPROVUI_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
owprov-ui-https:
entryPoints: "owgwuihttps"
entryPoints: "owprovuihttps"
service: "owprov-ui"
rule: "Host(`{{ env "OWPROVUI_HOSTNAME" }}`)"
rule: "Host(`{{ env "SDKHOSTNAME" }}`)"
tls:
certResolver: "openwifi"
rttys-user:
entryPoints: "rttysuser"
service: "rttys-user"
rule: "Host(`{{ env "RTTYS_HOSTNAME" }}`)"
owanalytics-restapi:
entryPoints: "owanalyticsrestapi"
service: "owanalytics-restapi"
rule: "Host(`{{env "SDKHOSTNAME"}}`)"
tls:
certResolver: "openwifi"
owsub-restapi:
entryPoints: "owsubrestapi"
service: "owsub-restapi"
rule: "Host(`{{env "SDKHOSTNAME"}}`)"
tls:
certResolver: "openwifi"
@@ -98,10 +118,10 @@ tcp:
servers:
- address: "owgw.wlan.local:15002"
rttys-dev:
owgw-rttys:
loadBalancer:
servers:
- address: "rttys.wlan.local:5912"
- address: "owgw.wlan.local:5912"
routers:
owgw-websocket:
@@ -111,9 +131,35 @@ tcp:
tls:
passthrough: true
rttys-dev:
entryPoints: "rttysdev"
service: "rttys-dev"
rule: "HostSNI(`{{ env "RTTYS_HOSTNAME" }}`)"
owgw-rttys:
entryPoints: "owgwrttys"
service: "owgw-rttys"
rule: "HostSNI(`*`)"
tls:
certResolver: openwifi
passthrough: true
udp:
services:
owgw-radius-acc:
loadBalancer:
servers:
- address: "owgw.wlan.local:1813"
owgw-radius-auth:
loadBalancer:
servers:
- address: "owgw.wlan.local:1812"
owgw-radius-coa:
loadBalancer:
servers:
- address: "owgw.wlan.local:3799"
routers:
owgw-radius-acc:
entryPoints: "owgwradacc"
service: "owgw-radius-acc"
owgw-radius-auth:
entryPoints: "owgwradauth"
service: "owgw-radius-auth"
owgw-radius-coa:
entryPoints: "owgwradcoa"
service: "owgw-radius-coa"

View File

@@ -52,6 +52,14 @@ tcp:
loadBalancer:
servers:
- address: "owgw.wlan.local:16003"
owgw-rttys:
loadBalancer:
servers:
- address: "owgw.wlan.local:5912"
owgw-rttys-view:
loadBalancer:
servers:
- address: "owgw.wlan.local:5913"
owsec-restapi:
loadBalancer:
servers:
@@ -64,14 +72,14 @@ tcp:
loadBalancer:
servers:
- address: "owprov.wlan.local:16005"
rttys-dev:
owanalytics-restapi:
loadBalancer:
servers:
- address: "rttys.wlan.local:5912"
rttys-user:
- address: "owanalytics.wlan.local:16009"
owsub-restapi:
loadBalancer:
servers:
- address: "rttys.wlan.local:5913"
- address: "owsub.wlan.local:16006"
routers:
owgw-websocket:
@@ -92,6 +100,18 @@ tcp:
rule: "HostSNI(`*`)"
tls:
passthrough: true
owgw-rttys:
entryPoints: "owgwrttys"
service: "owgw-rttys"
rule: "HostSNI(`*`)"
tls:
passthrough: true
owgw-rttys-view:
entryPoints: "owgwrttysview"
service: "owgw-rttys-view"
rule: "HostSNI(`*`)"
tls:
passthrough: true
owsec-restapi:
entryPoints: "owsecrestapi"
service: "owsec-restapi"
@@ -110,15 +130,41 @@ tcp:
rule: "HostSNI(`*`)"
tls:
passthrough: true
rttys-dev:
entryPoints: "rttysdev"
service: "rttys-dev"
owanalytics-restapi:
entryPoints: "owanalyticsrestapi"
service: "owanalytics-restapi"
rule: "HostSNI(`*`)"
tls:
passthrough: true
rttys-user:
entryPoints: "rttysuser"
service: "rttys-user"
owsub-restapi:
entryPoints: "owsubrestapi"
service: "owsub-restapi"
rule: "HostSNI(`*`)"
tls:
passthrough: true
udp:
services:
owgw-radius-acc:
loadBalancer:
servers:
- address: "owgw.wlan.local:1813"
owgw-radius-auth:
loadBalancer:
servers:
- address: "owgw.wlan.local:1812"
owgw-radius-coa:
loadBalancer:
servers:
- address: "owgw.wlan.local:3799"
routers:
owgw-radius-acc:
entryPoints: "owgwradacc"
service: "owgw-radius-acc"
owgw-radius-auth:
entryPoints: "owgwradauth"
service: "owgw-radius-auth"
owgw-radius-coa:
entryPoints: "owgwradcoa"
service: "owgw-radius-coa"