An open API service indexing awesome lists of open source software.

https://github.com/mprove-io/mprove-helm-charts


https://github.com/mprove-io/mprove-helm-charts

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Mprove Helm Charts

## Prerequisites
- Kubernetes cluster
- Kubectl
- Helm v3.10+

## Setup Kubernetes Cluster

Create namespace:
```
kubectl create namespace mprove
```

Default [mprove/values.yaml](https://github.com/mprove-io/mprove-helm-charts/blob/master/mprove/values.yaml) values should be overrided by your custom values. Values examples:
- [values-mprove-example-managed-demo.yaml](https://github.com/mprove-io/mprove-helm-charts/blob/master/values-mprove-example-managed-demo.yaml)
- [values-mprove-example-no-demo.yaml](https://github.com/mprove-io/mprove-helm-charts/blob/master/values-mprove-example-no-demo.yaml)
- [values-mprove-example-gitclone-demo.yaml](https://github.com/mprove-io/mprove-helm-charts/blob/master/values-mprove-example-gitclone-demo.yaml)

Create **values-mprove.yaml** file to override helm chart default values:
```
curl 'https://raw.githubusercontent.com/mprove-io/mprove-helm-charts/master/values-mprove-example-managed-demo.yaml' > values-mprove.yaml
```

Replace the suggested values in the file with your own.

### Custom Ingress

If you are using your own Ingress, make sure HTTP requests are routed between the Front and Backend services using the "/api" prefix. Check [mprove/templates/ingress/route.yaml](https://github.com/mprove-io/mprove-helm-charts/blob/master/mprove/templates/ingress/route.yaml) for example.

```
ingress:
enabled: false
```

### Mprove Istio Ingress

Install istioctl:
```
brew install istioctl
```

Install Istio to the cluster:
```
istioctl install
```

Add istio-injection label:
```
kubectl label namespace mprove istio-injection=enabled --overwrite
```

Install Cert Manager to the cluster:
```
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager -n cert-manager --create-namespace --set installCRDs=true
```

Create DNS A record pointing your `real-host.example.com` to your kubernetes cluster's LoadBalancer public IP.

**values-mprove.yaml** overrides example:
```
ingress:
enabled: true
host: real-host.example.com
acmeEmail: [email protected]
```

## Install Mprove Helm Chart

```
helm install -f values-mprove.yaml mprove oci://ghcr.io/mprove-io/mprove-helm-charts/mprove --version -n mprove
```

```
helm upgrade -f values-mprove.yaml mprove oci://ghcr.io/mprove-io/mprove-helm-charts/mprove --version -n mprove
```

```
helm uninstall mprove -n mprove
```

```
helm template -f values-mprove.yaml mprove oci://ghcr.io/mprove-io/mprove-helm-charts/mprove --version -n mprove
```

## First Project (demo/p1)

First Project (p1) belongs to the First Org (demo).

First User gets the role **Owner** for the First Org (demo).

First User gets the role **Admin** for the First Project (p1).

First Project is for demonstration purposes only.
Many user actions in the demo/p1 project are restricted.

Each new registered Mprove user is automatically added to the demo/p1 project.

To disable First Org and First Project, you need to set the environment variables to empty values.
Then delete demo/p1 via UI if they are already created.

```
backendCommon:
envs:
BACKEND_FIRST_ORG_ID=
BACKEND_FIRST_PROJECT_ID=
```

You can also disable demo data warehouses:

```
dwhPostgres:
enabled: false
```

```
dwhClickhouse:
enabled: false
```

## Values Configuration

| Parameter | Description | Default |
| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| **ingress:** | **Kubernetes Ingress (Istio + Cert Manager)** | |
|     enabled: | Enables [mprove/templates/ingress/*](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/ingress) resources | `false` |
|     host: | *Replace with real host*. | `real-host.example.com` |
|     acmeEmail: | *Replace with real email*. For cert-manager ClusterIssuer. | `[email protected]` |
|     certProdSecretName: | | `cert-prod-secret` |
|     certStagingSecretName: | | `cert-staging-secret` |
|     routeGrafana: | | |
|       enabled: | Enables [mprove/templates/ingress/route-grafana.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/ingress/route-grafana) resource | `false` |
|       host: | | `grafana.example.com` |
|       destination: | | `grafana-service-name.grafana-namespace.svc.cluster.local` |
| **kubeSystemNodeSetup:** | **Kubernetes Node Setup** | |
|     enabled: | Enables [mprove/templates/kube-system-node-setup.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/kube-system-node-setup.yaml) resource. Increases the number of inotify max_user_watches per kubernetes node. | `true` |
| **db:** | **Mprove Application Database** | |
|     enabled: | Enables [mprove/templates/db.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/db.yaml) resource | `true` |
|     image: | | `mysql` |
|     tag: | | `8.0.29` |
|     name: | | `db` |
|     storage: | | `10Gi` |
|     envsSecretName: | Secret name from which db container will get environment variables | `db-envs` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-db-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-db-envs.yaml) secret from envs values | `true` |
|     envs: | | |
|         MYSQL_ROOT_PASSWORD: | *Replace with your value* | `mysqlpass` |
|         MYSQL_DATABASE: | | `mprovedb` |
|         MYSQL_USERNAME: | | `root` |
| **rabbit:** | **Mprove Application Message Queue** | |
|     enabled: | Enables [mprove/templates/rabbit.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/rabbit.yaml) resource | `true` |
|     image: | | `rabbitmq` |
|     tag: | | `3.10.6-management` |
|     name: | | `rabbit` |
|     envsSecretName: | Secret name from which rabbit container will get environment variables | `rabbit-envs` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-rabbit-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-rabbit-envs.yaml) secret from envs values | `true` |
|     envs: | | |
|         RABBITMQ_DEFAULT_USER: | | `rabbituser` |
|         RABBITMQ_DEFAULT_PASS: | *Replace with your value* | `rabbitpass` |
|         RABBITMQ_ERLANG_COOKIE: | *Replace with your value* | `rabbitcookie` |
| **front:** | **Mprove Frontend Service (Nginx)** | |
|     image: | | `ghcr.io/mprove-io/mprove-front` |
|     name: | | `front` |
|     replicas: | | `1` |
| **disk:** | **Mprove Disk Service** | |
|     image: | | `ghcr.io/mprove-io/mprove-disk` |
|     name: | | `disk` |
|     storage: | | `2Gi` |
|     envsSecretName: | Secret name from which disk containers will get environment variables | `disk-envs` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-disk-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-disk-envs.yaml) secret from envs values | `true` |
|     envs: | | |
|         NODE_ENV: | | `production` |
|         DISK_ENV: | | `PROD` |
|         DISK_ORGANIZATIONS_PATH: | | `/root/mprove_data/organizations` |
|         DISK_RABBIT_PROTOCOL: | | `amqp` |
|         DISK_RABBIT_USER: | | `rabbituser` |
|         DISK_RABBIT_PASS: | *Replace with your value* | `rabbitpass` |
|         DISK_RABBIT_HOST: | | `rabbit` |
|         DISK_RABBIT_PORT: | | `5672` |
|         DISK_LOG_IS_JSON: | Value must be `'TRUE'` or `'FALSE'` | `'TRUE'` |
|         DISK_LOG_RESPONSE_ERROR: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         DISK_LOG_RESPONSE_OK: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
| **blockmlSingle:** | **Mprove BlockML Service** | |
|     name: | | `blockml-single` |
|     replicas: | | `1` |
| **blockmlCommon:** | **Mprove common values for BlockML services** | |
|     image: | | `ghcr.io/mprove-io/mprove-blockml` |
|     envsSecretName: | Secret name from which blockml containers will get environment variables | `blockml-common-envs` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-blockml-common-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-blockml-common-envs.yaml) secret from envs values | `true` |
|     envs: | | |
|         NODE_ENV: | | `production` |
|         BLOCKML_ENV: | | `PROD` |
|         BLOCKML_RABBIT_PROTOCOL: | | `amqp` |
|         BLOCKML_RABBIT_USER: | | `rabbituser` |
|         BLOCKML_RABBIT_PASS: | *Replace with your value* | `rabbitpass` |
|         BLOCKML_RABBIT_HOST: | | `rabbit` |
|         BLOCKML_RABBIT_PORT: | | `5672` |
|         BLOCKML_LOG_IO: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         BLOCKML_LOG_FUNC: | | `ALL` |
|         BLOCKML_COPY_LOGS_TO_MODELS: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         BLOCKML_LOGS_PATH: | | `/root/mprove_data/blockml-logs` |
|         BLOCKML_IS_SINGLE: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         BLOCKML_IS_MAIN: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         BLOCKML_IS_WORKER: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE`' |
|         BLOCKML_CONCURRENCY_LIMIT: | | `0` |
|         BLOCKML_LOG_IS_JSON: | Value must be `'TRUE'` or `'FALSE'` | `'TRUE'` |
|         BLOCKML_LOG_RESPONSE_ERROR: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         BLOCKML_LOG_RESPONSE_OK: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
| **backend:** | **Mprove Backend Service** | |
|     name: | | `backend` |
|     replicas: | | `1` |
| **backendScheduler:** | **Mprove Backend Scheduler Service** | |
|     name: | | `backend-scheduler` |
| **backendCommon:** | **Mprove common values for Backend services** | |
|     image: | | `ghcr.io/mprove-io/mprove-backend` |
|     envsSecretName: | Secret name from which backend containers will get environment variables | `backend-common-envs` |
|     secretFilesSecretName: | Secret name from which backend containers will get secret files | `backend-common-secret-files` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-backend-common-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-backend-common-envs.yaml) secret from envs values | `true` |
|     createSecretFilesSecret: | Creates [mprove/templates/secrets/secret-backend-common-secret-files.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-backend-common-secret-files.yaml) secret from firstProject* values | `true` |
|     firstProjectBigqueryCredentials: | *Replace with your value*. Required for first project bigquery connection seed if BACKEND_FIRST_PROJECT_SEED_CONNECTIONS is set to `'TRUE'`. | `{}` |
|     firstProjectRemotePrivateKey: | *Replace with your value*. Required if BACKEND FIRST_PROJECT_REMOTE_TYPE is set to `GitClone` | `''` |
|     firstProjectRemotePublicKey: | *Replace with your value*. Required if BACKEND FIRST_PROJECT_REMOTE_TYPE is set to `GitClone` | `''` |
|     envs: | | |
|         NODE_ENV: | | `production` |
|         BACKEND_ENV: | | `PROD` |
|         BACKEND_MYSQL_DATABASE: | | `mprovedb` |
|         BACKEND_MYSQL_PASSWORD: | | `mysqlpass` |
|         BACKEND_MYSQL_HOST: | | `db` |
|         BACKEND_MYSQL_PORT: | | `3306` |
|         BACKEND_MYSQL_USERNAME: | | `root` |
|         BACKEND_RABBIT_PROTOCOL: | | `amqp` |
|         BACKEND_RABBIT_USER: | | `rabbituser` |
|         BACKEND_RABBIT_PASS: | *Replace with your value* | `rabbitpass` |
|         BACKEND_RABBIT_HOST: | | `rabbit` |
|         BACKEND_RABBIT_PORT: | | `5672` |
|         BACKEND_JWT_SECRET: | *Replace with your value* | `jwtsecret` |
|         BACKEND_SPECIAL_KEY: | | |
|         BACKEND_ALLOW_TEST_ROUTES: | Value must be `'TRUE'` or `'FALSE'`. Value `'TRUE'` should be used for testing purposes only. | `'FALSE'` |
|         BACKEND_FIRST_USER_EMAIL: | *Replace with your real email* | `[email protected]` |
|         BACKEND_FIRST_USER_PASSWORD: | *Replace with your value* | `userpass` |
|         BACKEND_FIRST_ORG_ID: | | `AWNCAHWLFQTQJYCH3ZSE` |
|         BACKEND_FIRST_PROJECT_ID: | | `DXYE72ODCP5LWPWH2EXQ` |
|         BACKEND_FIRST_PROJECT_REMOTE_TYPE: | Value must be `Managed` or `GitClone`. | `Managed` |
|         BACKEND_FIRST_PROJECT_GIT_URL: | *Replace with your value*. Required if BACKEND FIRST_PROJECT_REMOTE_TYPE is set to `GitClone`. Git URL format is `[email protected]:account-name/repo-name.git`. | |
|         BACKEND_FIRST_PROJECT_PRIVATE_KEY_PATH: | | `secrets/first-project-remote-private-key.pem` |
|         BACKEND_FIRST_PROJECT_PUBLIC_KEY_PATH: | | `secrets/first-project-remote-public-key.pem` |
|         BACKEND_FIRST_PROJECT_SEED_CONNECTIONS: | Value must be `'TRUE'` or `'FALSE'` | `'TRUE'` |
|         BACKEND_FIRST_PROJECT_DWH_POSTGRES_PASSWORD: | *Replace with your value* | `postgrespass` |
|         BACKEND_FIRST_PROJECT_DWH_CLICKHOUSE_PASSWORD: | *Replace with your value* | `clickhousepass` |
|         BACKEND_FIRST_PROJECT_DWH_BIGQUERY_CREDENTIALS_PATH: | | `secrets/first-project-bigquery-credentials.json` |
|         BACKEND_FIRST_PROJECT_DWH_SNOWFLAKE_ACCOUNT: | *Replace with your value* | `realSnowflakeAccount` |
|         BACKEND_FIRST_PROJECT_DWH_SNOWFLAKE_WAREHOUSE: | *Replace with your value* | `realSnowflakeWarehouse` |
|         BACKEND_FIRST_PROJECT_DWH_SNOWFLAKE_USERNAME: | *Replace with your value* | `realSnowflakeUsername` |
|         BACKEND_FIRST_PROJECT_DWH_SNOWFLAKE_PASSWORD: | *Replace with your value* | `realSnowflakePassword` |
|         BACKEND_ALLOW_USERS_TO_CREATE_ORGANIZATIONS: | Value must be `'TRUE'` or `'FALSE'`. If set to `'FALSE'`, then make sure BACKEND_FIRST_USER_EMAIL and BACKEND_FIRST_USER_PASSWORD are not empty, as only the First User will be able to create new organizations. | `'FALSE'` |
|         BACKEND_REGISTER_ONLY_INVITED_USERS: | Value must be `'TRUE'` or `'FALSE'`. If set to `'TRUE'`, then make sure BACKEND_FIRST_USER_EMAIL and BACKEND_FIRST_USER_PASSWORD are not empty, as new users will only be able to register if they are invited to a project (by First User or other registered users). | `'TRUE'` |
|         BACKEND_HOST_URL: | *Replace with your value* | `https://real-host.example.com` |
|         BACKEND_SEND_EMAIL_FROM_NAME: | *Replace with your value* | `My Company Name` |
|         BACKEND_SEND_EMAIL_FROM_ADDRESS: | *Replace with your value* | `[email protected]` |
|         BACKEND_EMAIL_TRANSPORT: | Value must be `SMTP` or `MAILGUN`. Email delivery is used for transactional emails. Such as inviting new team members to the project, confirming registration or changing the password. Without a working email delivery credentials, users will not be able to confirm registration. | `SMTP` |
|         BACKEND_MAILGUN_ACTIVE_API_KEY: | | |
|         BACKEND_MAILGUN_DOMAIN: | | |
|         BACKEND_SMTP_HOST: | *Replace with your value* | `real-smtp.example.com` |
|         BACKEND_SMTP_PORT: | *Replace with your value* | `465` |
|         BACKEND_SMTP_SECURE: | Value must be `'TRUE'` or `'FALSE'` | `'TRUE'` |
|         BACKEND_SMTP_AUTH_USER: | *Replace with your value* | `realSmtpUser` |
|         BACKEND_SMTP_AUTH_PASSWORD: | *Replace with your value* | `realSmtpPassword` |
|         BACKEND_LOG_IS_JSON: | Value must be `'TRUE'` or `'FALSE'` | `'TRUE'` |
|         BACKEND_LOG_RESPONSE_ERROR: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
|         BACKEND_LOG_RESPONSE_OK: | Value must be `'TRUE'` or `'FALSE'` | `'FALSE'` |
| **dwhPostgres:** | **DWH Postgres container should only be used for First Project demonstration purposes** | |
|     enabled: | Enables [mprove/templates/dwh-postgres.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/dwh-postgres.yaml) resource | `true` |
|     image: | | `ghcr.io/mprove-io/mprove-dwh-postgres` |
|     name: | | `dwh-postgres` |
|     storage: | | `2Gi` |
|     envsSecretName: | Secret name from which dwhPostgres container will get environment variables | `dwh-postgres-envs` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-dwh-postgres-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-dwh-postgres-envs.yaml) secret from envs values | `true` |
|     envs: | | |
|         PGDATA: | | `/var/lib/postgresql/data/pgdata` |
|         POSTGRES_PASSWORD: | *Replace with your value* | `postgrespass` |
| **dwhClickhouse:** | **DWH ClickHouse container should only be used for First Project demonstration purposes** | |
|     enabled: | Enables [mprove/templates/dwh-clickhouse.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/dwh-clickhouse.yaml) resource. | `true` |
|     image: | | `ghcr.io/mprove-io/mprove-dwh-clickhouse` |
|     name: | | `dwh-clickhouse` |
|     storage: | | `2Gi` |
|     storageLogs: | | `2Gi` |
|     envsSecretName: | Secret name from which dwhClickhouse container will get environment variables | `dwh-clickhouse-envs` |
|     createEnvsSecret: | Creates [mprove/templates/secrets/secret-dwh-clickhouse-envs.yaml](https://github.com/mprove-io/mprove-helm-charts/tree/master/mprove/templates/secrets/secret-dwh-clickhouse-envs.yaml) secret from envs values | `true` |
|     envs: | | |
|         CLICKHOUSE_DB: | | `c_db` |
|         CLICKHOUSE_USER: | | `c_user` |
|         CLICKHOUSE_PASSWORD: | *Replace with your value* | `clickhousepass` |