potiuk edited a comment on pull request #20132:
URL: https://github.com/apache/airflow/pull/20132#issuecomment-988820411


   > That’s more reason to let the macros stay and improve them, isn’t it 
slightly_smiling_face I don’t think deprecating them for pending removal is a 
good idea, especially since we probably want to add macros registration to 
providers at some point.
   
   That's a good point and it **might** be something that we want to do (but I 
am not 100% sure). This is actually very relevant to multi-tenancy. Especially 
that providers are loaded in different contexts (workers, webserver, 
DAGprocessor, Scheduler, Triggerers) and adding more "capabilities" to 
providers should be carefully considered) - what does it mean that macros are 
"supported" ? Will that make provider's code executed when we just "initialize" 
macros? Where will it happen? Scheduler? Worker? Webserver? 
    
   Speaking of which. Ihave a feeling (@ashb ? ) - this also has some "bigger" 
implications re: mutti-tenancy that we should think of separating plugins to 
three differenet kinds of plugins:
   
   1) Those are add timtetables, trigers. (needed by scheduler and DagProcessor)
   2) Those that provide features for workers (for example macros)
   3) Those that modify UI
   
   This is not needed in the first stages of mutli-tenancy but in the 
long-haul, conceptually those three usages are different kinds of "security 
zones" in the most complex setup where we separate those entities completely. 
And it makes the administrative side of it a bit more complex. You have to have 
"one" entity that allows you to install plugins (basically any package can 
become a plugin) for all those security zones, which basically imposes 
strictest regulation in high-security deployments i.e. "only the Uber-Admin can 
install packages for any component of Airflow". Of course it can be mitigated 
(for example different images used by Scheduler, Worker, DAG Processor. 
Webserver (with different permissions  of installation packages for each of 
them), But conceptually Webserver does not need neither macros, nor timetables. 
Similarly worker only needs macros and the rest is useless etc.
   
   And it would be great for example to make sure that "workers" only import 
the plugins with macros, and no other. This can also be achieved by smart 
plugin manager initialization, but it's not entirely fool-proof I think if all 
those plugins are in the same "plugin" bag.
   
   WDYT (long term, not now of course)?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to