Skip to content

Commit bb6b74f

Browse files
committed
add fixes
1 parent ac97020 commit bb6b74f

File tree

3 files changed

+104
-76
lines changed
  • docs/deploy-and-configure/installation

3 files changed

+104
-76
lines changed

docs/deploy-and-configure/installation/.pages

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ nav:
22
- Installation: index.md
33
- "Scenario: Single Node Cloud Installation": scenario-single-node-cloud-installation
44
- "Scenario: Local Installation": scenario-local-installation
5-
- "Scenario: RedHat Enterprise Linux 7": scenario-redhat-enterprise-linux-7
65
- "Scenario: Kubernetes Deployment": scenario-k8s-deployment
76
- Migrating Stores: migrating-stores
87

docs/deploy-and-configure/installation/scenario-k8s-deployment/index.md

Lines changed: 99 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,65 @@
11
---
22
icon: simple/kubernetes
33
---
4-
# Kubernetes deployment with Helm
4+
# Scenario: Kubernetes Deployment
55

66
## Introduction
77

8-
This page describes the basic principles of installing Corporate Memory in a Kubernetes cluster with `helm` and `kubectl`.
9-
It will not explain the basic principles of Kubernetes or help in installing the tools.
10-
In the next section, you will find useful links for installing the required tools.
8+
This page describes the basic principles of installing Corporate Memory in a
9+
Kubernetes cluster with `helm` and `kubectl`.
10+
It will not explain the basic principles of Kubernetes or help in installing
11+
the required tools.
1112

12-
The code examples in this section assume that you have a POSIX-compliant shell (Linux, macOS, or WSL for Windows), a working `KUBECONFIG`, and a fully provisioned cluster.
13+
The code examples in this section assume that you have a POSIX-compliant shell
14+
(Linux, macOS, or WSL for Windows), a working `KUBECONFIG`, and a fully
15+
provisioned cluster.
1316

1417
## Requirements
1518

16-
- Access credentials to eccenca Artifactory and eccenca Docker Registry → [contact us to get yours](https://eccenca.com/en/contact)
17-
- A license for GraphDB https://www.ontotext.com/products/graphdb/
18-
- Kubectl from https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
19-
- Helm from https://helm.sh/docs/intro/install/
20-
- If deploying on K3D, download a static binary from https://github.com/k3d-io/k3d/releases (or use the script at https://k3d.io/ to do the same).
21-
19+
- Access credentials for the eccenca infrastructre (e.g. Docker Registry) → [contact us to get yours](https://eccenca.com/en/contact)
20+
- A license for [GraphDB](https://www.ontotext.com/products/graphdb/)
21+
- [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
22+
- [Helm](https://helm.sh/docs/intro/install/)
23+
- If deploying on K3D, download a [static binary](https://github.com/k3d-io/k3d/releases)
2224

2325
## Architecture
24-
![CMEM Helm Chart Architecture](images/cmem-helm-architecture.svg)
2526

27+
![CMEM Helm Chart Architecture](images/cmem-helm-architecture.svg)
2628

2729
## General Notice
2830

29-
Although this document lists value files for the three charts, we suggest always looking at the default `values.yaml` file from the archive or repository. The examples shown here are very basic and should not represent a production environment. The `CHANGELOG.md` and `README.md` files in the archives or repositories can also give some insights.
31+
Although this document lists value files for the three charts, we suggest always
32+
looking at the default `values.yaml` file from the archive or repository.
33+
The examples shown here are very basic and should not represent a production
34+
environment. The `CHANGELOG.md` and `README.md` files in the archives or
35+
repositories can also give some insights.
3036

31-
We assume that namespaces are already created. You can either deploy all three components into one namespace or into separate ones.
37+
We assume that the k8s namespaces are already created.
38+
You can either deploy all three components into one namespace or into separate ones.
3239

33-
```console
40+
``` console
3441
kubectl create namespace graphdb
3542
kubectl create namespace keycloak
3643
kubectl create namespace cmem
3744
```
3845

39-
## Installation GraphDB
46+
## GraphDB Installation
4047

4148
To install GraphDB, we will use the Ontotext Helm chart.
4249
You can get the source code from [github](https://github.com/Ontotext-AD/graphdb-helm/tree/main).
43-
Also always have a look at GraphDBs [documentation page](https://graphdb.ontotext.com/documentation/).
50+
Additionally have a look at GraphDBs [documentation page](https://graphdb.ontotext.com/documentation/).
4451

45-
Be aware, that with Version 11 of GraphDB you are required to deploy a license file, even in the Free edition.
46-
You can [aquire one by filling a form.](https://www.ontotext.com/products/graphdb/). See also documentation [here](https://graphdb.ontotext.com/documentation/11.1/licensing.html).
52+
Be aware, that with Version 11 of GraphDB you are required to deploy a license
53+
file, even in the Free edition.
54+
You can aquire one by [filling a form](https://www.ontotext.com/products/graphdb/).
55+
See also the [licensing documentation](https://graphdb.ontotext.com/documentation/11.1/licensing.html).
4756

4857
### 1. Obtain the chart
4958

50-
You can download their chart from [github](https://github.com/Ontotext-AD/graphdb-helm/releases) or add their repository
51-
to your environment with Helm:
59+
You can download the GraphDB chart from [github](https://github.com/Ontotext-AD/graphdb-helm/releases)
60+
or add their repository to your environment with `helm`:
5261

53-
```console
62+
``` console
5463
helm repo add ontotext https://maven.ontotext.com/repository/helm-public/
5564
helm repo update
5665
```
@@ -59,12 +68,14 @@ helm repo update
5968

6069
Create a file named `graphdb-values.yaml` to configure your GraphDB deployment.
6170
For a basic setup, you can start with an empty file and add configurations as needed.
62-
For production, you should configure persistence, resource limits, and any specific GraphDB settings.
71+
For production, you should configure persistence, resource limits, and any
72+
specific GraphDB settings.
6373
Download a [basic example value file](files/graphdb-values.yaml) (`graphdb-values.yaml`).
6474

65-
Here is a minimal example that disables ingress and sets resources, persistence and security:
75+
Here is a minimal example that disables ingress and sets resources,
76+
persistence and security:
6677

67-
```yaml
78+
``` yaml
6879
ingress:
6980
enabled: false
7081

@@ -77,11 +88,12 @@ resources:
7788
cpu: 500m
7889

7990
license:
80-
# Reference to a secret containing 'graphdb.license' file that will be mounted in the GraphDB pod.
81-
# The value is processed as a Helm template.
91+
# Reference to a secret containing 'graphdb.license' file that will be
92+
# mounted in the GraphDB pod. The value is processed as a Helm template.
8293
existingSecret: "graphdb-license"
8394
# File name of the GraphDB license file in the existing license secret.
84-
# The default is graphdb.license, but it can be changed to map to a different secret key.
95+
# The default is graphdb.license, but it can be changed to map
96+
# to a different secret key.
8597
licenseFilename: graphdb.license
8698

8799
security:
@@ -102,10 +114,12 @@ persistence:
102114
103115
### 3. Install the GraphDB chart
104116
105-
First, create the license secret as mentioned above. Then, install the GraphDB chart using Helm:
117+
First, create the license secret as mentioned above.
118+
Then, install the GraphDB chart using `helm`:
106119

107-
```console
108-
kubectl --namespace graphdb create secret generic graphdb-license --from-file graphdb.license
120+
``` console
121+
kubectl --namespace graphdb create secret generic graphdb-license \
122+
--from-file graphdb.license
109123
110124
helm upgrade --install graphdb ontotext/graphdb \
111125
--namespace graphdb \
@@ -116,58 +130,63 @@ This will deploy GraphDB into the `graphdb` namespace.
116130

117131
### 4. Accessing GraphDB
118132

119-
To access the GraphDB UI without exposing it via an Ingress, you can use `kubectl port-forward`. This is useful for initial setup and verification.
133+
To access the GraphDB user interface without exposing it via an Ingress,
134+
you can use `kubectl port-forward`. This is useful for initial setup and verification.
120135

121136
First, get the name of the GraphDB service:
122137

123-
```console
138+
``` console
124139
kubectl get svc --namespace graphdb
125140
```
126141

127-
Assuming the service is named `graphdb`, forward a local port to the service port (7200):
142+
Assuming the service is named `graphdb`, forward a local port to the
143+
service port (`7200`):
128144

129-
```console
145+
``` console
130146
kubectl port-forward svc/graphdb 7200:7200 --namespace graphdb
131147
```
132148

133149
Now you can access the GraphDB workbench in your browser at [http://localhost:7200](http://localhost:7200).
134150

151+
## Keycloak Installation
135152

136-
## Installation Keycloak
137-
138-
This guide provides instructions on how to install Keycloak using the provided Helm chart.
153+
This guide provides instructions on how to install Keycloak using the
154+
provided Helm chart.
139155

140156
### 1. Obtain the chart
141157

142-
```console
158+
``` console
143159
helm repo add --force-update eccenca https://helm.eccenca.com
144160
helm repo update eccenca
145161
```
146162

147163
You can also download the latest version here:
148164

149-
```console
165+
``` console
150166
wget https://helm.eccenca.com/keycloak/latest.tgz
151167
tar -xzf latest.tgz
152168
```
153169

154-
```console
170+
``` console
155171
# this requires gitlab.eccenca.com access
156172
git clone ssh://[email protected]:8101/devops/keycloak-helm.git
157173
```
158174

159175
### 2. Configuration
160176

161-
Create a file named `keycloak-values.yaml` to configure your Keycloak deployment. At a minimum, you should configure the initial admin credentials and the ingress settings.
162-
You can also [download the minimum file here:](files/keycloak-values.yaml) (`keycloak-values.yaml`).
177+
Create a file named `keycloak-values.yaml` to configure your Keycloak deployment.
178+
At a minimum, you should configure the initial admin credentials and the
179+
ingress settings.
180+
You can also [download the minimum value file](files/keycloak-values.yaml) (`keycloak-values.yaml`).
163181

164-
```yaml
182+
``` yaml
165183
---
166184
postgres:
167185
internal: true
168186
provisioning:
169187
enabled: true
170-
# If true, this will drop the public schema and re-provision the database on every start.
188+
# If true, this will drop the public schema and
189+
# re-provision the database on every start.
171190
force: true
172191
173192
ingress:
@@ -196,15 +215,16 @@ Please see the `README.md` file in the chart repository for explanations.
196215
Use `helm` to deploy the chart into the `keycloak` namespace.
197216

198217
With local extracted helm chart:
199-
```console
218+
219+
``` console
200220
helm upgrade -i keycloak ./keycloak-helm \
201221
--namespace keycloak \
202222
-f keycloak-values.yaml
203223
```
204224

205225
Or from helm repository:
206226

207-
```console
227+
``` console
208228
helm upgrade --install keycloak eccenca/keycloak-helm \
209229
--namespace keycloak \
210230
-f keycloak-values.yaml
@@ -213,71 +233,75 @@ helm upgrade --install keycloak eccenca/keycloak-helm \
213233
kubectl --namespace keycloak delete pods/keycloak-0
214234
```
215235

216-
This command will install the Keycloak chart in the `keycloak` namespace using your custom configuration.
217-
Be aware that the example tries to restore the database from a dump provided inside the chart. You can disable this if you like.
236+
This command will install the Keycloak chart in the `keycloak` namespace using
237+
your custom configuration.
238+
Be aware that the example tries to restore the database from a dump provided
239+
inside the chart.
240+
You can disable this if you like.
218241

219242
### 4. Accessing Keycloak
220243

221-
Once deployed, you can access the Keycloak UI via the hostname you configured in your `keycloak-values.yaml`.
244+
Once deployed, you can access the Keycloak user interface via the hostname you
245+
configured in your `keycloak-values.yaml`.
222246

223-
```bash
247+
``` bash
224248
echo "https://<your-keycloak-hostname>/auth"
225249
```
226250

227-
228-
229251
## Installation Corporate Memory
230252

231-
This guide provides instructions on how to install the chart using `kubectl` and `helm`.
253+
This guide provides instructions on how to install the chart using `kubectl`
254+
and `helm`.
232255
You need to have a keycloak instance and a supported graph database installed.
233256

234257
### 1. Obtain the chart
235258

236-
```console
259+
``` console
237260
wget https://releases.eccenca.com/cmem-helm/latest.tgz
238261
tar -xzf latest.tgz
239262
cd cmem
240263
```
241264

242-
```console
265+
``` console
243266
helm repo add --force-update cmem-helm https://helm.eccenca.com
244267
helm repo update cmem-helm
245268
```
246269

247-
```console
270+
``` console
248271
# this requires gitlab.eccenca.com access
249272
git clone https://gitlab.eccenca.com/cmem/cmem-helm.git
250273
```
251274

252275
### 2. Configuration
253276

254-
By default, Corporate Memory is subject to the eccenca free Personal, Evaluation and Development License Agreement (PEDAL), a license intended for non-commercial usage.
277+
By default, Corporate Memory is subject to the eccenca free Personal,
278+
Evaluation and Development License Agreement (PEDAL),
279+
a license intended for non-commercial usage.
255280

256281
If you have a dedicated license file, create a secret with a `license.asc` data entry:
257282

258-
```console
283+
``` console
259284
kubectl create secret generic cmem-license \
260285
--from-file license.asc
261286
--namespace cmem
262287
```
263288

264289
Then, add the secret name to your `values.yaml` file for the key `global.license`.
265290

266-
For more background on license, see also: https://documentation.eccenca.com/latest/deploy-and-configure/configuration/dataplatform/application-full/
267-
268-
To configure your Corporate Memory deployment create a file named `cmem-values.yaml`.
291+
To configure your Corporate Memory deployment, create a file named `cmem-values.yaml`.
269292
At a minimum, you should configure the
293+
270294
- `hostname`, under which the deployment is reachable later
271295
- `cmemClientSecret`, if you use the postgres provisioning dump the default is fine
272-
- `keycloakBaseUrl` and `keycloakIssuerUrl`, where keycloak and the realm can be found
296+
- `keycloakBaseUrl` / `keycloakIssuerUrl`, where keycloak and the realm can be found
273297
- `explore.store.graphdb`-values as database connection
274-
- `ingress`-values like host and tls.secretName, if you use certmanager.
298+
- `ingress`-values like `host` and `tls.secretName`, if you use `certmanager`.
275299

276-
You can also [download the minimum file here:](files/cmem-values.yaml) (`cmem-values.yaml`).
300+
You can also [download the minimum value file](files/cmem-values.yaml) (`cmem-values.yaml`).
277301

278302
Edit `cmem-values.yaml` and adjust the configuration to your needs.
279303

280-
```yaml
304+
``` yaml
281305
ingress:
282306
enabled: true
283307
className: nginx
@@ -324,21 +348,24 @@ explore:
324348

325349
### 3. Install the Corporate Memory chart
326350

327-
To pull the Corporate Memory images, you need to provide credentials to your Docker registry.
351+
To pull the Corporate Memory images, you need to provide credentials for the eccenca
352+
Docker Registry.
328353

329-
```console
354+
``` console
330355
kubectl create secret docker-registry eccenca-docker-registry-credentials \
331356
--docker-server=https://docker-registry.eccenca.com \
332357
--docker-username=<your-docker-username> \
333358
--docker-password=<your-docker-password> \
334359
--namespace cmem
335360
```
361+
336362
Replace the placeholders with the provided registry details and credentials.
337363

338364
Now use `helm` to deploy the chart.
339-
This command will install the chart in the specified namespace using your custom configuration.
365+
This command will install the chart in the specified namespace using your
366+
custom configuration.
340367

341-
```console
368+
``` console
342369
# In case you have the chart or repostiory locally available
343370
helm upgrade --install cmem . \
344371
--namespace cmem \
@@ -354,13 +381,13 @@ helm upgrade --install cmem cmem-helm/cmem \
354381

355382
After the installation is complete, you can check the status of the pods:
356383

357-
```console
384+
``` console
358385
kubectl get pods --namespace cmem
359386
```
360387

361388
You can also check the rollout status of the StatefulSets:
362389

363-
```console
390+
``` console
364391
kubectl rollout status statefulset/explore --namespace cmem
365392
kubectl rollout status statefulset/dataintegration --namespace cmem
366393
```

0 commit comments

Comments
 (0)