We are working through various alternatives for migration of flows from our old 
DEV environment to other (new DEV, QA and PROD)
 
Currently the approach we use invalidates all processors that use controller 
services established on root and domain flow level (import of FLOW does not 
duplicate GUID from root canvas) - in a sense using the process of creating a 
new Processor and import from old registry bucket.

Problem starts with the way NiFi stores processor information in registry by 
referencing controller services by ID and parentGroupId. 

However, controller services and domain processor groups in the new DEV, QA or 
PROD environments were created using UI (in preparation , and they are of 
course assigned a different ID (GUID). Thus, when attempting the import 
process, the Import process fails to match them and does not set controller 
services properties for processors that use those controller services which 
leaves those processors in invalid state.   
 
We are looking at various multiple potential solutions:

Developers fix their flows manually. This would introduce a large workload (in 
my case one flow would have 200+ processor to be fixed) for developers that 
rely on controller services established on root level (database connections, 
distributed map cache etc)
We have a team run automation scripts to match controller services by name (how 
often to run script, after each import?)
We administrators change IDs in new DEV, QA or PROD flow definition file to 
match old DEV environment 
We administrators create new DEV, QA ir ORID environment using truncated (root 
and domain flow) flow definition file from old DEV environment
We administrators create a process to create controller services and domains 
that does not rely on NiFi UI in a way that will ensure that all root/domain 
level controller services and root/domain level flows have the same ID
These are some ideas we have - but I am very interested in how the community 
has solved importing your flows from one (old) environment into a newly created 
environment, when the controller services GUID will not match on import - and 
invalidates the flow - and developer may have to “FIX” hundreds of properties?


Thanks in advance
~John Gunvaldson

Reply via email to