Support Questions

Find answers, ask questions, and share your expertise

nifi cluster rolling deploy

avatar
Explorer

hi

 

I am using CI/CD to deploy nifi cluster in kubernetes with rolling deploy strategy and having issue with updating flow.xml file, looks like after 1st node updated with new flow file it is going in sync with old cluster and getting old flow.xml from old master and after second deploying and getting same old file e t c, could you help with solutions to avoid this ?

1 ACCEPTED SOLUTION

avatar
Master Mentor

@Vapper 

Maybe I am not 100% clear on your question here..
When you say new "flow file" I assume you are talking about the flow.xml.gz file?
In NiFi, a "FlowFile" is what you see being queued on connections between processor components and consists of FlowFile content and FlowFile Metadata/Attributes.

In a NiFi cluster, all nodes must be running the exact same flow.xml.gz.  If the dataflows loaded from the flow.xml.gz do not match the node will not be allowed to join the cluster.  In the latest releases of NiFi, Nodes joining a cluster will inherit the cluster dataflow if the local dataflow does not match.

Once a cluster is established, a cluster dataflow is elected. That becomes the clusters dataflow. Joining a node to that established cluster will require that joining nodes is using same flow.xm.gz as existing cluster and if not inherit the cluster elected dataflow over the existing flow on the joining node. NiFi will not assume that a joining nodes flow.xml.gz is "newer" or "desired" over the elected cluster dataflow and replace the elected cluster dataflow with that new dataflow.

If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post.

Thank you,

Matt

View solution in original post

1 REPLY 1

avatar
Master Mentor

@Vapper 

Maybe I am not 100% clear on your question here..
When you say new "flow file" I assume you are talking about the flow.xml.gz file?
In NiFi, a "FlowFile" is what you see being queued on connections between processor components and consists of FlowFile content and FlowFile Metadata/Attributes.

In a NiFi cluster, all nodes must be running the exact same flow.xml.gz.  If the dataflows loaded from the flow.xml.gz do not match the node will not be allowed to join the cluster.  In the latest releases of NiFi, Nodes joining a cluster will inherit the cluster dataflow if the local dataflow does not match.

Once a cluster is established, a cluster dataflow is elected. That becomes the clusters dataflow. Joining a node to that established cluster will require that joining nodes is using same flow.xm.gz as existing cluster and if not inherit the cluster elected dataflow over the existing flow on the joining node. NiFi will not assume that a joining nodes flow.xml.gz is "newer" or "desired" over the elected cluster dataflow and replace the elected cluster dataflow with that new dataflow.

If you found this response assisted with your query, please take a moment to login and click on "Accept as Solution" below this post.

Thank you,

Matt