-
Notifications
You must be signed in to change notification settings - Fork 193
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
Test kubernetes in CI #3482
base: master
Are you sure you want to change the base?
Test kubernetes in CI #3482
Conversation
…tes worker pod configuration
…as-expected as root
many of these newly marked "no shared fs" tests do not need to be shared fs, but instead could be staging-based? it would be good to test the tests that aren't marked as staging required with no staging providers configured, even in normal CI, to validate that test mark is applied properly. should also rewrite the mark name as shared_fs_required to match the X_required format?
this is failing repeatedly on this test: (at 5c55fe6)
(most recently with a |
…ular test, or something else
…=[] in local htex test...)
…read_namespaced_pod(), which is functionally the same but requires fewer permissions.
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.
This looks good . It'd also be nice to organize the k8s-related CI files in .github/kubernetes/
or something similar.
RUN apt-get update && apt-get install -y python3.12 python3.12-dev | ||
RUN apt-get update && apt-get install -y python3.12-venv |
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 suggest we make the Python version configurable.
E.g.,
RUN apt-get update && apt-get install -y python3.12 python3.12-dev | |
RUN apt-get update && apt-get install -y python3.12-venv | |
ARG PYTHON_VERSION="3.12" | |
RUN apt-get install -y python${PYTHON_VERSION} python${PYTHON_VERSION}-dev | |
RUN apt-get-install -y python${PYTHON_VERSION}-venv |
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.
this is a bit weird (something to do with how python is packaged in trixie?). Normally in debian it looks like there's a single OS-level python3
available (which changes when there's a new code-named release) and it seems unusual that trixie happens to have two. certainly debian isn't traditionally set up to expect you to be able to choose a python version from the OS.
there's a couple of things that could happen: i) always use the OS-level default python3
or ii) use something like Conda to provide a much richer Python environment. Some dependencies like the ndcctools recommends being installed using conda anyway, and so maybe that's the way to go here. I don't think there's any particular reason to want to stick with the OS-level Python, as this is "an image where Parsl works" rather than "an image that looks like a particular debian version".
This PR is a codification of what I had to do to get
pytest
passing for myself while trying to review other kubernetes PRs.The bulk of the modified files are additional test markings to label which tests require a shared filesystem (between all workers and the submit side) to store working files; and which tests require file staging (as the default file staging configuration is not valid for kubernetes, due to lack of shared file system).
There is also a bugfix for default pod names being generated as invalid format (which can fixed by users by specifying an explicit prefix)
This PR can probably be merged into master in a few stages.