Service Specific Configuration
Mia-Platform Console architecture is composed by several microservices, to better respond to your user-load you can fine tune the configuration for each service following these configurations.
General configuration options
All of the following values are root values for the mia-console
chart values.
Name | Type | Description | Default | Optional |
---|---|---|---|---|
apiGateway | Service Conf | The configurations for the API Gateway Service | ✅ | |
rateLimitEnvoy | Service Conf | The configurations for the API Gateway Rate Limit Service | ✅ | |
apiPortal | Service Conf | The configurations for the API Portal Service | ✅ | |
authenticationService | Service Conf | The configurations for the Authentication Service | ✅ | |
authorizationService | Service Conf | The configurations for the Authorization Service | ✅ | |
backendService | Service Conf | The configurations for the Console Backend Service | ✅ | |
crudService | Service Conf | The configurations for the CRUD Service | ✅ | |
deployService | Service Conf | The configurations for the Deploy Service | ✅ | |
environmentsVariables | Service Conf | The configurations for the Environment Variables Service | ✅ | |
extensibilityManagerService | Service Conf | The configurations for the Extensibility Manager Service | ✅ | |
filesService | Service Conf | The configurations for the Files Service | ✅ | |
kubernetesService | Service Conf | The configurations for the Kubernetes Service | ✅ | |
loginSite | Service Conf | The configurations for the Login website Service | ✅ | |
notificationProvider | Service Conf | The configurations for the Notification Provider Service | ✅ | |
swaggerAggregator | Service Conf | The configurations for the Swagger Aggregator Service | ✅ | |
websites | Service Conf | The configurations for the Console website Service | ✅ | |
miaCraftBff | Service Conf | The configurations for the mia-craft backend for frontend | ✅ | |
rbacManagerBff | Service Conf | The configurations for the rbac-manager backend for frontend to handle users and iam | ✅ | |
rbacStandalone | Service Conf | The configurations for a rbac service standalone | ✅ | |
tenantOverviewBff | Service Conf | The configurations for the tenant overview service | ✅ | |
bindingsCleaner | Service Conf | The configurations for the bindings cleaner cronjob | ✅ | |
configurationsCleaner | Service Conf | The configurations for the configurations history cleaner cronjob | ✅ | |
mailService | Service Conf | The configurations for the mail service | ✅ | |
featureToggleService | Service Conf | The configurations for the feature toggle service | ✅ | |
licenseManager | Service Conf | The configurations for the license manager service | ✅ | |
backoffice | Service Conf | The configurations for Backoffice service | ✅ | |
eventsManager | Service Conf | The configurations for the events-manager service | ✅ | |
licenseMetricsGenerator | CronJob Conf | The configurations for the license metrics generator CronJob | ✅ | |
rbac | Annotation Conf | The configurations for the RBAC resources | ✅ | |
updateScripts.marketplaceCategories | Job | The configurable part of the marketplace categories hook | ✅ | |
updateScripts.consoleVersionUpgrader | Job | The configurable part of the console-version-upgrader hook | ✅ |
Service Conf
Name | Type | Description | Default | Optional |
---|---|---|---|---|
deploy | Deployment Conf | An object that describe the configurable part of a deployment | ❌ | |
service | Annotation Conf | An object that describe the configurable part of a kubernetes service | ❌ | |
rbacSidecar | RBAC Sidecar Conf | An object that describe the configurable part of the RBAC Sidecar service | ❌ |
CronJob Conf
Name | Type | Description | Default | Optional |
---|---|---|---|---|
cronjob | CronJob | An object that describe the configurable part of a cronjob | ❌ |
Deployment Conf
Name | Type | Description | Default | Optional |
---|---|---|---|---|
image | Docker Image | The docker image configurations | ❌ | |
annotations | Annotation Conf | ✅ | ||
resources | object | A kubernetes resource object for the container | ✅ | |
affinity | object | A kubernetes affinity object for the pod | ✅ | |
nodeSelector | object | A kubernetes nodeSelector object for the pod | ✅ | |
tolerations | array | A kubernetes tolerations array for the pod | ✅ | |
hpa | HPA Conf | A kubernetes hpa object to enable horizontal pod autoscaler | ✅ | |
podDisruptionBudget | PodDisruptionBudget | A kubernetes PodDisruptionBudget object | ✅ | |
podSecurityContext | Pod Security Context | A kubernetes pod security context object | ✅ |
Docker Image
Name | Type | Description | Default | Optional |
---|---|---|---|---|
repository | string | The docker image name without tag | ❌ | |
version | string | A valid docker image tag | ❌ | |
registry | string | A valid docker image registry | ✅ | |
pullPolicy | string | The policy for pulling the docker image, one of IfNotPresent or Always | IfNotPresent | ✅ |
HPA
Name | Type | Description | Default | Optional |
---|---|---|---|---|
minReplicas | integer | The minimum number of replicas, must not be lower than 1 | ❌ | |
maxReplicas | integer | The maximum number of replicas | ❌ | |
targetCPUUtilizationPercentage | integer | Percentage of CPU usage at which the pod should scale. | ❌ | |
annotations | object | ✅ |
PodDisruptionBudget
Name | Type | Description | Default | Optional |
---|---|---|---|---|
enabled | boolean | If PodDisruptionBudget must be enabled | false | ✅ |
minAvailable | integer | Number of pods from that set that must still be available after the eviction | ❌ | |
maxUnavailable | integer | Number of pods from that set that can be unavailable after the eviction | ❌ |
Annotations Conf
Name | Type | Description | Default | Optional |
---|---|---|---|---|
annotations | object | A Kubernetes valid annotation object | ✅ | |
labels | object | A Kubernetes valid labels object | ✅ |
RBAC Sidecar Conf
Name | Type | Description | Default | Optional |
---|---|---|---|---|
annotations | object | A Kubernetes valid annotation object | ✅ | |
resources | object | A Kubernetes valid resources object | ✅ |
CronJob
Name | Type | Description | Default | Optional |
---|---|---|---|---|
image | Docker Image | The docker image configurations | ❌ | |
annotations | Annotation Conf | ✅ | ||
resources | object | A kubernetes resource object for the container | ✅ | |
affinity | object | A kubernetes affinity object for the pod | ✅ | |
nodeSelector | object | A kubernetes nodeSelector object for the pod | ✅ | |
tolerations | array | A kubernetes tolerations array for the pod | ✅ | |
podSecurityContext | Pod Security Context | A kubernetes pod security context object | ✅ |
Job
Name | Type | Description | Default | Optional |
---|---|---|---|---|
image | Docker Image | The docker image configurations | ❌ | |
annotations | Annotation Conf | ✅ | ||
resources | object | A kubernetes resource object for the container | ✅ | |
affinity | object | A kubernetes affinity object for the pod | ✅ | |
nodeSelector | object | A kubernetes nodeSelector object for the pod | ✅ | |
tolerations | array | A kubernetes tolerations array for the pod | ✅ | |
podSecurityContext | Pod Security Context | A kubernetes pod security context object | ✅ |
Examples
mia-console:
authenticationService:
deploy:
image:
version: "AUTHN-VERSION"
resources:
requests:
cpu: "10m"
memory: "30Mi"
limits:
memory: 70Mi
hpa:
annotations: {}
minReplicas: 2
maxReplicas: 3
targetCPUUtilizationPercentage: 70
crudService:
deploy:
image:
version: "CRUD-VERSION"
resources:
requests:
memory: "70Mi"
cpu: "20m"
limits:
memory: "250Mi"
cpu: "50m"
hpa:
annotations:
foo: bar
minReplicas: 2
maxReplicas: 4
targetCPUUtilizationPercentage: 70
Suggested resources
Based on the number of users, you might want to change the CPU and Memory resources configurations for each service; when doing so you can take the examples provided in the Installation Chart Example page which are enough to manage up to 300 monthly active users. If you have less or more users you can reduce or increase the resources as you prefer and fine-tune your installation resource consumption.
To better size the Console cluster dimension, consider that the minimum allocatable memory (RAM) and core (CPU) values should be at least equal to the sum of the requested ones set in your installation chart for all services.
Deploy with High Availability
To enable High Availability you can configure HPA for each service just by following the example below
mia-console:
...
<SERVICE_NAME>:
deploy:
hpa:
annotations: {}
minReplicas: 2
maxReplicas: 4
targetCPUUtilizationPercentage: 70
For all the Console services you want to replicate, set the <SERVICE_NAME>
with the correct value, adjust the minReplicas
, maxReplicas
and the targetCPUUtilizationPercentage
(which is the percentage of CPU used compared to the requested CPU set) values with the desired ones.
In the configuration shown in the example, the <SERVICE_NAME>
will have at least 2 running pods and it will be automatically replicated up to 4 times when the service CPU usage exceeds the request value set.