All Projects → B23admin → nifi-stateless-operator

B23admin / nifi-stateless-operator

Licence: Apache-2.0 license
An Operator for scheduling and executing NiFi Flows as Jobs on Kubernetes

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to nifi-stateless-operator

nifikop
The NiFiKop NiFi Kubernetes operator makes it easy to run Apache NiFi on Kubernetes. Apache NiFI is a free, open-source solution that support powerful and scalable directed graphs of data routing, transformation, and system mediation logic.
Stars: ✭ 122 (+134.62%)
Mutual labels:  kubernetes-operator, nifi
Percona Xtradb Cluster Operator
A Kubernetes Operator for Percona XtraDB Cluster
Stars: ✭ 230 (+342.31%)
Mutual labels:  kubernetes-operator
Argocd Operator
A Kubernetes operator for managing Argo CD clusters.
Stars: ✭ 151 (+190.38%)
Mutual labels:  kubernetes-operator
Bonny
The Elixir based Kubernetes Development Framework
Stars: ✭ 190 (+265.38%)
Mutual labels:  kubernetes-operator
Kubestone
Performance benchmarks for Kubernetes
Stars: ✭ 159 (+205.77%)
Mutual labels:  kubernetes-operator
Rbacsync
Automatically sync groups into Kubernetes RBAC
Stars: ✭ 197 (+278.85%)
Mutual labels:  kubernetes-operator
Kubetop
A top(1)-like tool for Kubernetes.
Stars: ✭ 142 (+173.08%)
Mutual labels:  kubernetes-operator
ship-it
Wattpad's tool for continuously deploying code to Kubernetes quickly, safely, and observably.
Stars: ✭ 14 (-73.08%)
Mutual labels:  kubernetes-operator
Mongodb Enterprise Kubernetes
MongoDB Enterprise Kubernetes Operator
Stars: ✭ 232 (+346.15%)
Mutual labels:  kubernetes-operator
Java Operator Sdk
Java SDK for building Kubernetes Operators
Stars: ✭ 186 (+257.69%)
Mutual labels:  kubernetes-operator
Operators
Collection of Kubernetes Operators built with KUDO.
Stars: ✭ 175 (+236.54%)
Mutual labels:  kubernetes-operator
Operator
Kubernetes operator to manage installation, updation and uninstallation of tektoncd projects (pipeline, …)
Stars: ✭ 161 (+209.62%)
Mutual labels:  kubernetes-operator
Strimzi Kafka Operator
Apache Kafka running on Kubernetes
Stars: ✭ 2,833 (+5348.08%)
Mutual labels:  kubernetes-operator
Github Actions Runner Operator
K8S operator for scheduling github actions runner pods
Stars: ✭ 159 (+205.77%)
Mutual labels:  kubernetes-operator
sops-operator
A Kubernetes operator for Mozilla SOPS
Stars: ✭ 23 (-55.77%)
Mutual labels:  kubernetes-operator
Roperator
Experimental Kubernetes Operator kit written in Rust
Stars: ✭ 146 (+180.77%)
Mutual labels:  kubernetes-operator
Marmot
Marmot workflow execution engine
Stars: ✭ 174 (+234.62%)
Mutual labels:  kubernetes-operator
Cluster Operator
RabbitMQ Cluster Kubernetes Operator
Stars: ✭ 192 (+269.23%)
Mutual labels:  kubernetes-operator
akrobateo
Akrobateo is a simple Kubernetes operator to expose in-cluster LoadBalancer services as node hostPorts using DaemonSets.
Stars: ✭ 111 (+113.46%)
Mutual labels:  kubernetes-operator
pulp-operator
Kubernetes Operator for Pulp 3. Under active development.
Stars: ✭ 32 (-38.46%)
Mutual labels:  kubernetes-operator

B23 Kubernetes Operator for NiFi-Stateless

An Operator for scheduling and executing NiFi Flows on Kubernetes. The operator is made possible by NiFi-Stateless

This is a proof of concept for the proposed Kubernetes Runtime for nifi-stateless

Install the Operator on a cluster

If you just want to run the operator on your cluster:

kubectl apply -f https://raw.githubusercontent.com/b23llc/nifi-stateless-operator/master/config/deploy/nifi-stateless-operator.yaml

If you also want to run a Nifi/Registry Pod to use as a canvas as a convenience for developing and testing flows, run:

kubectl apply -f https://raw.githubusercontent.com/b23llc/nifi-stateless-operator/master/config/deploy/nifi.yaml

To access the nifi/registry services, run: kubectl -n nifi-stateless-operator-system port-forward statefulset/nifi 8081:8081 18080:18080 Note that this nifi/registry pod is a convenience and should not be used for production workloads.

Test the operator by creating a NiFiFn Resource. Make sure to update the flow and bucket fields with the uuid of a flow from your registry.

# config/samples/nififn_v1alpha1_nififn.yaml
apiVersion: nififn.nifi-stateless.b23.io/v1alpha1
kind: NiFiFn
metadata:
  name: nififn-sample
spec:
  # image: "dbkegley/nifi-stateless:1.10.0-SNAPSHOT"
  runFrom: registry
  registryUrl: "http://registry-service:18080"
  bucketId: "8444dc91-00f3-415c-a965-256ffa28c3f5"
  flowId: "d6045598-3d11-438d-b921-52d466b66314"
  flowVersion: -1
  flowFiles:
  - absolute.path: /path/to/input/data/
    filename: testfile.txt
  - absolute.path: /path/to/input/data/
    filename: hello.txt
    nifi_content: "hello world"

It is also possible to run from a flow.xml.gz file:

FROM dbkegley/nifi-stateless:1.10.0-SNAPSHOT
ADD flow.xml.gz /opt/nifi/nifi-current/conf/flow.xml.gz

and update the NiFiFn spec to set: runFrom: xml

Build

Requires:

Develop

Install CRDs: make install

Run Operator: make run

Release

Run make gen-release target to test/build/tag the docker image, generate the CRDs, generate operator install and rbac manifests and push the image to docker hub

Tested locally with docker-for-mac Version 2.0.0.2 (30215) and on Google Cloud Platform with Google Kubernetes Engine

User notes

  • the NiFiFn project was renamed to nifi-stateless but I'm keeping the NiFiFn as the CRD resource type here because it's easier to type
  • ssl configurations are accessible in plain text via the kubernetes api using kubectl describe nififn
  • sensitive parameters are not supported
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].