Skip to content

Commit a3c4ea5

Browse files
author
Felix Hennig
committed
Add descriptions
1 parent 5c6fc75 commit a3c4ea5

File tree

10 files changed

+47
-28
lines changed

10 files changed

+47
-28
lines changed

docs/modules/zookeeper/pages/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
= Stackable Operator for Apache ZooKeeper
2-
:description: The Stackable operator for Apache ZooKeeper is a Kubernetes operator that can manage Apache ZooKeeper ensembles. Learn about its features, resources, dependencies and demos, and see the list of supported ZooKeeper versions.
2+
:description: Manage Apache ZooKeeper ensembles with the Stackable Kubernetes operator. Supports ZooKeeper versions, custom images, and integrates with Hadoop, Kafka, and more.
33
:keywords: Stackable operator, Hadoop, Apache ZooKeeper, Kubernetes, k8s, operator, metadata, storage, cluster
44
:zookeeper: https://zookeeper.apache.org/
55
:github: https://github.com/stackabletech/zookeeper-operator/

docs/modules/zookeeper/pages/usage_guide/authentication.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
= Authentication
2+
:description: Enable TLS authentication for ZooKeeper with Stackable's Kubernetes operator.
23

34
The communication between nodes (server to server) is encrypted via TLS by default.
45
In order to enforce TLS authentication for client-to-server communication, you can set an xref:concepts:authentication.adoc[AuthenticationClass] reference in the `spec.clusterConfig.authentication` property.

docs/modules/zookeeper/pages/usage_guide/encryption.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
= Encryption
2+
:description: Quorum and client communication in ZooKeeper are encrypted via TLS by default. Customize certificates with the Secret Operator for added security
23

3-
The quorum and client communication are encrypted by default via TLS. This requires the
4-
xref:secret-operator:index.adoc[Secret Operator] to be present in order to provide certificates. The utilized
5-
certificates can be changed in a top-level config.
4+
The quorum and client communication are encrypted by default via TLS.
5+
This requires the xref:secret-operator:index.adoc[Secret Operator] to be present in order to provide certificates.
6+
The utilized certificates can be changed in a top-level config.
67

78
[source,yaml]
89
----

docs/modules/zookeeper/pages/usage_guide/isolating_clients_with_znodes.adoc

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
= Isolating clients with ZNodes
2+
:description: Isolate clients in ZooKeeper with unique ZNodes for each product. Set up ZNodes for each product and connect them using discovery ConfigMaps.
23

3-
ZooKeeper is a dependency of many products supported by the Stackable Data Platform. To ensure that all products can use the same ZooKeeper cluster safely, it is important to isolate them which is done using xref:znodes.adoc[].
4+
ZooKeeper is a dependency of many products supported by the Stackable Data Platform.
5+
To ensure that all products can use the same ZooKeeper cluster safely, it is important to isolate them which is done using xref:znodes.adoc[].
46

5-
This guide shows you how to set up multiple ZNodes to use with different products from the Stackable Data Platform, using Kafka and Druid as an example. For an explanation of the ZNode concept, read the xref:znodes.adoc[] concept page.
7+
This guide shows you how to set up multiple ZNodes to use with different products from the Stackable Data Platform, using Kafka and Druid as an example.
8+
For an explanation of the ZNode concept, read the xref:znodes.adoc[] concept page.
69

710
== Prerequisites
811

@@ -21,7 +24,8 @@ This guide assumes the ZookeeperCluster is called `my-zookeeper` and is running
2124

2225
=== Setting up the ZNodes
2326

24-
To set up a Kafka and Druid instance to use the ZookeeperCluster, two ZNodes are required, one for each product. This guide assumes the Kafka instance is running in the same namespace as the ZooKeeper, while the Druid instance is running in its own namespace called `druid-ns`.
27+
To set up a Kafka and Druid instance to use the ZookeeperCluster, two ZNodes are required, one for each product.
28+
This guide assumes the Kafka instance is running in the same namespace as the ZooKeeper, while the Druid instance is running in its own namespace called `druid-ns`.
2529

2630
First, the Druid ZNode:
2731

@@ -43,7 +47,8 @@ include::example$usage_guide/znode/example-znode-kafka.yaml[]
4347
<2> The namespace where the ZNode should be created. Since Kafka is running in the same namespace as ZooKeeper, this is the namespace of `my-zookeeper`.
4448
<3> The ZooKeeper cluster reference. The namespace is omitted here because the ZooKeeper is in the same namespace as the ZNode object.
4549

46-
The Stackable Operator for ZooKeeper watches for ZookeeperZnode objects. If one is found it creates the ZNode _inside_ the ZooKeeper cluster and also creates a xref:concepts:service_discovery.adoc[discovery ConfigMap] in the same namespace as the ZookeeperZnode with the same name as the ZookeeperZnode.
50+
The Stackable Operator for ZooKeeper watches for ZookeeperZnode objects.
51+
If one is found it creates the ZNode _inside_ the ZooKeeper cluster and also creates a xref:concepts:service_discovery.adoc[discovery ConfigMap] in the same namespace as the ZookeeperZnode with the same name as the ZookeeperZnode.
4752

4853
In this example, two ConfigMaps are created:
4954

@@ -63,7 +68,8 @@ include::example$usage_guide/znode/example-znode-discovery.yaml[]
6368

6469
This ConfigMap can then be mounted into other Pods and the `ZOOKEEPER` key can be used to connect to the ZooKeeper instance and the correct ZNode.
6570

66-
All products that need a ZNode can be configured with a `zookeeperConfigMapName` property. As the name implies, this property references the discovery ConfigMap for the requested ZNode.
71+
All products that need a ZNode can be configured with a `zookeeperConfigMapName` property.
72+
As the name implies, this property references the discovery ConfigMap for the requested ZNode.
6773

6874
For Kafka:
6975

@@ -105,9 +111,9 @@ You can find out more about the discovery ConfigMap xref:discovery.adoc[] and th
105111

106112
For security reasons, a unique ZNode path is generated every time the same ZookeeperZnode object is recreated, even if it has the same name.
107113

108-
If a ZookeeperZnode needs to be associated with an existing ZNode path, the field `status.znodePath` can be set to
109-
the desired path. Note that since this is a subfield of `status`, it must explicitly be updated on the `status` subresource,
110-
and requires RBAC permissions to replace the `zookeeperznodes/status` resource. For example:
114+
If a ZookeeperZnode needs to be associated with an existing ZNode path, the field `status.znodePath` can be set to the desired path.
115+
Note that since this is a subfield of `status`, it must explicitly be updated on the `status` subresource, and requires RBAC permissions to replace the `zookeeperznodes/status` resource.
116+
For example:
111117

112118
[source,bash]
113119
----

docs/modules/zookeeper/pages/usage_guide/listenerclass.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
Apache ZooKeeper offers an API. The Operator deploys a service called `<name>` (where `<name>` is the name of the ZookeeperCluster) through which ZooKeeper can be reached.
44

5-
This service can have either the `cluster-internal` or `external-unstable` type. `external-stable` is not supported for ZooKeeper at the moment. Read more about the types in the xref:concepts:service-exposition.adoc[service exposition] documentation at platform level.
5+
This service can have either the `cluster-internal` or `external-unstable` type. `external-stable` is not supported for ZooKeeper at the moment.
6+
Read more about the types in the xref:concepts:service-exposition.adoc[service exposition] documentation at platform level.
67

78
This is how the listener class is configured:
89

docs/modules/zookeeper/pages/usage_guide/log_aggregation.adoc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
= Log aggregation
2+
:description: The logs can be forwarded to a Vector log aggregator by providing a discovery ConfigMap for the aggregator and by enabling the log agent.
23

3-
The logs can be forwarded to a Vector log aggregator by providing a discovery
4-
ConfigMap for the aggregator and by enabling the log agent:
4+
The logs can be forwarded to a Vector log aggregator by providing a discovery ConfigMap for the aggregator and by enabling the log agent:
55

66
[source,yaml]
77
----
@@ -26,5 +26,4 @@ spec:
2626
replicas: 1
2727
----
2828

29-
Further information on how to configure logging, can be found in
30-
xref:concepts:logging.adoc[].
29+
Further information on how to configure logging, can be found in xref:concepts:logging.adoc[].
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
= Monitoring
2+
:description: The managed ZooKeeper instances are automatically configured to export Prometheus metrics.
23

3-
The managed ZooKeeper instances are automatically configured to export Prometheus metrics. See
4-
xref:operators:monitoring.adoc[] for more details.
4+
The managed ZooKeeper instances are automatically configured to export Prometheus metrics.
5+
See xref:operators:monitoring.adoc[] for more details.

docs/modules/zookeeper/pages/usage_guide/resource_configuration.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
= Storage and resource configuration
2+
:description: Configure ZooKeeper storage with PersistentVolumeClaims and set resource requests for CPU, memory, and storage.
3+
:pvcs: https://kubernetes.io/docs/concepts/storage/persistent-volumes
24

35
== Storage for data volumes
46

5-
You can mount volumes where data is stored by specifying https://kubernetes.io/docs/concepts/storage/persistent-volumes[PersistentVolumeClaims] for each individual role group:
7+
You can mount volumes where data is stored by specifying {pvcs}[PersistentVolumeClaims] for each individual role group:
68

79
[source,yaml]
810
----
Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
= Using multiple role groups
2+
:description: ZooKeeper uses myid for server identification. Avoid conflicts in multiple role groups by setting myidOffset for unique IDs in each StatefulSet.
3+
:ordinal-index: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#ordinal-index
24

3-
// abstract/summary
4-
ZooKeeper uses a unique ID called _myid_ to identify each server in the cluster. The Stackable Operator for Apache ZooKeeper assigns the _myid_ to each Pod from the https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#ordinal-index[ordinal index] given to the Pod by Kubernetes. This index is unique over the Pods in the StatefulSet of the xref:concepts:roles-and-role-groups.adoc[role group].
5+
ZooKeeper uses a unique ID called _myid_ to identify each server in the cluster.
6+
The Stackable Operator for Apache ZooKeeper assigns the _myid_ to each Pod from the {ordinal-index}[ordinal index] given to the Pod by Kubernetes.
7+
This index is unique over the Pods in the StatefulSet of the xref:concepts:roles-and-role-groups.adoc[role group].
58

6-
When using multiple role groups in a cluster, this will lead to different ZooKeeper Pods using the same _myid_. Each role group is represented by its own StatefulSet, and therefore always identified starting with `0`.
9+
When using multiple role groups in a cluster, this will lead to different ZooKeeper Pods using the same _myid_.
10+
Each role group is represented by its own StatefulSet, and therefore always identified starting with `0`.
711

8-
In order to avoid this _myid_ conflict, a property `myidOffset` needs to be specified in each rolegroup. The `myidOffset` defaults to zero, but if specified will be added to the ordinal index of the Pod.
12+
In order to avoid this _myid_ conflict, a property `myidOffset` needs to be specified in each rolegroup.
13+
The `myidOffset` defaults to zero, but if specified will be added to the ordinal index of the Pod.
914

1015
== Example configuration
1116

1217
Here the property is used on the second role group in a ZooKeeperCluster:
1318

14-
```yaml
19+
[source,yaml]
20+
----
1521
apiVersion: zookeeper.stackable.tech/v1alpha1
1622
kind: ZookeeperCluster
1723
metadata:
@@ -25,8 +31,9 @@ spec:
2531
replicas: 1
2632
config:
2733
myidOffset: 10 # <1>
28-
```
29-
34+
----
3035
<1> The `myidOffset` property set to 10 for the secondary role group
3136

32-
The `secondary` role group _myid_ starts from id `10`. The `primary` role group will start from `0`. This means, the replicas of the role group `primary` should not be scaled higher than `10` which results in `10` `primary` Pods using a _myid_ from `0` to `9`, followed by the `secondary` Pods starting at _myid_ `10`.
37+
The `secondary` role group _myid_ starts from id `10`.
38+
The `primary` role group will start from `0`.
39+
This means, the replicas of the role group `primary` should not be scaled higher than `10` which results in `10` `primary` Pods using a _myid_ from `0` to `9`, followed by the `secondary` Pods starting at _myid_ `10`.

docs/modules/zookeeper/pages/znodes.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
= ZNodes
2+
:description: Manage ZooKeeper ZNodes with the ZookeeperZnode resource. Each client should use a unique root ZNode to prevent conflicts. Network access to ZooKeeper is required.
23

34
Apache ZooKeeper organizes all data into a hierarchical system of https://zookeeper.apache.org/doc/r3.9.2/zookeeperProgrammers.html#ch_zkDataModel[ZNodes],
45
which act as both files (they can have data associated with them) and folders (they can contain other ZNodes) when compared to a traditional (POSIX-like) file system.

0 commit comments

Comments
 (0)