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: README.md
+22-17Lines changed: 22 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,8 @@ There are three ways the service can be activated:
50
50
```
51
51
provided that `LICENSE_TICKET_ID` is set in your environment.
52
52
53
-
IMPORTANT! If you are attempting to build a production environment, it's recommended to use the custom Docker image with WProofreader Server instead of the public one published on Docker Hub. With the custom image, you won't need to activate the license on the container start. Thus, you just skip this step. Otherwise, you may face the issue with reaching the maximum allowed number of license activation attempts (by default, 25). In this case, you need to [contact support](https://webspellchecker.com/contact-us/) to extend/reset the license activation limit. Nevertheless, using the public image is acceptable for evaluation, testing and development purposes.
53
+
> [!IMPORTANT]
54
+
> If you are attempting to build a production environment, it's recommended to use the custom Docker image with WProofreader Server instead of the public one published on Docker Hub. With the custom image, you won't need to activate the license on the container start. Thus, you just skip this step. Otherwise, you may face the issue with reaching the maximum allowed number of license activation attempts (by default, 25). In this case, you need to [contact support](https://webspellchecker.com/contact-us/) to extend/reset the license activation limit. Nevertheless, using the public image is acceptable for evaluation, testing and development purposes.
54
55
55
56
## HTTPS
56
57
@@ -65,10 +66,11 @@ files within the chart directory. Keep in mind that Helm can't reach outside the
65
66
3.`certMountPath` to whatever path was used in the `Dockerfile`.
66
67
For the DockerHub image, one should stick to the default value, which is `/certificate`.
67
68
68
-
Note: `certFile` and `keyFile` filenames, as well as `certMountPath` have to match to values set in the
69
-
`Dockerfile` used for building the image. Otherwise, `nginx` config (`/etc/nginx/conf.d/wscservice.conf`)
70
-
has to be updated with new filenames and locations.
71
-
The defaults for the DockerHub image are `cert.pem`, `key.pem`, and `/certificate`, respectively.
69
+
> [!NOTE]
70
+
> `certFile` and `keyFile` filenames, as well as `certMountPath` have to match to values set in the
71
+
> `Dockerfile` used for building the image. Otherwise, `nginx` config (`/etc/nginx/conf.d/wscservice.conf`)
72
+
> has to be updated with new filenames and locations.
73
+
> The defaults for the DockerHub image are `cert.pem`, `key.pem`, and `/certificate`, respectively.
72
74
73
75
## Custom dictionaries
74
76
@@ -107,19 +109,20 @@ Once uploaded, the files will automatically appear on all pods and persist
107
109
even if the pods are restarted. Follow these steps:
108
110
1. Get the name of one of the pods. For the Helm release named `wproofreader-app` in the `wsc` namespace, use
109
111
```shell
110
-
POD=$(kubectl get pods -n wsc -l app.kubernetes.io/instance=wproofreader-app -o jsonpath="{.items[0].metadata.name}")
112
+
POD=$(kubectl get pods -n wsc -l app.kubernetes.io/instance=wproofreader-app -o jsonpath="{.items[0].metadata.name}")
111
113
```
112
114
2. Upload the files to the pod
113
115
```shell
114
-
kubectl cp -n wsc <local path to files>$POD:/dictionaries
116
+
kubectl cp -n wsc <local path to files>$POD:/dictionaries
115
117
```
116
118
Replace `/dictionaries` with your custom `dictionaries.mountPath` value if applicable.
117
119
118
120
There is also a way in the Chart to specify an already existing Persistent Volume Claim (PVC) with dictionaries that can be configured to operate on multiple nodes (e.g., NFS). To do this, enable the custom dictionary feature by setting the `dictionaries.enabled` parameter to `true` and specifying the name of the existing PVC in the `dictionaries.existingClaim` parameter.
119
121
120
-
**Recommended approach:** Using an existing PVC is the recommended way because it ensures that your data will persist even if the Chart is uninstalled. This approach offers a reliable method to maintain data integrity and availability across deployments.
121
-
122
-
However, please note that provisioning the Persistent Volume (PV) and PVC for storage backends like NFS is outside the scope of this Chart. You will need to provision the PV and PVC separately according to your storage backend's documentation before using the `dictionaries.existingClaim` parameter.
122
+
> [!TIP]
123
+
> Using an existing PVC is the recommended way because it ensures that your data will persist even if the Chart is uninstalled. This approach offers a reliable method to maintain data integrity and availability across deployments.
124
+
>
125
+
> However, please note that provisioning the Persistent Volume (PV) and PVC for storage backends like NFS is outside the scope of this Chart. You will need to provision the PV and PVC separately according to your storage backend's documentation before using the `dictionaries.existingClaim` parameter.
123
126
124
127
## Use in production
125
128
@@ -130,8 +133,6 @@ This can be configured in the `values.yaml` file under the `resources` section.
130
133
131
134
Below are the recommended resource requests and limits for deploying WProofreader Server v5.34.x with enabled English dialects (en_US, en_GB, en_CA, and en_AU) for spelling & grammar check using the English AI language model for enhanced and more accurate proofreading. It also includes such features as a style guide, spelling autocorrect, named-entity recognition (NER), and text autocomplete suggestions (text prediction). These values represent the minimum requirements for running WProofreader Server in a production environment.
132
135
133
-
**Note:** Depending on your specific needs and usage patterns, especially when deploying AI language models for enhanced proofreading in other languages, you may need to adjust these values to ensure optimal performance and resource utilization. Alternatively, you can choose the bare-minimum configuration without AI language models. In this case, only algorithmic engines will be used to provide basic spelling and grammar checks.
134
-
135
136
```yaml
136
137
resources:
137
138
requests:
@@ -142,6 +143,9 @@ resources:
142
143
cpu: "4"
143
144
```
144
145
146
+
> [!NOTE]
147
+
> Depending on your specific needs and usage patterns, especially when deploying AI language models for enhanced proofreading in other languages, you may need to adjust these values to ensure optimal performance and resource utilization. Alternatively, you can choose the bare-minimum configuration without AI language models. In this case, only algorithmic engines will be used to provide basic spelling and grammar checks.
148
+
145
149
### Readiness and liveness probes
146
150
147
151
The Helm chart includes readiness and liveness probes to help Kubernetes manage the lifecycle of the WProofreader Server pods. These probes are used to determine when the pod is ready to accept traffic and when it should be restarted if it becomes unresponsive.
@@ -166,15 +170,16 @@ For dynamic scaling based on resource utilization, you can use Kubernetes Horizo
166
170
To use the HPA, you need to turn on the metrics server in your Kubernetes cluster. The HPA will then automatically change the number of pods in a deployment based on how much CPU is being used.
167
171
The HPA is not enabled by default in the Helm chart. To enable it, set the `autoscaling.enabled` parameter to `true` in the `values.yaml` file.
168
172
169
-
**Important Note:** WProofreader Server can be scaled only based on CPU usage metric. The `targetMemoryUtilizationPercentage` is not supported.
173
+
> [!IMPORTANT]
174
+
> WProofreader Server can be scaled only based on CPU usage metric. The `targetMemoryUtilizationPercentage` is not supported.
170
175
171
176
## Common issues
172
177
### Readiness probe failed
173
178
174
179
Check the pod logs to see if the license ID has not been provided:
175
180
```shell
176
-
POD=$(kubectl get pods -n <namespace> -l app.kubernetes.io/instance=<release-name> -o jsonpath="{.items[0].metadata.name}")
177
-
kubectl logs -n <namespace> $POD
181
+
POD=$(kubectl get pods -n <namespace> -l app.kubernetes.io/instance=<release-name> -o jsonpath="{.items[0].metadata.name}")
182
+
kubectl logs -n <namespace> $POD
178
183
```
179
184
180
185
If so, refer to [license section](#license-activation).
@@ -183,10 +188,10 @@ Existing release can be patched with
0 commit comments