Skip to content

Commit 38191a4

Browse files
authored
Updated README.md markdown (#3)
Updated README.md markdown
1 parent c97d083 commit 38191a4

1 file changed

Lines changed: 22 additions & 17 deletions

File tree

README.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ There are three ways the service can be activated:
5050
```
5151
provided that `LICENSE_TICKET_ID` is set in your environment.
5252

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.
5455
5556
## HTTPS
5657

@@ -65,10 +66,11 @@ files within the chart directory. Keep in mind that Helm can't reach outside the
6566
3. `certMountPath` to whatever path was used in the `Dockerfile`.
6667
For the DockerHub image, one should stick to the default value, which is `/certificate`.
6768

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.
7274
7375
## Custom dictionaries
7476

@@ -107,19 +109,20 @@ Once uploaded, the files will automatically appear on all pods and persist
107109
even if the pods are restarted. Follow these steps:
108110
1. Get the name of one of the pods. For the Helm release named `wproofreader-app` in the `wsc` namespace, use
109111
```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}")
111113
```
112114
2. Upload the files to the pod
113115
```shell
114-
kubectl cp -n wsc <local path to files> $POD:/dictionaries
116+
kubectl cp -n wsc <local path to files> $POD:/dictionaries
115117
```
116118
Replace `/dictionaries` with your custom `dictionaries.mountPath` value if applicable.
117119

118120
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.
119121

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.
123126
124127
## Use in production
125128

@@ -130,8 +133,6 @@ This can be configured in the `values.yaml` file under the `resources` section.
130133

131134
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.
132135

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-
135136
```yaml
136137
resources:
137138
requests:
@@ -142,6 +143,9 @@ resources:
142143
cpu: "4"
143144
```
144145
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+
145149
### Readiness and liveness probes
146150
147151
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
166170
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.
167171
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.
168172

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.
170175

171176
## Common issues
172177
### Readiness probe failed
173178

174179
Check the pod logs to see if the license ID has not been provided:
175180
```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
178183
```
179184

180185
If so, refer to [license section](#license-activation).
@@ -183,10 +188,10 @@ Existing release can be patched with
183188
helm upgrade -n <namespace> <release-name> wproofreader --set licenseTicketID=<license ID>
184189
```
185190

186-
Keep in mind, that upcoming `helm upgrade`'s have to carry on the `licenseTicketID` flag,
191+
Keep in mind, that upcoming `helm upgrade` have to carry on the `licenseTicketID` flag,
187192
so that it's not overwritten with the (empty) value from `values.yaml`.
188193

189-
### Something got broken following `helm upgrade`
194+
### Something got broken following helm upgrade
190195

191196
Please make sure that all values arguments passed as `--set` CLI arguments
192197
were duplicated with your latest `helm upgrade` call, or simply use `--reuse-values` flag.

0 commit comments

Comments
 (0)