Skip to content

Commit ad67f02

Browse files
Docs for Operator v1.2.0 (#904)
Co-authored-by: Alexey Zimarev <[email protected]>
1 parent 3fb8d96 commit ad67f02

File tree

22 files changed

+1420
-0
lines changed

22 files changed

+1420
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# title is for breadcrumb and sidebar nav
3+
title: Kubernetes Operator v1.2.0
4+
order: 1
5+
---
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
order: 1
3+
dir:
4+
text: "Getting started"
5+
link: true
6+
order: 1
7+
---
8+
9+
<CloudBanner />
10+
11+
---
12+
Welcome to the **KurrentDB Kubernetes Operator** guide. In this guide, we’ll refer to the KurrentDB Kubernetes Operator simply as “the Operator.” Use the Operator to simplify backup, scaling, and upgrades of KurrentDB clusters on Kubernetes.
13+
14+
:::important
15+
The Operator is an Enterprise only feature, please [contact us](https://www.kurrent.io/contact) for more information.
16+
:::
17+
18+
## Why run KurrentDB on Kubernetes?
19+
20+
Kubernetes is the modern enterprise standard for deploying containerized applications at scale. The Operator streamlines deployment and management of KurrentDB clusters.
21+
22+
## Features
23+
24+
* Deploy single-node or multi-node clusters
25+
* Back up and restore clusters
26+
* Perform rolling upgrades and update configurations
27+
28+
### New in 1.2.0
29+
30+
* Configure the advertised FQDN with a template. See the [docs](resource-types.md#kurrentdbnetwork).
31+
32+
## Supported KurrentDB Versions
33+
34+
The Operator supports running the following major versions of KurrentDB:
35+
- v25.x
36+
- v24.x
37+
- v23.x
38+
39+
## Supported Hardware Architectures
40+
41+
The Operator is packaged for the following hardware architectures:
42+
- x86_64
43+
- arm64
44+
45+
## Technical Support
46+
47+
For support questions, please [contact us](https://www.kurrent.io/contact).
48+
49+
## First Steps
50+
51+
Ready to install? Head over to the [installation](installation.md) section.
144 KB
Loading
324 KB
Loading
182 KB
Loading
148 KB
Loading
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: Installation
3+
order: 2
4+
---
5+
6+
This section covers the various aspects of installing the Operator.
7+
8+
::: important
9+
The Operator is an Enterprise only feature, please [contact us](https://www.kurrent.io/contact) for more information.
10+
:::
11+
12+
## Prerequisites
13+
14+
::: tip
15+
To get the best out of this guide, a basic understanding of [Kubernetes concepts](https://kubernetes.io/docs/concepts/) is essential.
16+
:::
17+
18+
* A Kubernetes cluster running `v1.23.1` or later.
19+
* Permission to create resources, deploy the Operator and install CRDs in the target cluster.
20+
* The following CLI tools installed, on your shell’s `$PATH`, with `$KUBECONFIG` pointing to your cluster:
21+
* kubectl [install guide](https://kubernetes.io/docs/tasks/tools/install-kubectl)
22+
* k9s [install guide](https://k9scli.io/topics/install/)
23+
* Helm 3 CLI [install guide](https://helm.sh/docs/intro/install/)
24+
* A valid Operator license. Please [contact us](https://www.kurrent.io/contact) for more information.
25+
26+
## Configure Helm Repository
27+
28+
Add the Kurrent Helm repository to your local environment:
29+
30+
```bash
31+
helm repo add kurrent-latest \
32+
'https://packages.kurrent.io/basic/kurrent-latest/helm/charts/'
33+
```
34+
35+
## Install Custom Resource Definitions (CRDs)
36+
37+
The Operator uses Custom Resource Definitions (CRDs) to extend Kubernetes. You can install them automatically with Helm or manually.
38+
39+
The following resource types are supported:
40+
- [KurrentDB](resource-types.md#kurrentdb)
41+
- [KurrentDBBackup](resource-types.md#kurrentdbbackup)
42+
43+
Since CRDs are managed globally by Kubernetes, special care must be taken to install them.
44+
45+
### Automatic Install
46+
47+
It's recommended to install and manage the CRDs using Helm. See [Deployment Modes](#deployment-modes) for more information.
48+
49+
### Manual Install
50+
51+
If you prefer to install CRDs yourself:
52+
53+
```bash
54+
# Download the kurrentdb-operator Helm chart
55+
helm pull kurrent-latest/kurrentdb-operator --version 1.2.0 --untar
56+
# Install the CRDs
57+
kubectl apply -f kurrentdb-operator/templates/crds
58+
```
59+
*Expected Output*:
60+
```
61+
customresourcedefinition.apiextensions.k8s.io/kurrentdbbackups.kubernetes.kurrent.io created
62+
customresourcedefinition.apiextensions.k8s.io/kurrentdbs.kubernetes.kurrent.io created
63+
```
64+
65+
## Deployment Modes
66+
67+
The Operator can be scoped to track Kurrent resources across **all** or **specific** namespaces.
68+
69+
### Cluster-wide
70+
71+
In cluster-wide mode, the Operator tracks Kurrent resources across **all** namespaces and requires `ClusterRole`. Helm creates the ClusteRole automatically.
72+
73+
To deploy the Operator in this mode, run:
74+
75+
```bash
76+
helm install kurrentdb-operator kurrent-latest/kurrentdb-operator \
77+
--version 1.2.0 \
78+
--namespace kurrent \
79+
--create-namespace \
80+
--set crds.enabled=true \
81+
--set-file operator.license.key=/path/to/license.key \
82+
--set-file operator.license.file=/path/to/license.lic
83+
```
84+
85+
This command:
86+
- Deploys the Operator into the `kurrent` namespace (use `--create-namespace` to create it). Feel free to modify this namespace.
87+
- Creates the namespace (if it already exists, leave out the `--create-namespace` flag)
88+
- Deploys CRDs (this can be skipped by removing `--set crds.enabled=true`)
89+
- Applys the Operator license
90+
- Deploys a new Helm release called `kurrentdb-operator` in the `kurrent` namespace.
91+
92+
*Expected Output*:
93+
```
94+
NAME: kurrentdb-operator
95+
LAST DEPLOYED: Thu Mar 20 14:51:42 2025
96+
NAMESPACE: kurrent
97+
STATUS: deployed
98+
REVISION: 1
99+
TEST SUITE: None
100+
```
101+
102+
Once installed, navigate to the [deployment validation](#deployment-validation) section.
103+
104+
### Specific Namespace(s)
105+
106+
In this mode, the Operator will track Kurrent resources across **specific** namespaces. This mode reduces the level of permissions required. The Operator will create a `Role` in each namespace that it is expected to manage.
107+
108+
To deploy the Operator in this mode, the following command can be used:
109+
110+
```bash
111+
helm install kurrentdb-operator kurrent-latest/kurrentdb-operator \
112+
--version 1.2.0 \
113+
--namespace kurrent \
114+
--create-namespace \
115+
--set crds.enabled=true \
116+
--set-file operator.license.key=/path/to/license.key \
117+
--set-file operator.license.file=/path/to/license.lic \
118+
--set operator.namespaces='{kurrent, foo}'
119+
```
120+
121+
Here's what the command does:
122+
- Sets the namespace of where the Operator will be deployed i.e. `kurrent` (feel free to change this)
123+
- Creates the namespace (if it already exists, leave out the `--create-namespace` flag)
124+
- Deploys CRDs (this can be skipped by removing `--set crds.enabled=true`)
125+
- Configures the Operator license
126+
- Sets the underlying Operator configuration to target the namespaces: `kurrent` and `foo`
127+
- Deploys a new Helm release called `kurrentdb-operator` in the `kurrent` namespace
128+
129+
::: important
130+
Make sure the namespaces listed as part of the `operator.namespaces` parameter already exist before running the command (unless you are using the Operator to target the namespace that it will be deployed in to).
131+
:::
132+
133+
*Expected Output*:
134+
```
135+
NAME: kurrentdb-operator
136+
LAST DEPLOYED: Thu Mar 20 14:51:42 2025
137+
NAMESPACE: kurrent
138+
STATUS: deployed
139+
REVISION: 1
140+
TEST SUITE: None
141+
```
142+
143+
Once installed, navigate to the [deployment validation](#deployment-validation) section.
144+
145+
#### Augmenting Namespaces
146+
147+
The Operator deployment can be updated to adjust which namespaces are watched. For example, in addition to the `kurrent` and `foo` namespaces (from the example above), a new namespace `bar` may also be watched using the command below:
148+
149+
```bash
150+
helm upgrade kurrentdb-operator kurrent-latest/kurrentdb-operator \
151+
--version 1.2.0 \
152+
--namespace kurrent \
153+
--reuse-values \
154+
--set operator.namespaces='{kurrent,foo,bar}'
155+
```
156+
157+
This will trigger:
158+
- a new `Role` to be created in the `bar` namespace
159+
- a rolling restart of the Operator to pick up the new configuration changes
160+
161+
## Deployment Validation
162+
163+
Using the k9s tool, navigate to the namespace listing using the command `:namespaces`. It should show the namespace where the Operator was deployed:
164+
165+
![Namespaces](images/install/namespace-list.png)
166+
167+
After stepping in to the `kurrent` namespace, type `:deployments` in the k9s console. It should show the following:
168+
169+
![Operator Deployment](images/install/deployments-list.png)
170+
171+
Pods may also be viewed using the `:pods` command, for example:
172+
173+
![Operator Pod](images/install/pods-list.png)
174+
175+
Pressing the `Return` key on the selected Operator pod will allow you to drill through the container hosted in the pod, and then finally to the logs:
176+
177+
![Operator Logs](images/install/logs.png)

0 commit comments

Comments
 (0)