Updated the description to: > This is "airflow configuration" as defined in the config file. Each team can also have access to separate Configuration and variables (identified by the team_id) but there are also common configurations and variables that might be shared between the teams (with null team-id). Uniqueness is maintained across all connections and variable ids between the teams (regardless if they have team_id or not).
Actually I realised now that this also stresses how much "mullti-team" vs. "multi-tenant" this proposal is -where the team within the same organisation will have to coordinate the connections/variables used so that they do not clash. Which might make sense - because then the convention of connection/variable ids might be set at the "organisation" level. J. On Mon, Jul 29, 2024 at 8:23 AM Jarek Potiuk <ja...@potiuk.com> wrote: > Thanks Vikram. > >> >> I think I understand your concept of team very clearly and the concept of >> "team configuration". >> I did find two "per-team configuration principles" somewhat at conflict >> though: >> 1. *Each team configuration SHOULD be a separate configuration file or >> separate set of environment variables, holding team-specific configuration >> needed by DAG file processor, Workers and Triggerer* >> 2. In multi-team deployment, Connections and Variables have (nullable) >> team_id field - which makes them either belonging to a specific team or >> "globally available". >> >> Yes. That one will need a bit of clarification, It's been changed from > the original design where connections and variables were totally separated > - and point 1) is a bit of left-over. I will rephrase it slightly to add > (with exception of common configuration defined at "global level" - that > was a result of other comments where common connections and variables > shared between teams were seen as an important feature, also original > design assumed no connection and variables in database, which has been > changed after we moved to Airlfow 3- only, because now the database > structure modification is all but "given" by other changes. > > >> Personally, I would have thought that you would want to standardize on >> either explicit configuration required or implicit allowed throughout >> rather than mixing. But, you probably have reasons for why a mixed >> approach >> is suitable here. >> > > Yes. Those comments made me think this is a pretty valid case for the > "mult-team" case. If we did multi-tenant, clear separation would be indeed > better. But with multi-team, I can easily imagine some shared connections > and variables that are "organisation" standard and shared between teams > (Say SMTP connection that is used by all teams to send messages and > notifications). > >> >> >> I assume that the DAG Parsing per-team environment is where you see the >> need to integrate with AIP-66 (DAG Bundles ...) >> Is that correct? >> >> > Correct. Also as discussed with AIP-66 initial proposal from Jed - "per > bundle" environment based exclusively on `pip install --target` zipped > archive has many technical traps and does not define the "management" part > of it and "security scope". So here the difference is that both - > separation of dag parsing per team (separate DAG file processor) and common > environment (dependencies) for DAG parsing for team can be still defined > and maintained by the "Team Deployment Manager". And the environment > separation can be done in various ways - same as today (separate image, > separate virtualenv) and it can be done in a completely separated security > perimeter from other teams. Basically - it makes it easy to make sure that > parsing and execution of DAGs belonging to the same team can have the same > dependencies and environment (potentially different from dependencies and > environment of the other teams). > > In a way it is very similar to what has been already proposed (but is > abandoned now) in AIP-46 (Runtime isolation for airlfow tasks and dag > parsing) - > https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-46+Runtime+isolation+for+airflow+tasks+and+dag+parsing > that has been proposed by Ping Zhang, but unlike AIP-46 it does not make > any assumptions on technology used (virtualenv, images) how the environment > is prepared. The only assumption is that each team has it's own, separate > environment managed by the Team Deployment Manager. > > J. >