Skip to content

Commit 0ad5de2

Browse files
fhennigrazvan
andauthored
Add descriptions (#856)
* Add descriptions * Improve install instructions * Formatting * Add pod-overrides info * mention OpenShift in the installation guide --------- Co-authored-by: Razvan-Daniel Mihai <[email protected]>
1 parent f8c2d09 commit 0ad5de2

13 files changed

+95
-55
lines changed

docs/modules/zookeeper/pages/getting_started/first_steps.adoc

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ Now that the operator is installed it is time to deploy a ZooKeeper cluster and
44

55
== Deploy ZooKeeper
66

7-
The ZooKeeper cluster is deployed with a very simple resource definition. Create a file called `zookeeper.yaml`:
7+
The ZooKeeper cluster is deployed with a very simple resource definition.
8+
Create a file called `zookeeper.yaml`:
89

910
[source,yaml]
1011
include::example$getting_started/code/zookeeper.yaml[]
@@ -13,12 +14,15 @@ and apply it:
1314
[source,bash]
1415
include::example$getting_started/code/getting_started.sh[tag=install-zookeeper]
1516

16-
The operator will create a ZooKeeper cluster with two replicas. Use kubectl to observe the status of the cluster:
17+
The operator will create a ZooKeeper cluster with two replicas.
18+
Use kubectl to observe the status of the cluster:
1719

1820
[source,bash]
1921
include::example$getting_started/code/getting_started.sh[tag=watch-zookeeper-rollout]
2022

21-
The Operator deploys readiness probes to make sure the replicas are ready and established a quorum. Only then will the StatefulSet actually be marked as `Ready`. You will see
23+
The Operator deploys readiness probes to make sure the replicas are ready and established a quorum.
24+
Only then will the StatefulSet actually be marked as `Ready`.
25+
You will see
2226

2327
----
2428
partitioned roll out complete: 2 new pods have been updated...
@@ -28,12 +32,15 @@ The ZooKeeper cluster is now ready.
2832

2933
== Deploy a ZNode
3034

31-
ZooKeeper manages its data in a hierarchical node system. You can look at the nodes using the zkCli tool. It is included inside the Stackable ZooKeeper container, and you can invoke it using `kubectl run`:
35+
ZooKeeper manages its data in a hierarchical node system.
36+
You can look at the nodes using the zkCli tool.
37+
It is included inside the Stackable ZooKeeper container, and you can invoke it using `kubectl run`:
3238

3339
[source,bash]
3440
include::example$getting_started/code/getting_started.sh[tag=zkcli-ls]
3541

36-
NOTE: You might wonder why the logs are used instead of the output from `kubectl run`. This is because `kubectl run` sometimes loses lines of the output, a link:https://github.com/kubernetes/kubernetes/issues/27264[known issue].
42+
NOTE: You might wonder why the logs are used instead of the output from `kubectl run`.
43+
This is because `kubectl run` sometimes loses lines of the output, a link:https://github.com/kubernetes/kubernetes/issues/27264[known issue].
3744

3845
Among the log output you will see the current list of nodes in the root directory `/`:
3946

@@ -45,7 +52,8 @@ Among the log output you will see the current list of nodes in the root director
4552
The `zookeeper` node contains ZooKeeper configuration data.
4653

4754
It is useful to use different nodes for different applications using ZooKeeper, and the Stackable Operator uses xref:znodes.adoc[ZNodes] for this.
48-
ZNodes are created with manifest files of the kind `ZookeeperZnode`. Create a file called `znode.yaml` with the following contents:
55+
ZNodes are created with manifest files of the kind `ZookeeperZnode`.
56+
Create a file called `znode.yaml` with the following contents:
4957

5058
[source,yaml]
5159
include::example$getting_started/code/znode.yaml[]
@@ -68,7 +76,8 @@ and the ZNode has appeared in the output:
6876

6977
== The discovery ConfigMap
7078

71-
The operator creates a ConfigMap with connection information that has the same name as the ZNode - in this case `simple-znode`. Have a look at it using
79+
The operator creates a ConfigMap with connection information that has the same name as the ZNode - in this case `simple-znode`.
80+
Have a look at it using
7281

7382
[source,bash]
7483
kubectl describe configmap simple-znode
@@ -87,11 +96,15 @@ ZOOKEEPER_HOSTS:
8796
simple-zk-server-default-0.simple-zk-server-default.default.svc.cluster.local:2282,simple-zk-server-default-1.simple-zk-server-default.default.svc.cluster.local:2282
8897
8998
The `ZOOKEEPER` entry contains a ZooKeeper connection string that you can use to connect to this specific ZNode.
90-
The `ZOOKEEPER_CHROOT` and `ZOOKEEPER_HOSTS` entries contain the node name and hosts list respectively. You can use these three entries mounted into a pod to connect to ZooKeeper at this specific ZNode and read/write in that ZNode directory.
99+
The `ZOOKEEPER_CHROOT` and `ZOOKEEPER_HOSTS` entries contain the node name and hosts list respectively.
100+
You can use these three entries mounted into a pod to connect to ZooKeeper at this specific ZNode and read/write in that ZNode directory.
91101
92102
93-
Great! This step concludes the Getting started guide. You have installed the ZooKeeper Operator and its dependencies and set up your first ZooKeeper cluster as well as your first ZNode.
103+
Great!
104+
This step concludes the Getting started guide.
105+
You have installed the ZooKeeper Operator and its dependencies and set up your first ZooKeeper cluster as well as your first ZNode.
94106
95107
== What's next
96108
97-
Have a look at the xref:usage_guide/index.adoc[] to learn more about configuration options for your ZooKeeper cluster like setting up encryption or authentication. You can also have a look at the xref:znodes.adoc[] page to learn more about ZNodes.
109+
Have a look at the xref:usage_guide/index.adoc[] to learn more about configuration options for your ZooKeeper cluster like setting up encryption or authentication.
110+
You can also have a look at the xref:znodes.adoc[] page to learn more about ZNodes.
Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
= Installation
2+
:description: Install the Stackable operator for Apache ZooKeeper using stackablectl or Helm.
23

3-
On this page you will install the Stackable ZooKeeper Operator.
4-
5-
== Stackable Operators
6-
7-
There are 2 ways to run Stackable Operators
8-
9-
. Using xref:management:stackablectl:index.adoc[] (recommended)
10-
. Using Helm
11-
12-
=== stackablectl
4+
There are multiple ways to install the Stackable Operator for Apache Zookeeper.
5+
`stackablectl` is the preferred way but Helm is also supported.
6+
OpenShift users may prefer installing the operator from the RedHat Certified Operator catalog using the OpenShift web console.
137

8+
[tabs]
9+
====
10+
stackablectl (recommended)::
11+
+
12+
--
1413
`stackablectl` is the command line tool to interact with Stackable operators and our recommended way to install
1514
Operators. Follow the xref:management:stackablectl:installation.adoc[installation steps] for your platform.
1615
@@ -28,10 +27,13 @@ include::example$getting_started/code/install_output.txt[]
2827
2928
TIP: Consult the xref:management:stackablectl:quickstart.adoc[] to learn more about how to use `stackablectl`. For
3029
example, you can use the `--cluster kind` flag to create a Kubernetes cluster with link:https://kind.sigs.k8s.io/[kind].
30+
--
3131
32-
=== Helm
33-
34-
You can also use Helm to install the Operators. Add the Stackable Helm repository:
32+
Helm::
33+
+
34+
--
35+
You can also use Helm to install the Operators.
36+
Add the Stackable Helm repository:
3537
[source,bash]
3638
----
3739
include::example$getting_started/code/getting_started.sh[tag=helm-add-repo]
@@ -43,9 +45,10 @@ Then install the Stackable Operators:
4345
include::example$getting_started/code/getting_started.sh[tag=helm-install-operators]
4446
----
4547
46-
Helm will deploy the Operators in a Kubernetes Deployment and apply the CRDs for the ZooKeeper cluster. You are now
47-
ready to deploy Apache ZooKeeper in Kubernetes.
48+
Helm deploys the operators in Kubernetes Deployments and applies the CRDs for the ZooKeeperCluster Stacklet.
49+
--
50+
====
4851

49-
== What's next
52+
== What's next?
5053

51-
xref:getting_started/first_steps.adoc[Set up a ZooKeeper cluster].
54+
Use the operator to xref:getting_started/first_steps.adoc[deploy a ZooKeeper Stacklet].

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/configuration_environment_overrides.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,8 @@ servers:
8585
default:
8686
replicas: 1
8787
----
88+
89+
== Pod overrides
90+
91+
The ZooKeeper operator also supports Pod overrides, allowing you to override any property that you can set on a Kubernetes Pod.
92+
Read the xref:concepts:overrides.adoc#pod-overrides[Pod overrides documentation] to learn more about this feature.

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.

0 commit comments

Comments
 (0)