Azure Red Hat OpenShift
Requirements
OpenShift Cluster
Deploy DecisionRules to Openshift Cluster
Before setting up DecisionRules on Openshift it is important to set up the MongoDB database and Redis Cache. Without these requirements, DecisionRules won't start successfully.
For deploying Decision Rules you need to login into the OpenShift console.
After you are logged in, select developer perspective.
Go to Project and click on create a Project.
After the Project is created and selected go to +Add.
Deploy DecisionRules server
Choose Container images.
Image
Image name from the external registry: docker.io/decisionrules/server(:version)
Resources
Deployment
Advanced options
Target port: 8080
Health checks
Readiness probe
Type: HTTP GET
Path: /health-check
Port: 8080
Failure threshold: 3
Success threshold: 1
Initial delay: 30
Period: 30
Timeout: 5
Liveness probe
Type: HTTP GET
Path: /health-check
Port: 8080
Failure threshold: 3
Success threshold: 1
Initial delay: 30
Period: 30
Timeout: 5
Startup probe
Type: HTTP GET
Path: /health-check
Port: 8080
Failure threshold: 3
Success threshold: 1
Initial delay: 30
Period: 30
Timeout: 5
Deployment (Environmental variables)
List of all environmental variables.
REDIS_URL: Redis Cache connection string (more information here)
MONGO_DB_URI: MongoDB connection string (more information here)
LICENSE_KEY: Your license key
DB_TYPE: COSMOSDB (in case you’re using Cosmos DB otherwise do not use this environment variable)
Click on Create.
Deploy DecisionRules client
Choose Container images.
Image
Image name from the external registry: docker.io/decisionrules/client(:version)
Resources
Deployment
Advanced options
Target port: 8080
Deployment (Environmental variables)
List of all environmental variables.
API_URL: URL of created DecisionRules server deployment
NGINX_PORT: 8080
Click on Create.
Modify DecisionRules server Deployment
After DecisionRules server deployment and DecisionRules client deployment is deployed, it is necessary to modify DecisionRules server deployment for the best experience.
You need to add a CLIENT_URL environment variable. The value is the URL of created DecisionRules client deployment with #. For example: https://app.decisionrules.io/#
Scaling
Openshift supports horizontal cluster scaling using 2 metrics. Either by using the CPU or RAM usage of the containers. The following parameters need to be set for scaling to work properly.
Resource limit
HorizontalPodAutoscaler
Resource limit
CPU
Request: same as WORKERS_NUMBER environmental variable (cores)
Limit: same as WORKERS_NUMBER environmental variable (cores)
Memory
Request: WORKERS_NUMBER * 300 + 400 (Mi)
Limit: WORKERS_NUMBER * 300 + 1000 (Mi)
HorizontalPodAutoscaler
Name
Custom name of metrics.
Minimum Pods
It depends on the needs. The recommended value is a minimum of 2.
Maximum Pods
It depends on the needs and the expected maximum performance.
CPU Utilization
Value: 60%
Memory Utilization
Value: 0%
Info
The default value when the cluster checks if the pods exceed the set parameters is 15s.
The cluster will add more pods if needed until the maximum number of pods defined in HorizontalPodAutoscaler is filled.
When resources (pods) are no longer needed, they are automatically deleted according to usage up to the Minimum Pods value set in HorizontalPodAutoscaler. This ensures that unused pods are not running unnecessarily.
Last updated