You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/deployment/configuration.md
+9-18Lines changed: 9 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
# Configuration
2
2
3
-
This section explain the current configuration options that are available for the different components that are deployed but the Helm charts.
3
+
This section explains the current configuration options that are available for the different components deployed by these Helm charts.
4
4
5
5
## Global
6
6
7
-
The is only one mandatory configuration, which is the host name, for example:
7
+
There is only one mandatory configuration: the host name.
8
8
9
9
```yaml
10
10
host: your-rdm-instance.com
11
11
```
12
12
13
-
Moreover, the services can be deployed along, note that it is recommended to deploy separatelly Elasticsearch and PostgreSQL for a production deployment.
13
+
Moreover, the services can be deployed along. Note that it is recommended to deploy Elasticsearch and PostgreSQL separately for a production deployment.
14
14
Therefore, by default only `redis` and `rabbitmq` are enabled. Example configuration:
15
15
16
16
``` yaml
@@ -27,24 +27,16 @@ elasticsearch:
27
27
28
28
## HAProxy
29
29
30
-
You can change the number of connections allowed by the haproxy with the `maxconn` variable:
30
+
You can change the number of connections allowed by haproxy with the `maxconn` variable:
31
31
32
32
```
33
33
haproxy:
34
34
maxconn: 100
35
35
```
36
36
37
-
!!! warning "Only one parent element"
38
-
By default the HAProxy is enabled, `inside_cluster` has the value `true`, nonetheless if you decide to set it, you only need
39
-
to specify once the `haproxy` parent in the yaml file. Otherwise the last one will override the previous. It should be something like:
40
-
``` yaml
41
-
haproxy:
42
-
inside_cluster: true
43
-
maxconn: 100
44
-
```
45
37
## Nginx
46
38
47
-
The charts allow you to configure the amount of connections per nginx node (replica) and the amount of nodes:
39
+
These charts allow you to configure the amount of connections per nginx node (replica) and the amount of nodes:
48
40
49
41
```
50
42
nginx:
@@ -54,9 +46,9 @@ nginx:
54
46
55
47
## Web nodes
56
48
57
-
The web nodes host the WSGI application, in order to be scalable you can configure the number of "nodes", called replicas, how many processes do each node run and with how many threads per process. The only mandatory parameter is the docker image (`image`) that should get as value the url where to pull the image from.
49
+
The web nodes host the WSGI application. In order to be scalable you can configure the number of "nodes", called replicas, with how many processes each node runs and with how many threads per process. The only mandatory parameter is the docker image (`image`) that should get as value the url where to pull the image from.
58
50
59
-
In addition, you can add automatic scaling, by setting minimum and maximum replicas and the threshold of cpu usage in which a new node should be spawned. For example, with a threshold of 65%, it meand that when the average CPU utilization of the nodes reaches 65% a new node will de spawned, till it reaches the setted maximum:
51
+
In addition, you can add automatic scaling by setting minimum (`min_web_replicas`) and maximum (`max_web_replicas`) replicas, and the cpu usage threshold in percentage (`scaler_cpu_utilization`) that spawns a new node. For example, with a `scaler_cpu_utilization` value of 65, it means that when the average CPU utilization of the nodes reaches 65%, a new node will be spawned. This process will repeat itself until the maximum number of replicas has been reached:
60
52
61
53
``` yaml
62
54
web:
@@ -75,10 +67,9 @@ web:
75
67
76
68
## Worker nodes
77
69
78
-
Finally, the worker nodes. By default they are enabled, but you can cancel their deployment by setting `enabled` to `false`. If enabled, in the same fashion than the web nodes
79
-
they require an `image`.
70
+
Finally, the worker nodes. By default they are enabled, but you can cancel their deployment by setting `enabled` to `false`. If enabled, they require an `image` like the web nodes.
80
71
81
-
In addition, you can configure how many worker nodes (replicas) will be deployed, which the application they will run, with which concurrency level and the logging level.
72
+
In addition, you can configure the number of worker nodes (replicas) to be deployed, the application they will run, their concurrency level and their logging level.
You can deploy InvenioRDM in several ways. You can install it in your [local computer](../develop/index.md)to have more easily customizable environment, otherwise you can deploy a [containerized environment](../preview/index.md) that demonstrates the setup of all components runnning in docker containers. In this section it is explained how to deploy in a closer-to-production manner.
3
+
In previous sections, you could see how to install InvenioRDM in your [local computer](../develop/index.md)for development, and how to run [containerized environment](../preview/index.md) that demonstrates the setup of all components running in docker containers. In this section we cover how to deploy InvenioRDM in a closer-to-production manner.
4
4
5
5
!!! warning "Do not deploy as-is in production"
6
-
Please note that it is mentioned as "closer-to-production", this is because even if the designed architecture can scale and withstand the load of a production service (It has been tested to stand peaks of up to 180 requests/s), the security configurations might not be enough and you should review it. In addition, it can deploy the extra services (Elasticsearch and PostgreSQL) along with them, however this ones are not configured with redundancy and persistance.
6
+
Please note the "closer-to-production" statement, this is because even if the designed architecture can scale and withstand the load of a production service (It has been tested to stand peaks of up to 180 requests/s), you need to review the security configurations and customize resources to fit your use case. In addition, Elasticsearch and PostgreSQL can be deployed along with the application, however they are not configured with redundancy and persistance in mind.
7
7
8
8
## Helm Charts
9
9
10
-
[Helm](https://helm.sh) is the package manager for [Kubernetes](https://kubernetes.io/). This means, that by using Helm charts you can deploy InvenioRDM in any cloud provider that supports Kubernetes (e.g. OpenShift clusters, Google Cloud, Amazon Web Services, IBM Cloud).
10
+
[Helm](https://helm.sh) is the package manager for [Kubernetes](https://kubernetes.io/). This means, that by using Helm charts (packages in Helm lingo) you can deploy InvenioRDM in any cloud provider that supports Kubernetes (e.g. OpenShift clusters, Google Cloud, Amazon Web Services, IBM Cloud).
11
11
12
12
**What is a Helm chart?**
13
13
14
-
A Helm chart is a definition of the architecture of the system, meaning how all components interconnect with each other (In a similar fashion that a `docker-compose` file).
14
+
A Helm chart is a definition of the architecture of the system, meaning how all components interconnect with each other (Similar to a `docker-compose` file).
15
15
16
-
In addition, Helm allows you to **install, version and upgrade and rollback** your InvenioRDM installation in an easy way. You can find more information about Helm [here](https://helm.sh/docs/intro/quickstart/).
16
+
In addition, Helm allows you to **install, version, upgrade and rollback** your InvenioRDM installation in an easy way. You can find more information about Helm [here](https://helm.sh/docs/intro/quickstart/).
17
17
18
18
### Charts description
19
19
20
-
The currents charts propose the following architecture:
20
+
The current charts propose the following architecture:
21
21
22
-
- HAProxy as entry point. It provides load balancing and queuing of the requests.
22
+
- HAProxy as entry point. It provides load balancing and queuing of requests.
23
23
- Nginx as reverse proxy. It serves as reverse proxy, to help HAproxy and uWSGI "talk" the same language (protocol).
24
24
- Web application nodes, running the uWSGI application.
25
25
- Redis and RabbitMQ come along in containers.
26
-
- Elasticsearch and PostgreSQL can be added to the deployment, however they are not configured in-depth and therefore not suited for more than demo purposes.
26
+
- Elasticsearch and PostgreSQL can be added to the deployment. However they are not configured in-depth and therefore not suited for more than demo purposes.
27
27
28
28
For more in-depth documentation see the [services description](services.md) and the configuration available [here](configuration.md).
29
29
@@ -42,19 +42,19 @@ helm-invenio/invenio 0.2.0 1.16.0 Open Source framework for large-s
42
42
helm-invenio/invenio 0.1.0 1.16.0 Open Source framework for large-scale digital repositories
43
43
```
44
44
45
-
You can also install by cloning from GitHub by cloning the repository:
Copy file name to clipboardExpand all lines: docs/deployment/openshift.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
9
9
## Deploying InvenioRDM
10
10
11
-
First of all login and select the right project in your OpenShift cluster:
11
+
First of all, log in and select the right project in your OpenShift cluster:
12
12
13
13
```console
14
14
$ oc login <your.openshift.cluster>
@@ -17,7 +17,7 @@ $ oc project invenio
17
17
18
18
### Secrets
19
19
20
-
Before deploying in need to provide the credentials so the application can access the different services:
20
+
Before deploying, you need to provide the credentials so the application can access the different services. Replace the credentials and configuration below with your own:
21
21
22
22
**Database secrets:**
23
23
@@ -47,7 +47,7 @@ secret "mq-secrets" created
47
47
48
48
**Elasticsearch secrets:**
49
49
50
-
!!! info "Elasticaserch variables"
50
+
!!! info "Elasticsearch variables"
51
51
Currently, and until [invenio-search#198](https://github.com/inveniosoftware/invenio-search/issues/198) has been addressed, the Elasticsearch configuration
52
52
has to be loaded in a single environment variable.
53
53
@@ -59,13 +59,13 @@ $ oc create secret generic \
59
59
```
60
60
61
61
!!! info "Extra configuration is possible"
62
-
Note that you might need to add extra configuration to the elasticsearch hosts, sucha as vertificate verification (`verify_certs`), prefixing (`url_prefix`) and more.
62
+
Note that you might need to add extra configuration to the Elasticsearch hosts, such as certificate verification (`verify_certs`), prefixing (`url_prefix`) and more.
63
63
64
64
### Install InvenioRDM
65
65
66
-
Before installing you need to configure two things, the rest are optional and you can read more about it[here](configuration.md):
66
+
Before installing you need to configure two things in your `values.yml` file. The rest are optional and you can read more about them[here](configuration.md):
67
67
68
-
-Your host in a `values.yaml` file.
68
+
-The host.
69
69
- The web/worker docker images.
70
70
71
71
```yaml
@@ -78,7 +78,7 @@ worker:
78
78
image: your/invenio-image
79
79
```
80
80
81
-
The next step is the installation itself, with your own configuration in the `values.yaml`. If you added the repository you can install it by using the chart name and the desired version:
81
+
The next step is the installation itself, with your own configuration in the `values.yaml`. If you added the repository, you can install it by using the chart name and the desired version:
If you have performed some changes to your instance (e.g. configuration) or you want to upgrade the version of the charts, you can do so with
158
-
the `upgrade` command of `helm`, note that you still need to disable the openapi validation which is only supoprted after version 3.1.2:
159
+
the `upgrade` command of `helm`. Note that you still need to disable the openapi validation which is yet not supported in version 3.1.2 (However, it is merged into the master branch and should come out soon):
0 commit comments