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