-
Notifications
You must be signed in to change notification settings - Fork 20
add operator v1.3 docs #910
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| # title is for breadcrumb and sidebar nav | ||
| title: Kubernetes Operator v1.3.0 | ||
| order: 1 | ||
| --- |
65 changes: 65 additions & 0 deletions
65
docs/server/kubernetes-operator/v1.3.0/getting-started/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| --- | ||
| order: 1 | ||
| dir: | ||
| text: "Getting started" | ||
| link: true | ||
| order: 1 | ||
| --- | ||
|
|
||
| <CloudBanner /> | ||
|
|
||
| --- | ||
| 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. | ||
|
|
||
| :::important | ||
| The Operator is an Enterprise-only feature, please [contact us](https://www.kurrent.io/contact) for more information. | ||
| ::: | ||
|
|
||
| ## Why run KurrentDB on Kubernetes? | ||
|
|
||
| Kubernetes is the modern enterprise standard for deploying containerized applications at scale. The Operator streamlines deployment and management of KurrentDB clusters. | ||
|
|
||
| ## Features | ||
|
|
||
| * Deploy single-node or multi-node clusters | ||
| * Back up and restore clusters | ||
| * Perform rolling upgrades and update configurations | ||
|
|
||
| ### New in 1.3.0 | ||
|
|
||
| * Fix/improve support for resizing KurrentDB clusters, including explicitly handling data safety, | ||
| minimizing downtime, and allowing the user to cancel a resize operation that is not progressing. | ||
| See [Updating Replica Count](../operations/modify-deployments.md#updating-replica-count) for details. | ||
| * Support for custom labels and annotations on all child resources (StatefulSets, Pods, | ||
| LoadBalancers, etc). | ||
| * Allow users to use public certificate authorities like LetsEcrypt without having to manually pass | ||
| the publicly trusted cert in a secret. | ||
| * Allow manual overrides to the generated ConfigMap that is passed to KurrentDB. Previously, if a | ||
| user manually altered the ConfigMap it would get immediately overwritten, whereas now it will | ||
| "stick" until the next time the KurrentDB resource is updated. | ||
| * Fix a bug affecting the KurrentDBBackup behavior when cluster's fqdnTemplate met certain criteria. | ||
| * Fix and clarified the `credentialsSecretName` behavior in the helm chart. It is not normally | ||
| required at all, but in previous versions, it was generating warning events with the default | ||
| configuration. | ||
| * Update helm chart to support the normal `--skip-crds` mechanism. | ||
|
|
||
| ## Supported KurrentDB Versions | ||
|
|
||
| The Operator supports running the following major versions of KurrentDB: | ||
| - v25.x | ||
| - v24.x | ||
| - v23.x | ||
|
|
||
| ## Supported Hardware Architectures | ||
|
|
||
| The Operator is packaged for the following hardware architectures: | ||
| - x86_64 | ||
| - arm64 | ||
|
|
||
| ## Technical Support | ||
|
|
||
| For support questions, please [contact us](https://www.kurrent.io/contact). | ||
|
|
||
| ## First Steps | ||
|
|
||
| Ready to install? Head over to the [installation](installation.md) section. | ||
Binary file added
BIN
+144 KB
.../kubernetes-operator/v1.3.0/getting-started/images/install/deployments-list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+324 KB
docs/server/kubernetes-operator/v1.3.0/getting-started/images/install/logs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+182 KB
...er/kubernetes-operator/v1.3.0/getting-started/images/install/namespace-list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+148 KB
.../server/kubernetes-operator/v1.3.0/getting-started/images/install/pods-list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
196 changes: 196 additions & 0 deletions
196
docs/server/kubernetes-operator/v1.3.0/getting-started/installation.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,196 @@ | ||
| --- | ||
| title: Installation | ||
| order: 2 | ||
| --- | ||
|
|
||
| This section covers the various aspects of installing the Operator. | ||
|
|
||
| ::: important | ||
| The Operator is an Enterprise-only feature, please [contact us](https://www.kurrent.io/contact) for more information. | ||
| ::: | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| ::: tip | ||
| To get the best out of this guide, a basic understanding of [Kubernetes concepts](https://kubernetes.io/docs/concepts/) is essential. | ||
| ::: | ||
|
|
||
| * A Kubernetes cluster running any [non-EOL version of Kubernetes](https://kubernetes.io/releases/). | ||
| * Permission to create resources, deploy the Operator and install CRDs in the target cluster. | ||
| * The following CLI tools installed, on your shell’s `$PATH`, with `$KUBECONFIG` pointing to your cluster: | ||
| * [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl) | ||
| * [k9s](https://k9scli.io/topics/install/) | ||
| * [Helm 3 CLI](https://helm.sh/docs/intro/install/) | ||
| * A valid Operator license. Please [contact us](https://www.kurrent.io/contact) for more information. | ||
|
|
||
| ## Configure Helm Repository | ||
|
|
||
| Add the Kurrent Helm repository to your local environment: | ||
|
|
||
| ```bash | ||
| helm repo add kurrent-latest \ | ||
| 'https://packages.kurrent.io/basic/kurrent-latest/helm/charts/' | ||
| ``` | ||
|
|
||
| ## Install Custom Resource Definitions (CRDs) | ||
|
|
||
| The Operator uses Custom Resource Definitions (CRDs) to extend Kubernetes. You can install them automatically with Helm or manually. | ||
|
|
||
| The following resource types are supported: | ||
| - [KurrentDB](resource-types.md#kurrentdb) | ||
| - [KurrentDBBackup](resource-types.md#kurrentdbbackup) | ||
|
|
||
| Since CRDs are managed globally by Kubernetes, special care must be taken to install them. | ||
|
|
||
| ### Automatic Install | ||
|
|
||
| It's recommended to install and manage the CRDs using Helm. See [Deployment Modes](#deployment-modes) for more information. | ||
|
|
||
| ### Manual Install | ||
|
|
||
| If you prefer to install CRDs yourself: | ||
|
|
||
| ```bash | ||
| # Download the kurrentdb-operator Helm chart | ||
| helm pull kurrent-latest/kurrentdb-operator --version 1.3.0 --untar | ||
| # Install the CRDs | ||
| kubectl apply -f kurrentdb-operator/crds | ||
| ``` | ||
| *Expected Output*: | ||
| ``` | ||
| customresourcedefinition.apiextensions.k8s.io/kurrentdbbackups.kubernetes.kurrent.io created | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No action required: I just love including expected output!
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great work, Chris (I think) |
||
| customresourcedefinition.apiextensions.k8s.io/kurrentdbs.kubernetes.kurrent.io created | ||
| ``` | ||
|
|
||
| After installing CRDs manually, you should include the `--skip-crds` flag for the `helm install` and | ||
| `helm upgrade` commands. | ||
|
|
||
| ## Deployment Modes | ||
|
|
||
| The Operator can be scoped to track Kurrent resources across **all** or **specific** namespaces. | ||
|
|
||
| ### Cluster-wide | ||
|
|
||
| In cluster-wide mode, the Operator tracks Kurrent resources across **all** namespaces and requires `ClusterRole`. Helm creates the ClusteRole automatically. | ||
|
|
||
| To deploy the Operator in this mode, run: | ||
|
|
||
| ```bash | ||
| helm install kurrentdb-operator kurrent-latest/kurrentdb-operator \ | ||
| --version 1.3.0 \ | ||
| --namespace kurrent \ | ||
| --create-namespace \ | ||
| --set-file operator.license.key=/path/to/license.key \ | ||
| --set-file operator.license.file=/path/to/license.lic | ||
| ``` | ||
|
|
||
| This command: | ||
| - Deploys the Operator into the `kurrent` namespace (use `--create-namespace` to create it). Feel free to modify this namespace. | ||
| - Creates the namespace (if it already exists, leave out the `--create-namespace` flag). | ||
| - Deploys CRDs (this can be skipped by removing `--skip-crds`). | ||
| - Applys the Operator license. | ||
| - Deploys a new Helm release called `kurrentdb-operator` in the `kurrent` namespace. | ||
rb-kurrent marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| *Expected Output*: | ||
| ``` | ||
| NAME: kurrentdb-operator | ||
| LAST DEPLOYED: Thu Mar 20 14:51:42 2025 | ||
| NAMESPACE: kurrent | ||
| STATUS: deployed | ||
| REVISION: 1 | ||
| TEST SUITE: None | ||
| ``` | ||
|
|
||
| Once installed, navigate to the [deployment validation](#deployment-validation) section. | ||
|
|
||
| ### Specific Namespace(s) | ||
|
|
||
| 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. | ||
|
|
||
| To deploy the Operator in this mode, the following command can be used: | ||
|
|
||
| ```bash | ||
| helm install kurrentdb-operator kurrent-latest/kurrentdb-operator \ | ||
| --version 1.3.0 \ | ||
| --namespace kurrent \ | ||
| --create-namespace \ | ||
| --set-file operator.license.key=/path/to/license.key \ | ||
| --set-file operator.license.file=/path/to/license.lic \ | ||
| --set operator.namespaces='{kurrent, foo}' | ||
| ``` | ||
|
|
||
| Here's what the command does: | ||
| - Sets the namespace of where the Operator will be deployed i.e. `kurrent` (feel free to change this) | ||
| - Creates the namespace (if it already exists, leave out the `--create-namespace` flag) | ||
| - Deploys CRDs (this can be skipped by setting `--skip-crds`) | ||
| - Configures the Operator license | ||
| - Configures the Operator to operate on resources the namespaces `kurrent` and `foo` | ||
| - Deploys a new Helm release called `kurrentdb-operator` in the `kurrent` namespace | ||
|
|
||
| ::: important | ||
| Make sure the namespaces listed as part of the `operator.namespaces` parameter already exist before running the command. | ||
| ::: | ||
|
|
||
| *Expected Output*: | ||
| ``` | ||
| NAME: kurrentdb-operator | ||
| LAST DEPLOYED: Thu Mar 20 14:51:42 2025 | ||
| NAMESPACE: kurrent | ||
| STATUS: deployed | ||
| REVISION: 1 | ||
| TEST SUITE: None | ||
| ``` | ||
|
|
||
| Once installed, navigate to the [deployment validation](#deployment-validation) section. | ||
|
|
||
| #### Augmenting Namespaces | ||
|
|
||
| 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: | ||
|
|
||
| ```bash | ||
| helm upgrade kurrentdb-operator kurrent-latest/kurrentdb-operator \ | ||
| --version 1.3.0 \ | ||
| --namespace kurrent \ | ||
| --reuse-values \ | ||
| --set operator.namespaces='{kurrent,foo,bar}' | ||
| ``` | ||
|
|
||
| This will trigger: | ||
| - a new `Role` to be created in the `bar` namespace | ||
| - a rolling restart of the Operator to pick up the new configuration changes | ||
|
|
||
| ## Deployment Validation | ||
|
|
||
| Using the k9s tool, navigate to the namespace listing using the command `:namespaces`. It should show the namespace where the Operator was deployed: | ||
|
|
||
|  | ||
|
|
||
| After stepping in to the `kurrent` namespace, type `:deployments` in the k9s console. It should show the following: | ||
|
|
||
|  | ||
|
|
||
| Pods may also be viewed using the `:pods` command, for example: | ||
|
|
||
|  | ||
|
|
||
| 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: | ||
|
|
||
|  | ||
|
|
||
|
|
||
| ## Upgrading an Installation | ||
|
|
||
| The Operator can be upgraded using the following `helm` commands: | ||
|
|
||
| ```bash | ||
| helm repo update | ||
| helm upgrade kurrentdb-operator kurrentdb-operator-repo/kurrentdb-operator \ | ||
| --namespace kurrent \ | ||
| --version {version} | ||
| ``` | ||
|
|
||
| Here's what these commands do: | ||
| - Refresh the local Helm repository index | ||
| - Locates an existing operator installation in namespace `kurrent` | ||
| - Selects the target upgrade version `{version}` e.g. `1.3.0` | ||
| - Performs the upgrade, preserving values that were set during installation | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be helpful to include the criteria that caused problems on previous versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nah. This user knows who they are. For everybody else, further detail is just noise.