Skip to content

Commit 2c67cb3

Browse files
Felix Hennigfhennig
Felix Hennig
andcommitted
Docs: New index page (#460)
# Description *Please add a description here. This will become the commit message of the merge request later.* Co-authored-by: Felix Hennig <[email protected]>
1 parent 0a08c8d commit 2c67cb3

15 files changed

+202
-235
lines changed

docs/modules/nifi/images/.$nifi_overview.drawio.svg.bkp

Lines changed: 4 additions & 0 deletions
Large diffs are not rendered by default.

docs/modules/nifi/images/nifi_overview.drawio.svg

Lines changed: 4 additions & 0 deletions
Loading

docs/modules/nifi/pages/commandline_args.adoc

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 88 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,92 @@
11
= Configuration
22

3-
include::commandline_args.adoc[]
3+
== Command Line Parameters
44

5-
include::partial$env_var_args.adoc[]
5+
This operator accepts the following command line parameters:
66

7-
include::partial$config_properties.adoc[]
7+
=== product-config
8+
9+
*Default value*: `/etc/stackable/nifi-operator/config-spec/properties.yaml`
10+
11+
*Required*: false
12+
13+
*Multiple values:* false
14+
15+
[source]
16+
----
17+
stackable-nifi-operator run --product-config /foo/bar/properties.yaml
18+
----
19+
20+
=== watch-namespace
21+
22+
*Default value*: All namespaces
23+
24+
*Required*: false
25+
26+
*Multiple values:* false
27+
28+
The operator will **only** watch for resources in the provided namespace `test`:
29+
30+
[source]
31+
----
32+
stackable-nifi-operator run --watch-namespace test
33+
----
34+
35+
== Environment variables
36+
37+
This operator accepts the following environment variables:
38+
39+
=== PRODUCT_CONFIG
40+
41+
*Default value*: `/etc/stackable/nifi-operator/config-spec/properties.yaml`
42+
43+
*Required*: false
44+
45+
*Multiple values:* false
46+
47+
[source]
48+
----
49+
export PRODUCT_CONFIG=/foo/bar/properties.yaml
50+
stackable-nifi-operator run
51+
----
52+
53+
or via docker:
54+
55+
----
56+
docker run \
57+
--name nifi-operator \
58+
--network host \
59+
--env KUBECONFIG=/home/stackable/.kube/config \
60+
--env PRODUCT_CONFIG=/my/product/config.yaml \
61+
--mount type=bind,source="$HOME/.kube/config",target="/home/stackable/.kube/config" \
62+
docker.stackable.tech/stackable/nifi-operator:latest
63+
----
64+
65+
=== WATCH_NAMESPACE
66+
67+
*Default value*: All namespaces
68+
69+
*Required*: false
70+
71+
*Multiple values:* false
72+
73+
The operator will **only** watch for resources in the provided namespace `test`:
74+
75+
[source]
76+
----
77+
export WATCH_NAMESPACE=test
78+
stackable-nifi-operator run
79+
----
80+
81+
or via docker:
82+
83+
[source]
84+
----
85+
docker run \
86+
--name nifi-operator \
87+
--network host \
88+
--env KUBECONFIG=/home/stackable/.kube/config \
89+
--env WATCH_NAMESPACE=test \
90+
--mount type=bind,source="$HOME/.kube/config",target="/home/stackable/.kube/config" \
91+
docker.stackable.tech/stackable/nifi-operator:latest
92+
----

docs/modules/nifi/pages/dependencies.adoc

Lines changed: 0 additions & 16 deletions
This file was deleted.

docs/modules/nifi/pages/index.adoc

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,31 @@
11
= Stackable Operator for Apache NiFi
2+
:description: The Stackable Operator for Apache NiFi is a Kubernetes operator that can manage Apache NiFi clusters. Learn about its features, resources, dependencies and demos, and see the list of supported NiFi versions.
3+
:keywords: k8s, Kubernetes, Stackable Operator, Apache NiFi, open source, operator, data science, data exploration, big data
24

3-
This is an operator for Kubernetes that can manage https://nifi.apache.org/[Apache NiFi] clusters.
5+
This Operator manages https://nifi.apache.org/[Apache NiFi] clusters on Kubernetes.
6+
Apache NiFi is an open-source data integration tool that provides a web-based interface for designing, monitoring and managing data flows between various systems and devices, using a visual programming approach. It supports a wide range of data sources, formats and features such as data provenance, security and clustering.
47

5-
WARNING: This operator only works with images from the https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable%2Fnifi[Stackable] repository
8+
== Getting started
9+
10+
Get started with Apache NiFi and the Stackable Operator by following the xref:getting_started/index.adoc[] guide. It will guide you through the xref:getting_started/installation.adoc[installation] process and xref:getting_started/first_steps.adoc[connect] to the NiFi web interface. Afterwards have a look at the xref:usage_guide/index.adoc[] to learn how to configure your NiFi instance to your needs or run some <<demos, demos>> to learn more about using NiFi with other components.
11+
12+
== Operator Model
13+
14+
The Operator manages the _NifiCluster_ custom resource. NiFi only has a single process that it needs to run, so the NifiCluster has only a single xref:concepts:roles-and-role-groups.adoc[role]: `node`. This role can be divided in multiple role groups.
15+
16+
image::nifi_overview.drawio.svg[A diagram depicting the Kubernetes resources created by the Stackable Operator for Apache NiFi]
17+
18+
For every role group the Operator creates a ConfigMap and StatefulSet which can have multiple replicas (Pods). Every role group is accessible through it's own Service, and there is a Service for the whole Cluster.
19+
20+
== Dependencies
21+
22+
Apache NiFi depends on Apache ZooKeeper which you can run in Kubernetes with the xref:zookeeper:index.adoc[].
23+
24+
== [[demos]]Demos
25+
26+
NiFi is often a good choice as a first step in a data pipeline when it comes to fetching the data in various formats from various sources. The xref:stackablectl::demos/data-lakehouse-iceberg-trino-spark.adoc[] demo uses NiFi to fetch six different datasets in various formats. The data is then ingested into a Kafka topic. Apache Kafka is also xref:kafka:index.adoc[part of the Stackable platform].
27+
28+
The xref:stackablectl::demos/nifi-kafka-druid-earthquake-data.adoc[] and xref:stackablectl::demos/nifi-kafka-druid-water-level-data.adoc[] demo use NiFi in the same way, both demos showcase downloading data from web APIs and ingesting it into Kafka.
629

730
== Supported Versions
831

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,52 @@
11
= Usage guide
22

3-
This section will help you to use various aspects of the Stackable Operator for Apache NiFi. For a general introduction into the operator follow the xref:getting_started/index.adoc[] guide.
3+
This section will help you to use various aspects of the Stackable Operator for Apache NiFi. For a general introduction into the operator follow the xref:getting_started/index.adoc[] guide. Below is a general overview of some configuration aspects, have a look at the sub pages for details.
4+
5+
The cluster is configured via a YAML manifest file. This custom resource specifies the amount of replicas for each role group or role specific configuration like resource requests.
6+
The following listing shows an example configuration:
7+
8+
[source,yaml]
9+
----
10+
apiVersion: nifi.stackable.tech/v1alpha1
11+
kind: NifiCluster
12+
metadata:
13+
name: simple-nifi
14+
spec:
15+
image:
16+
productVersion: 1.18.0
17+
stackableVersion: "23.4.0"
18+
clusterConfig:
19+
zookeeperConfigMapName: simple-nifi-znode # <1>
20+
authentication: # <2>
21+
method:
22+
SingleUser:
23+
adminCredentialsSecret:
24+
name: nifi-admin-credentials-simple
25+
namespace: default
26+
allowAnonymousAccess: true
27+
extraVolumes: # <3>
28+
- name: nifi-client-certs
29+
secret:
30+
secretName: nifi-client-certs
31+
sensitiveProperties:
32+
keySecret: nifi-sensitive-property-key
33+
autoGenerate: true
34+
nodes:
35+
roleGroups:
36+
default:
37+
config:
38+
resources: # <4>
39+
cpu:
40+
min: "500m"
41+
max: "4"
42+
memory:
43+
limit: '2Gi'
44+
replicas: 3
45+
----
46+
47+
<1>: The xref:usage_guide/zookeeper-connection.adoc[ZooKeeper instance] to use.
48+
<2>: How users should xref:usage_guide/security.adoc[authenticate] themselves.
49+
<3>: xref:usage_guide/extra-volumes.adoc[Extra volumes] with files that can be referenced in custom workflows.
50+
<4>: xref:usage_guide/resource-configuration.adoc[CPU and memory configuration] can be set per role group.
51+
52+
Not shown are the common settings for xref:usage_guide/cluster-operations.adoc[starting and stopping the cluster] and xref:usage_guide/pod-placement.adoc[distributing Pods]. Additionally you can set any NiFi setting using xref:usage_guide/configuration-environment-overrides.adoc[overrides]. You can also configure xref:usage_guide/log-aggregation.adoc[log aggregation].

docs/modules/nifi/pages/usage_guide/security.adoc

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44

55
Every user has to authenticate themselves before using NiFI.
66
There are multiple options to set up the authentication of users.
7+
All authentication related parameters are configured under `spec.clusterConfig.authentication`.
78

89
=== Single user
910

10-
The default setting is to only provision a single user with administrative privileges.
11-
You need to specify the username and password of the user.
11+
Currently, the only supported authentication method is "SingleUser", which allows the definition of one admin user which can then access the cluster.
12+
Specification of these users credentials happens via referring to a Secret in Kubernetes, this secret will need to contain at least the two keys `username` and `password`.
13+
Extra keys may be present, but will be ignored by the operator.
1214

1315
[source,yaml]
1416
----
@@ -36,6 +38,11 @@ spec:
3638

3739
Additional users can not be added.
3840

41+
==== Anonymous Access
42+
43+
NiFi can be configured to allow anonymous access to the web UI, this is turned off by default, but can be enabled via the parameter `allowAnonymousAccess`.
44+
This setting is independent of the configured authentication method and will override anything specified for the authentication provider.
45+
3946
[#authentication-ldap]
4047
=== LDAP
4148

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
= Connecting NiFi to ZooKeeper
2+
3+
NiFi in cluster mode requires a ZooKeeper ensemble for state management and leader election purposes, this operator at the moment does not support single node deployments without ZooKeeper, hence this is a required setting.
4+
5+
[source,yaml]
6+
----
7+
spec:
8+
clusterConfig:
9+
zookeeperConfigMapName: simple-nifi-znode
10+
----
11+
12+
Configuration happens via a ConfigMap, which needs to contain two keys called `ZOOKEEPER_HOSTS` with the value being the ZooKeeper connection string and `ZOOKEEPER_CHROOT` with the value being the ZooKeeper chroot. This ConfigMap typically is created by a ZookeeperZnode of the xref:zookeeper:index.adoc[ZooKeeper Operator].

docs/modules/nifi/partials/config_properties.adoc

Lines changed: 0 additions & 106 deletions
This file was deleted.

0 commit comments

Comments
 (0)