Example NiFi cluster size

The following list of resources represents the whole of a deployed NiFi cluster managed by the Cloudera Flow Management - Kubernetes Operator. The following example is run in kind with cert-manager and ingress-nginx deployed as dependencies.

apiVersion: cfm.cloudera.com/v1alpha1
kind: Nifi
metadata:
  name: mynifi
spec:
  replicas: 3
  nifiVersion: 1.0.0
  image:
    repository: container.repository.cloudera.com/cloudera/cfm-nifi-k8s
    tag: 2.8.0-b94-nifi_1.25.0.2.3.13.0-36
    pullSecret: cloudera-container-repository-credentials
    pullPolicy: IfNotPresent
  tiniImage:
    repository: container.repository.cloudera.com/cloudera/cfm-tini
    tag: 2.8.0-b94
    pullSecret: cloudera-container-repository-credentials
    pullPolicy: IfNotPresent
  persistence:
    size: 1Gi
    contentRepo:
      size: 1Gi
    flowfileRepo:
      size: 1Gi
    provenanceRepo:
      size: 2Gi
    data: {}
  security:
    initialAdminIdentity: anonymous
    nodeCertGen:
      issuerRef:
        name: self-signed-ca-issuer
        kind: ClusterIssuer
    singleUserAuth:
      enabled: true
      credentialsSecretName: creds
  hostName: nifi.io
  uiConnection:
    type: Ingress
    annotations:
      nginx.ingress.kubernetes.io/affinity: cookie
      nginx.ingress.kubernetes.io/affinity-mode: persistent
      nginx.ingress.kubernetes.io/backend-protocol: HTTPS
      nginx.ingress.kubernetes.io/ssl-passthrough: "true"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
  resources:
    nifi:
      requests:
        cpu: "1"
        memory: 2Gi
      limits:
        cpu: "4"
        memory: 4Gi
    log:
      requests:
        cpu: 50m
        memory: 128Mi

StatefulSet
$ kubectl get statefulset
NAME     READY   AGE
mynifi   3/3     24h
Pods
$ kubectl get pod
NAME       READY   STATUS    RESTARTS   AGE
mynifi-0   7/7     Running   0          23h
mynifi-1   7/7     Running   0          23h
mynifi-2   7/7     Running   0          23h
ConfigMaps
$ kubectl get configmap
NAME                              DATA   AGE
mynifi-authorizers                1      24h
mynifi-authorizers-empty          1      24h
mynifi-bootstrap                  1      24h
mynifi-certificate-setup-script   1      24h
mynifi-decommission-script        1      24h
mynifi-identities-config          1      24h
mynifi-logback                    1      24h
mynifi-login-identity-providers   1      24h
mynifi-nifi-cli-properties        1      24h
mynifi-nifi-properties            1      24h
mynifi-start-script               1      24h
mynifi-state-management           1      24h
mynifi-stop-script                1      24h
Secrets
$ kubectl get secret
NAME                         TYPE                DATA   AGE
creds                        Opaque              2      27h
mynifi-0-node-cert           kubernetes.io/tls   5      24h
mynifi-1-node-cert           kubernetes.io/tls   5      23h
mynifi-2-node-cert           kubernetes.io/tls   5      23h
mynifi-keystorepassword      Opaque              1      24h
mynifi-proxy-cert            kubernetes.io/tls   3      27h
mynifi-sensitive-props-key   Opaque              1      24h
Certificates
$ kubectl get certificates
NAME                 READY   SECRET               AGE
mynifi-0-node-cert   True    mynifi-0-node-cert   24h
mynifi-1-node-cert   True    mynifi-1-node-cert   23h
mynifi-2-node-cert   True    mynifi-2-node-cert   23h
mynifi-proxy-cert    True    mynifi-proxy-cert    24h
Services
$ kubectl get service
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE
mynifi       ClusterIP   None           <none>        6007/TCP,5000/TCP   24h
mynifi-web   ClusterIP   10.96.28.159   <none>        8443/TCP            24h
Ingresses
$ kubectl get ingresses
NAME         CLASS    HOSTS     ADDRESS     PORTS   AGE
mynifi-web   <none>   nifi.io   localhost   80      24h

PersistentVolumeClaims
$ kubectl get persistentvolumeclaim
NAME                             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
content-repository-mynifi-0      Bound    pvc-d5b00d05-d8ee-4b5c-abe4-2cae6161fa4b   1Gi        RWO            standard       24h
content-repository-mynifi-1      Bound    pvc-3a510ebf-2f63-409b-992b-5a08480d4b31   1Gi        RWO            standard       23h
content-repository-mynifi-2      Bound    pvc-f1bafe8e-b8b2-485c-a0c8-ddb583ac994b   1Gi        RWO            standard       23h
data-mynifi-0                    Bound    pvc-67072ae8-b1ae-445c-b81a-07719417a441   1Gi        RWO            standard       24h
data-mynifi-1                    Bound    pvc-4d20e11b-0d93-4b1b-95ff-a19189506686   1Gi        RWO            standard       23h
data-mynifi-2                    Bound    pvc-71b92ed3-3a70-4c4d-a848-44f879896f59   1Gi        RWO            standard       23h
flowfile-repository-mynifi-0     Bound    pvc-c9c0ea11-0f59-4eeb-b9ac-a795b562c059   1Gi        RWO            standard       24h
flowfile-repository-mynifi-1     Bound    pvc-58200919-b8b2-43be-8d2f-16b1f7d39a75   1Gi        RWO            standard       23h
flowfile-repository-mynifi-2     Bound    pvc-869c0159-51c7-4857-aa52-8c775c709692   1Gi        RWO            standard       23h
provenance-repository-mynifi-0   Bound    pvc-97dc6f41-b8ea-4682-9f60-74c8756fb344   2Gi        RWO            standard       24h
provenance-repository-mynifi-1   Bound    pvc-bd529e22-7024-4bef-a951-0a3fb753277b   2Gi        RWO            standard       23h
provenance-repository-mynifi-2   Bound    pvc-cbcc2b50-3404-4fea-8c3c-6a2fe2bfdb13   2Gi        RWO            standard       23h
state-mynifi-0                   Bound    pvc-d0e72637-2b7d-40b7-a147-7240942599a4   1Gi        RWO            standard       24h
state-mynifi-1                   Bound    pvc-c17f3fe2-b93d-4774-b49d-5564e794c671   1Gi        RWO            standard       23h
state-mynifi-2                   Bound    pvc-19a010f0-0397-496b-a77d-89944b94a9b0   1Gi        RWO            standard       23h