-
Notifications
You must be signed in to change notification settings - Fork 108
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
Deployment: Create a single script to create universal virtual environment for all WMCore services. #10979
Comments
On today's meeting James pointed out that CMS is migrating to support and run on various OSes, see slide 4. If CMS/CERN will shift from CC as official Linux OS and start using different OSes/Linux flavors it seems to me that we must move to venv since we may not be in control which package manager which will be used in different Linux flavors. I consider this as yet additional requirement from CMS computing. |
just for logging purposes I am pasting here some of my progress: I did manage to run the
[1]
|
@todor-ivanov thanks for sharing results. Here is my observations:
I hope this will help you to move forward. |
Thanks @vkuznet I'll try to minimize the hard coded paths and will move them to either environment setup or through script parameters, but in both ways I do agree with you we need to have them relative to the root of the deployment tree, rather than hardwired to a global path, as they are right now. |
So here is some more info: I did manage to achieve the following:
|
And looking at the tree diff now I just found out, one very import file is missing. This one: which in the current setup is crucial for running the service. Its contents (from a VM based install) are:
but we should definitely search for setting this up through the standard ways of the virtual environment setup mechanisms. One thing I am completely sure won't be needed any more is the mangling of
|
Logging a major problem I've hit while dealing with package dependencies. After we have the fix for including all the dependencies in the
And after checking all the system package versions I have they are indeed the latest:
But I still fail to tackle the problem. Maybe I am missing something here. Alan if you have any input would be very welcome. The final result is - even though I do try to deploy the latest wmcore version from
I still get the very old package wmcore==1.3.5 from [1]
|
Again logging some status of the work here: I did manage to deploy and produce properly all manage and startup scripts + setting up the environment for them. Here is how I am running it right now.
But I am fighting with the following error from the service logs:
FIY @amaltaro @vkuznet if you want you may start looking into the the code as it is right now and leave comments if you wish. I will request for yet another review from you in a moment. The wiki with all the details will come later today... or I'd rather say tomorrow. I did postpone the wok on it because last week many pieces of this development turned sudden turns. |
I, kind of, managed to locate the culprit here:
But this silent and misleading behavior was due to ignoring the import error from here [1] So I had to go and manually install the
And then upon restart of the service another error popped up:
[1] WMCore/src/python/WMCore/Services/Requests.py Lines 53 to 56 in f5f7154
|
Todor, I think you should adjust your requirements.txt file to include dbs3-client proper version which will bring pycurl for you. And, your final error comes from missed PYTHONPATH which should include dbs client code. When I run code locally I have the following env:
which has the following order |
Thanks @vkuznet I will fix that. |
Impact of the new feature
Deployment process of all WMCore Central Services
Is your feature request related to a problem? Please describe.
In the light of the work related to giving up the RPM based service deployment, a strong need of a single script to create a universal virtual environment for all WMCore services emerges. It should be an addition and complimentary to the K8 deployment procedures rather than a substitute. And should also facilitate the automation in the CI/CD process discussed in the following (non exhaustive) list of issues #10921 #10935 #10911 . Another strong plus of such an environment would be the unification between development and runtime environment for the project.
Describe the solution you'd like
A single script which should be able to create the python virtual environment for the project and setup all the needed packages and services dependencies inside it in such a way that it could be used for both development and run time.
Describe alternatives you've considered
Do Nothing and think about it when we completely get rid of the RPM based deployment process. Also leave people find themselves a way to setup the proper development environment in a way that it matches (at least partially) the runtime environment.
Additional context
This issue is created mostly to follow the automation of the virtual environment setup explained here: [1], Which I am already using for a long time now and it eases my work extremely.
[1]
https://github.com/dmwm/WMCore/wiki/setup-wmcore-virtual-environment
The text was updated successfully, but these errors were encountered: