You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "potiuk (via GitHub)" <gi...@apache.org> on 2023/11/22 16:54:14 UTC

[PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

potiuk opened a new pull request, #35801:
URL: https://github.com/apache/airflow/pull/35801

   Historically (when moved from Bash) the environment variables set for docker or docker-compose commands were set in a few places - some were set directly in the code, some were retrieved from shell params and eventually some were set from default values or hardcoded constants. This all happened in various models and it was scattered around the code and it was difficult to grasp what was going on.
   
   This PR consolidates it so that all variables are set in ShellParams object.
   
   * the attributes have been reviewed and None/"" default values were set where needed
   * the attributes were sorted
   * calculation of dynamic properties was moved to ShellParams
   * missing properties were added to ShellParams, so that all variables have corresponding properties
   * the get_env_variables_for_docker_commands is now a method in ShellParams object, mapping is done explicitly from self.ATTRIBUTE and default values if not set are set in this single place if not set in case the variables are are retrieved from elsewhere
   * we use ShellParams in all places where we execute docker commands (we used BuildCiParams) sometimes needlessly
   * tests are added to cover the "attribute" + "incoming env var" to the env vars passed to Docker Compose/Docker
   
   <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
   
      http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
    -->
   
   <!--
   Thank you for contributing! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   In case of an existing issue, reference it using one of the following:
   
   closes: #ISSUE
   related: #ISSUE
   
   How to write a good git commit message:
   http://chris.beams.io/posts/git-commit/
   -->
   
   
   
   <!-- Please keep an empty line above the dashes. -->
   ---
   **^ Add meaningful description above**
   Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)** for more information.
   In case of fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed.
   In case of a new dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
   In case of backwards incompatible changes please leave a note in a newsfragment file, named `{pr_number}.significant.rst` or `{issue_number}.significant.rst`, in [newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
   


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #35801:
URL: https://github.com/apache/airflow/pull/35801#issuecomment-1824049973

   Actually - I made it even better (see the latest version). I also figured how to do it so that we do not have to keep the separate lists of variables to pass in neither docker-compose base.yaml nor in docker.env - we are now generating the files with the list of variables for both docker and docker-compose.
   
   After this change there is only one place where you need to add env variable to pass to docker (ShellParamss `env_variables_for_docker_commamds` - which will make it very straightforward on how to extend the functionality of breeze passing variable to container.


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #35801:
URL: https://github.com/apache/airflow/pull/35801#issuecomment-1823165942

   BTW. This one will make it SO MUCH EASIER to understand and add new variables if we need to :)


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #35801:
URL: https://github.com/apache/airflow/pull/35801#issuecomment-1823216669

   Some celery URL passing problem - will take a look tomorrow :)


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #35801:
URL: https://github.com/apache/airflow/pull/35801


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #35801:
URL: https://github.com/apache/airflow/pull/35801#issuecomment-1823148752

   BTW, I am going to separate out small part of it - fixes to pre-commit attempting to upgrade itself in a few pre-commits (which slowed them down and made it impossible to run them in the plain without network)


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #35801:
URL: https://github.com/apache/airflow/pull/35801#issuecomment-1823147340

   This is a small follow-up after #35768 - this time not about --build-arg generation by breeze but about env variables passed to docker-compose/docker. The way it was done was quite a bit complex  - and coming from the previous Bash implementation. This is I think the last remnant of the old Bash approach in Breeze's Python code :). We still have a few scripts in the container, but I think that one was the last thing that resembled the Bash version of Breeze.
   
   cc: @Bowrna @edithturn :D


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Consolidate environment variable calculation in ShellParams in Breeze [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #35801:
URL: https://github.com/apache/airflow/pull/35801#issuecomment-1823158812

   There you go : https://github.com/apache/airflow/pull/35802


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org