-
Notifications
You must be signed in to change notification settings - Fork 16.4k
UI API CLI and Breeze integration #41896
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Ok, I was able to get rid of the Now I need to understand why are workers first incrementated (most likely by the monitoring loop), to then yield a sigterm error. That does not seem normal. |
jscheffl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can confirm it is working as described. Code looks good.
I am just a bit sceptic that we need to run another server process whereas in the other webserver we also host an API. As the new FastAPI also is running in gunicorn... can this not directly be integrated into webserver and we save another port forward, URL routing and (potential) complexity when we go further?
potiuk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
I think for Airflow 3 development, it's quite ok to keep things separate, but agree with @jscheffl that it should be unified eventually. I think we should get rid of all the old connexion thing - having all the experience with connexion 3 and convert all our APIs and websever endpoints to use FastAPI - looking at how much it handles for us, and the fact that we can make some incompatibility decisions made in Airflow 2 for the APIs (error handling for one, base_url handling etc.) - having a single, unified FastAPI (even if opinionated and with different decieions) is a great opportunity to "standardising" our UI work - that would need some work on converting existing REST endpoints (and especially tests) to use Fast API, but other that potential slight incompatibilities, I do not see any problems with it. Fast API can generate OpenAPI spec from the code, get swagger conected and so on and we can make it works "slightly differently" for airlfow 3 - and migrate the code for our current REST API gradually.
But it does not have to be "now".
|
I'd say - migrating existing REST APIs to the new "ui-api" command is the way to go. |
Totally agree. At the end of the day we want a standardized way of handling our Rest APIs, code first spec, most likely all FastAPI. And we will migrate the existing for airflow 3 development. Then the new RestAPI can be a drop in replacement for the existing plublic API that will be completely removed I suppose. |
76b653e to
3b87cce
Compare
|
Ok, the TTIN followed by TTOU seems perfectly normal, Merging when CI is green |
add port binding Add tests Add ui-api to airflow standalone Fix bad descriptor error on shutting down the worker
3b87cce to
4f74be8
Compare
correct |
Add the
airflow ui-apicommand. Include it inairflow standaloneand also in breeze to have that at the startup.Everything is working locally port binding from host to docker api port, standalone command, airflow ui-api command.
I just have one thing I need to investigate which is that there are some errors on the
TTINTTOUTsignals of the gunicorn server. That does not appear when I run the gunicorn server manually, that seems to come from ourGunicornMonitor. I need to dive deeper into theGunicornMonitorloop to see if this is 'expected or not', probably not.cf screenshot, workers are being brought up and down,
and when closing apparently a filedesriptor is already closed or improperly closed.(solved), why are workers terminated in the first place.