Deploying YOUnite Jenkins Pipelines to Rancher
YOUnite API
For YOUnite to function properly, it requires its supporting services are up and functioning properly.
These include:
- Database: Postgres or AWS RDS
- AMQ Message Broker
- Elastic Stack
- Includes
- Beats
- NGINX firewall proxy
- Includes
- YOUnite UI
The supporting services are configured as Rancher services that include load-balanced containers that run as part of one or more Rancher stacks.
YOUnite API
Rancher Stacks
Database Initialization
Flyway needs to be invoked to seed the database requiring only one instance of YOUnite API to run during this process. To ensure the database initialization is handled properly, you must instantiate the YOUnite API service in a rolling deployment.
Message Broker
Configure AMQ in a high availability (HA) configuration.
Elastic Stack
The following Elastic Stack services need to configured in an HA configuration
- Kibana
- Elasticsearch
- Beats
- Logstash
YOUnite UI
YOUnite UI is designed to horizontally scale out of the box. See the YOUnite UI page for configuration requirements. TODO
Rancher/Jenkins
Application Properties
Settings for the following applications can be made in the application.properties
file. See Implementing the YOUnite Ecosystem for more information. TODO
- OAuth config
- Elastic Config
- AMQ COnfig
- SSO Config
- DB Config
Database Configuration
AWS RDS
AWS Relational Database Services (RDS) will be used in the production and QA environments.
This will take some effort for us to migrate from Postgres.
Message Queue Configuration
Additional settings for the Message Service can be made in the spring-activemq.xml
file found at TODO
Elastic Stack Configuration
Default Notification Settings
YOUnite UI
The YOUnite UI needs to connect to the following services:
- YOUnite API Service
- YOUnite URI/port is required
- OAuth credentials
- AMQ Message Broker
- AMQ URI/ports
- Security credentials
- Elastic Kibana
- Kibana URI/ports
- OAuth credentials
- Deployment ID Provider (IDP)
- IDP URI/ports
- Secure configuration (see diagram)