The operator installs the 1.12.1 version of Apache NiFi, can run on Minikube v0.33.1+ and Kubernetes 1.16.0+ , and require Helm 3 .
The operator supports NiFi 1.11.0+
As a pre-requisite it needs a Kubernetes cluster. Also, NiFi requires Zookeeper so you need to first have a Zookeeper cluster if you don't already have one.
We believe in the separation of concerns
principle, thus the NiFi operator does not install nor manage Zookeeper.
Prerequisites# Install Zookeeper# To install Zookeeper we recommend using the Bitnami's Zookeeper chart .
Copy helm repo add bitnami https://charts.bitnami.com/bitnami
Copy
helm install zookeeper bitnami/zookeeper \
--set resources.requests.memory = 256Mi \
--set resources.requests.cpu = 250m \
--set resources.limits.memory = 256Mi \
--set resources.limits.cpu = 250m \
--set global.storageClass = standard \
--set networkPolicy.enabled = true \
--set replicaCount = 3
Replace the storageClass
parameter value with your own.
Install cert-manager# The NiFiKop operator uses cert-manager
for issuing certificates to users and and nodes, so you'll need to have it setup in case you want to deploy a secured cluster with authentication enabled.
Copy
kubectl apply -f \
https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
Installation# Installing with Helm# You can deploy the operator using a Helm chart Helm chart :
To install an other version of the operator use helm install --name=nifikop --namespace=nifi --set operator.image.tag=x.y.z orange-incubator/nifikop
In the case where you don't want to deploy the crds using helm (--skip-crds
), you have to deploy manually the crds :
Copy kubectl apply -f https://raw.githubusercontent.com/Orange-OpenSource/nifikop/master/config/crd/bases/nifi.orange.com_nificlusters.yaml
kubectl apply -f https://raw.githubusercontent.com/Orange-OpenSource/nifikop/master/config/crd/bases/nifi.orange.com_nifiusers.yaml
kubectl apply -f https://raw.githubusercontent.com/Orange-OpenSource/nifikop/master/config/crd/bases/nifi.orange.com_nifiusergroups.yaml
kubectl apply -f https://raw.githubusercontent.com/Orange-OpenSource/nifikop/master/config/crd/bases/nifi.orange.com_nifidataflows.yaml
kubectl apply -f https://raw.githubusercontent.com/Orange-OpenSource/nifikop/master/config/crd/bases/nifi.orange.com_nifiparametercontexts.yaml
kubectl apply -f https://raw.githubusercontent.com/Orange-OpenSource/nifikop/master/config/crd/bases/nifi.orange.com_nifiregistryclients.yaml
Add the orange incubator repository :
Copy
helm repo add orange-incubator https://orange-kubernetes-charts-incubator.storage.googleapis.com/
Now deploy the helm chart :
Copy
helm install nifikop \
orange-incubator/nifikop \
--namespace = nifi \
--version 0.7 .5 \
--set image.tag = v0.7.5-release \
--set resources.requests.memory = 256Mi \
--set resources.requests.cpu = 250m \
--set resources.limits.memory = 256Mi \
--set resources.limits.cpu = 250m \
--set namespaces = { "nifi" }
Add the following parameter if you are using this instance to only deploy unsecured clusters : --set certManager.enabled=false
Create custom storage class# We recommend to use a custom StorageClass to leverage the volume binding mode WaitForFirstConsumer
Copy apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: exampleStorageclass
parameters:
type: pd-standard
provisioner: kubernetes.io/gce-pd
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
Remember to set your NiFiCluster CR properly to use the newly created StorageClass.
Deploy NiFi cluster# And after you can deploy a simple NiFi cluster.
Copy
kubectl create -n nifi -f config/samples/simplenificluster.yaml