Skip to content

Commit 92af8a2

Browse files
authored
Promoted Helm chart version to v1.2.0 (#5)
1 parent 8857c3c commit 92af8a2

File tree

13 files changed

+100
-52
lines changed

13 files changed

+100
-52
lines changed

README.md

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,36 @@ For the DockerHub image, one should stick to the default value, which is `/certi
7474
7575
## Custom dictionaries
7676

77-
To enable WProofreader Server to use your custom dictionaries, follow these steps:
77+
The Helm chart provides flexible options for managing custom dictionaries in your WProofreader Server deployment. There are several configuration scenarios to accommodate different use cases:
78+
79+
### Configuration options
80+
81+
**1. Dynamic persistent volume (PV) provisioning**
82+
83+
When `dictionaries.enabled` is set to `true` and neither `dictionaries.localPath` nor `dictionaries.existingClaim` storage configuration is provided, Kubernetes will dynamically provision a Persistent Volume based on `dictionaries.storageClass` that has to be defined externally.
84+
This is the simplest way to manage custom dictionaries in a Kubernetes environment:
85+
```yaml
86+
dictionaries:
87+
enabled: true
88+
storageClass: "efs-sc"
89+
```
90+
91+
> [!IMPORTANT]
92+
> Ensure that the specified storageClass supports the required access mode (typically `ReadWriteMany`).
93+
> Not all volume plugins (CSI drivers) support all access modes — for example, block storage types like AWS EBS support only `ReadWriteOnce`, while shared file systems like Amazon EFS support `ReadWriteMany`.
94+
>
95+
> Read your storage provider’s CSI driver documentation to confirm compatibility before relying on dynamic provisioning.
96+
97+
**2. hostPath volume (node-local storage)**
98+
99+
Use this option if you prefer mounting dictionaries from the local filesystem of a specific node.
100+
This is useful when you have a single-node cluster or need to share dictionaries across multiple pods running on the same node.
101+
102+
To enable WProofreader Server to use your custom dictionaries with Kubernetes `hostPath` storage type, follow these steps:
78103
1. Upload the files to a directory on the node where the chart will be deployed.
79104
Ensure this node has `wproofreader.domain-name.com/app` label.
80105
2. Set `dictionaries.localPath` parameter to the absolute path of this directory.
81-
3. Optionally, edit `dictionaries.mountPath` value if non-default one was used in `Dockerfile`,
106+
3. Optionally, edit `dictionaries.mountPath` value if a non-default one was used in `Dockerfile`,
82107
as well as other `dictionaries` parameters if needed.
83108
4. Install the chart as usual.
84109

@@ -87,27 +112,35 @@ This allows the user to specify which node will host WProofreader Server
87112
on a cluster, even a single-node one.
88113

89114
To assign this role to a node, you need to attach a label to it. It can be any label you choose,
90-
e.g. `wproofreader.domain-name.com/app`:
115+
e.g., `wproofreader.domain-name.com/app`:
91116
```shell
92-
kubectl label node <name-of-the-node> wproofreader.domain-name.com/app=
117+
kubectl label node <node-name> wproofreader.domain-name.com/app=
93118
```
94119
Note that `=` is required but the value after it is not important (empty in this example).
95120

96121
Keep in mind that your custom label has to be either updated in `values.yaml`
97122
(`nodeAffinityLabel` key, recommended), or passed to `helm` calls using
98123
`--set nodeAffinityLabel=wproofreader.domain-name.com/app`.
99124

100-
To install the Chart with custom dictionaries feature enabled and the local path set to the directory on the node where dictionaries are stored:
101-
```shell
102-
helm install --create-namespace --namespace wsc wproofreader-app wproofreader --set nodeAffinityLabel=wproofreader.domain-name.com/app --set dictionaries.enabled=true --set dictionaries.localPath=/dictionaries
125+
Example `values.yaml` configuration:
126+
```yaml
127+
nodeAffinityLabel: "wproofreader.domain-name.com/app"
128+
129+
dictionaries:
130+
enabled: true
131+
localPath: "/dictionaries"
103132
```
104-
For testing and development purposes, if neither `dictionaries.localPath` nor `dictionaries.existingClaim` is set when `dictionaries.enabled` is `true`, the Helm Chart will automatically create an `emptyDir` volume for dictionaries. This ensures that the deployment can proceed without requiring a predefined storage location.
133+
134+
To install the Chart with the custom dictionaries feature enabled and the local path set to the directory on the node where dictionaries are stored:
105135
```shell
106-
helm install --create-namespace --namespace wsc wproofreader-app wproofreader --set dictionaries.enabled=true
136+
helm install --create-namespace --namespace wsc wproofreader-app wproofreader \
137+
--set nodeAffinityLabel=wproofreader.domain-name.com/app \
138+
--set dictionaries.enabled=true \
139+
--set dictionaries.localPath=/dictionaries
107140
```
108141
The dictionary files can be uploaded after the chart installation, but the `dictionaries.localPath`
109142
folder must exist on the node beforehand.
110-
Dictionaries can be uploaded to the node VM using standard methods (`scp`, `rsync`, `FTP` etc) or
143+
Dictionaries can be uploaded to the node VM using standard methods (`scp`, `rsync`, `FTP`, etc.) or
111144
the `kubectl cp` command. With `kubectl cp`, you need to use one of the deployment's pods.
112145
Once uploaded, the files will automatically appear on all pods and persist
113146
even if the pods are restarted. Follow these steps:
@@ -121,7 +154,20 @@ even if the pods are restarted. Follow these steps:
121154
```
122155
Replace `/dictionaries` with your custom `dictionaries.mountPath` value if applicable.
123156

157+
**3. Existing Persistent Volume Claim (PVC)**
158+
124159
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.
160+
```yaml
161+
dictionaries:
162+
enabled: true
163+
existingClaim: "wproofreader-dictionaries-pvc"
164+
```
165+
166+
**4. Default behavior**
167+
168+
If `dictionaries.enabled` is `false`, the chart will use an ephemeral `emptyDir` volume for `/dictionaries`.
169+
This means any uploaded dictionaries will be lost after pod restarts.
170+
This setup is only suitable for development and testing.
125171

126172
> [!TIP]
127173
> 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.

manifests/deployment_http.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: Deployment
33
metadata:
44
name: wproofreader-app
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:
1212
replicas: 1
@@ -34,7 +34,7 @@ spec:
3434
- name: wproofreader
3535
securityContext:
3636
{}
37-
image: "webspellchecker/wproofreader:5.34.3"
37+
image: "webspellchecker/wproofreader:5.39.1.0"
3838
imagePullPolicy: IfNotPresent
3939
ports:
4040
- name: container-port

manifests/deployment_https.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: Deployment
33
metadata:
44
name: wproofreader-app
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:
1212
replicas: 1
@@ -34,7 +34,7 @@ spec:
3434
- name: wproofreader
3535
securityContext:
3636
{}
37-
image: "webspellchecker/wproofreader:5.34.3"
37+
image: "webspellchecker/wproofreader:5.39.1.0"
3838
imagePullPolicy: IfNotPresent
3939
ports:
4040
- name: container-port

manifests/hpa.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: HorizontalPodAutoscaler
33
metadata:
44
name: wproofreader-app
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:
1212
scaleTargetRef:

manifests/secrets.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: Secret
33
metadata:
44
name: wproofreader-app-lic
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
type: Opaque
1212
data:
@@ -17,10 +17,10 @@ kind: Secret
1717
metadata:
1818
name: wproofreader-app-cert
1919
labels:
20-
helm.sh/chart: wproofreader-1.0.0
20+
helm.sh/chart: wproofreader-1.2.0
2121
app.kubernetes.io/name: wproofreader
2222
app.kubernetes.io/instance: wproofreader-app
23-
app.kubernetes.io/version: "5.34.3"
23+
app.kubernetes.io/version: "5.39.1.0"
2424
app.kubernetes.io/managed-by: Helm
2525
type: Opaque
2626
data:

manifests/service_http.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: Service
33
metadata:
44
name: wproofreader-app
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:
1212
type: ClusterIP

manifests/service_https.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: Service
33
metadata:
44
name: wproofreader-app
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:
1212
type: ClusterIP

manifests/serviceaccount.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ kind: ServiceAccount
33
metadata:
44
name: wproofreader-app
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm

manifests/volumes.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ kind: PersistentVolume
33
metadata:
44
name: wproofreader-app-dict
55
labels:
6-
helm.sh/chart: wproofreader-1.0.0
6+
helm.sh/chart: wproofreader-1.2.0
77
app.kubernetes.io/name: wproofreader
88
app.kubernetes.io/instance: wproofreader-app
9-
app.kubernetes.io/version: "5.34.3"
9+
app.kubernetes.io/version: "5.39.1.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:
1212
storageClassName: standard
@@ -29,10 +29,10 @@ kind: PersistentVolumeClaim
2929
metadata:
3030
name: wproofreader-app-dict
3131
labels:
32-
helm.sh/chart: wproofreader-1.0.0
32+
helm.sh/chart: wproofreader-1.2.0
3333
app.kubernetes.io/name: wproofreader
3434
app.kubernetes.io/instance: wproofreader-app
35-
app.kubernetes.io/version: "5.34.3"
35+
app.kubernetes.io/version: "5.39.1.0"
3636
app.kubernetes.io/managed-by: Helm
3737
spec:
3838
storageClassName: standard

wproofreader/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ description: A Helm chart for deploying webspellchecker/wproofreader in Kubernet
44

55
type: application
66

7-
version: 1.1.0
7+
version: 1.2.0
88

9-
appVersion: "5.38.1.0"
9+
appVersion: "5.39.1.0"

0 commit comments

Comments
 (0)