mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy.git
synced 2026-03-20 03:40:49 +00:00
Compare commits
19 Commits
v2.0.0
...
release/v2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dbf8f6e376 | ||
|
|
f06971fe5b | ||
|
|
a70857e918 | ||
|
|
fefd8b0cc5 | ||
|
|
c072a05ee9 | ||
|
|
5502c81fc9 | ||
|
|
6b6e7c0cb3 | ||
|
|
4ac4b09110 | ||
|
|
338069c7d8 | ||
|
|
2571e50b6e | ||
|
|
49d6c964c3 | ||
|
|
ebd55e627f | ||
|
|
765e274e8b | ||
|
|
9d9e267fac | ||
|
|
4cb29f4b28 | ||
|
|
c475222967 | ||
|
|
61ee9a2120 | ||
|
|
f4ee38fd74 | ||
|
|
a0c00cba83 |
@@ -1,12 +1,15 @@
|
||||
dependencies:
|
||||
- name: ucentralgw
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=v2.0.0
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=v2.1.0-RC3
|
||||
version: 0.1.0
|
||||
- name: ucentralsec
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=v2.0.0
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=v2.1.0-RC1
|
||||
version: 0.1.0
|
||||
- name: ucentralfms
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralfms@helm?ref=v2.1.0-RC1
|
||||
version: 0.1.0
|
||||
- name: ucentralgwui
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=v2.0.0
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=v2.1.0-RC1
|
||||
version: 0.1.0
|
||||
- name: rttys
|
||||
repository: git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-rtty@chart?ref=v0.1.0
|
||||
@@ -14,5 +17,5 @@ dependencies:
|
||||
- name: kafka
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 13.0.2
|
||||
digest: sha256:9c9d4eefb4d86337134eae961a297ad76eb025d077d78b82847f5653983161c5
|
||||
generated: "2021-08-02T13:50:27.857633819+03:00"
|
||||
digest: sha256:dd01079e0cd254744f00f3f85259ebd0c9893b965c9724819e40c4c912be20e4
|
||||
generated: "2021-09-08T13:12:25.763485669+03:00"
|
||||
|
||||
@@ -2,16 +2,19 @@ apiVersion: v2
|
||||
name: wlan-cloud-ucentral
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
version: 2.0.0
|
||||
version: 2.1.0-RC3
|
||||
dependencies:
|
||||
- name: ucentralgw
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=v2.0.0"
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw@helm?ref=v2.1.0-RC3"
|
||||
version: 0.1.0
|
||||
- name: ucentralsec
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=v2.0.0"
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralsec@helm?ref=v2.1.0-RC1"
|
||||
version: 0.1.0
|
||||
- name: ucentralfms
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralfms@helm?ref=v2.1.0-RC1"
|
||||
version: 0.1.0
|
||||
- name: ucentralgwui
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=v2.0.0"
|
||||
repository: "git+https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui@helm?ref=v2.1.0-RC1"
|
||||
version: 0.1.0
|
||||
condition: ucentralgwui.enabled
|
||||
- name: rttys
|
||||
|
||||
@@ -5,8 +5,6 @@ ucentralgw:
|
||||
configProperties:
|
||||
ucentral.kafka.enable: "true"
|
||||
ucentral.kafka.brokerlist: kafka:9092
|
||||
logging.formatters.f1.pattern: "%Y-%m-%d %H:%M:%S %s: [%p] %t"
|
||||
logging.loggers.root.channel: c1
|
||||
|
||||
# uCentralSec (https://github.com/Telecominfraproject/wlan-cloud-ucentralsec)
|
||||
ucentralsec:
|
||||
@@ -15,8 +13,14 @@ ucentralsec:
|
||||
configProperties:
|
||||
ucentral.kafka.enable: "true"
|
||||
ucentral.kafka.brokerlist: kafka:9092
|
||||
logging.formatters.f1.pattern: "%Y-%m-%d %H:%M:%S %s: [%p] %t"
|
||||
logging.loggers.root.channel: c1
|
||||
|
||||
# uCentralFMS (https://github.com/Telecominfraproject/wlan-cloud-ucentralfms)
|
||||
ucentralfms:
|
||||
fullnameOverride: ucentralfms
|
||||
|
||||
configProperties:
|
||||
ucentral.kafka.enable: "true"
|
||||
ucentral.kafka.brokerlist: kafka:9092
|
||||
|
||||
# rttys (https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-rtty)
|
||||
rttys:
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
COMPOSE_PROJECT_NAME=ucentral
|
||||
UCENTRALGW_TAG="v2.0.0"
|
||||
UCENTRALGWUI_TAG="v2.0.0"
|
||||
UCENTRALSEC_TAG="v2.0.0"
|
||||
UCENTRALGW_TAG=v2.1.0-RC3
|
||||
UCENTRALGWUI_TAG=v2.1.0-RC1
|
||||
UCENTRALSEC_TAG=v2.1.0-RC1
|
||||
UCENTRALFMS_TAG=v2.1.0-RC1
|
||||
RTTYS_TAG=3.5.0
|
||||
KAFKA_TAG=latest
|
||||
ZOOKEEPER_TAG=latest
|
||||
|
||||
3
docker-compose/.env_ucentralfms
Normal file
3
docker-compose/.env_ucentralfms
Normal file
@@ -0,0 +1,3 @@
|
||||
RUN_CHOWN=true
|
||||
UCENTRALFMS_ROOT=/ucentralfms-data
|
||||
UCENTRALFMS_CONFIG=/ucentralfms-data
|
||||
@@ -7,7 +7,7 @@ With the provided Docker Compose file you can instantiate a complete deployment
|
||||
5. Open `docker-compose/ucentralgw-data/ucentralgw.properties` to change [authentication data](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw#default-username-and-password) for uCentralGW (again highly recommended!).
|
||||
6. Spin up the deployment with `docker-compose up -d`.
|
||||
7. Add the self-signed certificates to the system trust store of the containers with `./add-ca-cert.sh`.
|
||||
8. Either add the `certs/restapi-ca.pem` certificate to your trusted browser certificates or add SSL certificate exceptions in your browser by visiting `https://ucentral.wlan.local:16001` and `https://ucentral.wlan.local:16002` (make sure to visit both and add the exceptions).
|
||||
8. Add SSL certificate exceptions in your browser by visiting https://ucentral.wlan.local:16001, https://ucentral.wlan.local:16002 and https://ucentral.wlan.local:16004 (make sure to visit all and add the exceptions).
|
||||
9. Connect to your AP via SSH and add a static hosts entry in `/etc/hosts` for `ucentral.wlan.local` which points to the address of the host the Compose deployment runs on.
|
||||
10. Navigate to the UI `http://ucentral.wlan.local` and login with your uCentralGW authentication data.
|
||||
11. To use the [curl test script](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/main/TEST_CURL.md) to talk to the API set the following environment variables:
|
||||
@@ -17,4 +17,6 @@ export FLAGS="-s --cacert <your-wlan-cloud-ucentral-deploy-location>/docker-comp
|
||||
```
|
||||
The `--cacert` option is necessary since the REST API certificates are self-signed. Omit the option if you provide your own signed certificates.
|
||||
|
||||
**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 uCentralGW. Please use the Letsencrypt deployment or provide your own valid certificates if you want to use this function.
|
||||
|
||||
PS: The deployment creates local volumes to persist mostly application and database data. In addition to that several bind mounts are created: one for the `docker-compose/certs/` directory which is used by multiple services, and the other ones mount service specific data directories and configuration files located under `docker-compose/` into the appropriate 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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SERVICES="ucentralgw.wlan.local ucentralsec.wlan.local"
|
||||
SERVICES="ucentralgw.wlan.local ucentralsec.wlan.local ucentralfms.wlan.local"
|
||||
|
||||
for i in $SERVICES; do
|
||||
docker-compose exec -T -u root $i apk add ca-certificates
|
||||
|
||||
@@ -31,7 +31,9 @@ services:
|
||||
env_file:
|
||||
- .env_ucentralgw-ui
|
||||
depends_on:
|
||||
- ucentralsec.wlan.local
|
||||
- ucentralgw.wlan.local
|
||||
- ucentralfms.wlan.local
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:80:80"
|
||||
@@ -42,8 +44,6 @@ services:
|
||||
- .env_ucentralsec
|
||||
depends_on:
|
||||
- kafka
|
||||
- rttys
|
||||
- ucentralgw.wlan.local
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:16001:16001"
|
||||
@@ -52,6 +52,20 @@ services:
|
||||
- ./ucentralsec-data:/ucentralsec-data
|
||||
- ./certs:/ucentralsec-data/certs
|
||||
|
||||
ucentralfms.wlan.local:
|
||||
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/ucentralfms:${UCENTRALFMS_TAG}"
|
||||
env_file:
|
||||
- .env_ucentralfms
|
||||
depends_on:
|
||||
- kafka
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:16004:16004"
|
||||
- "127.0.0.1:16104:16104"
|
||||
volumes:
|
||||
- ./ucentralfms-data:/ucentralfms-data
|
||||
- ./certs:/ucentralfms-data/certs
|
||||
|
||||
rttys:
|
||||
image: "tip-tip-wlan-cloud-ucentral.jfrog.io/rttys:${RTTYS_TAG}"
|
||||
restart: unless-stopped
|
||||
|
||||
141
docker-compose/ucentralfms-data/ucentralfms.properties
Normal file
141
docker-compose/ucentralfms-data/ucentralfms.properties
Normal file
@@ -0,0 +1,141 @@
|
||||
#
|
||||
# uCentral protocol server for devices. This is where you point
|
||||
# all your devices. You can replace the * for address by the specific
|
||||
# address of one of your interfaces
|
||||
#
|
||||
#
|
||||
# REST API access
|
||||
#
|
||||
ucentralfws.restapi.host.0.backlog = 100
|
||||
ucentralfws.restapi.host.0.security = relaxed
|
||||
ucentralfws.restapi.host.0.rootca = $UCENTRALFMS_ROOT/certs/restapi-ca.pem
|
||||
ucentralfws.restapi.host.0.address = *
|
||||
ucentralfws.restapi.host.0.port = 16004
|
||||
ucentralfws.restapi.host.0.cert = $UCENTRALFMS_ROOT/certs/restapi-cert.pem
|
||||
ucentralfws.restapi.host.0.key = $UCENTRALFMS_ROOT/certs/restapi-key.pem
|
||||
ucentralfws.restapi.host.0.key.password = mypassword
|
||||
|
||||
ucentral.internal.restapi.host.0.backlog = 100
|
||||
ucentral.internal.restapi.host.0.security = relaxed
|
||||
ucentral.internal.restapi.host.0.rootca = $UCENTRALFMS_ROOT/certs/restapi-ca.pem
|
||||
ucentral.internal.restapi.host.0.address = *
|
||||
ucentral.internal.restapi.host.0.port = 17004
|
||||
ucentral.internal.restapi.host.0.cert = $UCENTRALFMS_ROOT/certs/restapi-cert.pem
|
||||
ucentral.internal.restapi.host.0.key = $UCENTRALFMS_ROOT/certs/restapi-key.pem
|
||||
ucentral.internal.restapi.host.0.key.password = mypassword
|
||||
|
||||
#
|
||||
# Generic section that all microservices must have
|
||||
#
|
||||
ucentral.service.key = $UCENTRALFMS_ROOT/certs/restapi-key.pem
|
||||
ucentral.service.key.password = mypassword
|
||||
ucentral.system.data = $UCENTRALFMS_ROOT/data
|
||||
ucentral.system.debug = false
|
||||
ucentral.system.uri.private = https://ucentralfms.wlan.local:17004
|
||||
ucentral.system.uri.public = https://ucentral.wlan.local:16004
|
||||
ucentral.system.commandchannel = /tmp/app.ucentralfms
|
||||
ucentral.system.uri.ui = ucentral.wlan.local
|
||||
|
||||
#
|
||||
# Firmware Microservice Specific Section
|
||||
#
|
||||
s3.bucketname = ucentral-ap-firmware
|
||||
s3.region = us-east-1
|
||||
s3.secret = b0S6EiR5RLIxoe7Xvz9YXPPdxQCoZ6ze37qunTAI
|
||||
s3.key = AKIAUG47UZG7R6SRLD7F
|
||||
s3.retry = 60
|
||||
s3.bucket.uri = ucentral-ap-firmware.s3.amazonaws.com
|
||||
|
||||
firmwaredb.refresh = 1800
|
||||
#############################
|
||||
# Generic information for all micro services
|
||||
#############################
|
||||
#
|
||||
# NLB Support
|
||||
#
|
||||
alb.enable = true
|
||||
alb.port = 16104
|
||||
|
||||
#
|
||||
# Kafka
|
||||
#
|
||||
ucentral.kafka.group.id = firmware
|
||||
ucentral.kafka.client.id = firmware1
|
||||
ucentral.kafka.enable = true
|
||||
ucentral.kafka.brokerlist = kafka:9092
|
||||
ucentral.kafka.auto.commit = false
|
||||
ucentral.kafka.queue.buffering.max.ms = 50
|
||||
|
||||
#
|
||||
# This section select which form of persistence you need
|
||||
# Only one selected at a time. If you select multiple, this service will die if a horrible
|
||||
# death and might make your beer flat.
|
||||
#
|
||||
storage.type = sqlite
|
||||
#storage.type = postgresql
|
||||
#storage.type = mysql
|
||||
#storage.type = odbc
|
||||
|
||||
storage.type.sqlite.db = firmware.db
|
||||
storage.type.sqlite.idletime = 120
|
||||
storage.type.sqlite.maxsessions = 128
|
||||
|
||||
storage.type.postgresql.maxsessions = 64
|
||||
storage.type.postgresql.idletime = 60
|
||||
storage.type.postgresql.host = localhost
|
||||
storage.type.postgresql.username = stephb
|
||||
storage.type.postgresql.password = snoopy99
|
||||
storage.type.postgresql.database = ucentral
|
||||
storage.type.postgresql.port = 5432
|
||||
storage.type.postgresql.connectiontimeout = 60
|
||||
|
||||
storage.type.mysql.maxsessions = 64
|
||||
storage.type.mysql.idletime = 60
|
||||
storage.type.mysql.host = localhost
|
||||
storage.type.mysql.username = stephb
|
||||
storage.type.mysql.password = snoopy99
|
||||
storage.type.mysql.database = ucentral
|
||||
storage.type.mysql.port = 3306
|
||||
storage.type.mysql.connectiontimeout = 60
|
||||
|
||||
|
||||
########################################################################
|
||||
########################################################################
|
||||
#
|
||||
# Logging: please leave as is for now.
|
||||
#
|
||||
########################################################################
|
||||
logging.formatters.f1.class = PatternFormatter
|
||||
logging.formatters.f1.pattern = %Y-%m-%d %H:%M:%S %s: [%p] %t
|
||||
logging.formatters.f1.times = UTC
|
||||
logging.channels.c1.class = ConsoleChannel
|
||||
logging.channels.c1.formatter = f1
|
||||
|
||||
# This is where the logs will be written. This path MUST exist
|
||||
logging.channels.c2.class = FileChannel
|
||||
logging.channels.c2.path = $UCENTRALFMS_ROOT/logs/log
|
||||
logging.channels.c2.formatter.class = PatternFormatter
|
||||
logging.channels.c2.formatter.pattern = %Y-%m-%d %H:%M:%S %s: [%p] %t
|
||||
logging.channels.c2.rotation = 20 M
|
||||
logging.channels.c2.archive = timestamp
|
||||
logging.channels.c2.purgeCount = 20
|
||||
logging.channels.c3.class = ConsoleChannel
|
||||
logging.channels.c3.pattern = %s: [%p] %t
|
||||
|
||||
# External Channel
|
||||
logging.loggers.root.channel = c1
|
||||
logging.loggers.root.level = debug
|
||||
|
||||
# Inline Channel with PatternFormatter
|
||||
# logging.loggers.l1.name = logger1
|
||||
# logging.loggers.l1.channel.class = ConsoleChannel
|
||||
# logging.loggers.l1.channel.pattern = %s: [%p] %t
|
||||
# logging.loggers.l1.level = information
|
||||
# SplitterChannel
|
||||
# logging.channels.splitter.class = SplitterChannel
|
||||
# logging.channels.splitter.channels = l1,l2
|
||||
# logging.loggers.l2.name = logger2
|
||||
# logging.loggers.l2.channel = splitter
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user