[BUG] Missing core dependencies when upgraded to 3005 onedir (salt-cloud)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 5.6k
- Avg merge
- 2d 44m
- Merged PRs (30d)
- 80
Description
This issue was originally opened on the Salt Install Guide repo by @zyxep, but I'm copying the ticket here. In my opinion, this is a onedir install functionality issue rather than documentation issue, so it belongs here.
I have recently upgraded our salt master and minions to 3005 onedir.
When i tried to trigger salt-cloud I got this:
[INFO ] salt-cloud starting
/opt/saltstack/salt/run/salt/cloud/clouds/azurearm.py:174: FutureWarning: This cloud provider will be removed from Salt in version 3007 due to the deprecation of the 'Classic' API for Azure. Please migrate to Azure Resource Manager by March 1, 2023 (https://docs.microsoft.com/en-us/azure/virtual-machines/classic-vm-deprecation)
salt.utils.versions.warn_until(
/opt/saltstack/salt/run/salt/cloud/clouds/msazure.py:113: FutureWarning: This cloud provider will be removed from Salt in version 3007 due to the deprecation of the 'Classic' API for Azure. Please migrate to Azure Resource Manager by March 1, 2023 (https://docs.microsoft.com/en-us/azure/virtual-machines/classic-vm-deprecation)
salt.utils.versions.warn_until(
[WARNING ] Missing dependency: 'pyVmomi'. The vmware driver requires 'pyVmomi' to be installed.
[WARNING ] The cloud driver, 'vmware', configured under the 'sac' cloud provider alias, could not be loaded. Please check your provider configuration files and ensure all required dependencies are installed for the 'vmware' driver.
In rare cases, this could indicate the 'vmware.get_configured_provider()' function could not be found.
Removing 'vmware' from the available providers list
[INFO ] Applying map from '/srv/pillar/vms/vm.yaml'.
[ERROR ] There was a query error: 'provider'
Then I on the master ran sudo salt pip install pyvmomi and got this:
Collecting pyvmomi
Using cached pyvmomi-7.0.3.tar.gz (592 kB)
Preparing metadata (setup.py) ... done
Collecting requests>=2.3.0
Downloading requests-2.28.1-py3-none-any.whl (62 kB)
|################################| 62 kB 1.8 MB/s
Requirement already satisfied: six>=1.7.3 in /opt/saltstack/salt/pypath/lib/python3.9/site-packages (from pyvmomi) (1.16.0)
Collecting urllib3<1.27,>=1.21.1
Downloading urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
|################################| 140 kB 111.3 MB/s
Collecting charset-normalizer<3,>=2
Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
Downloading idna-3.3-py3-none-any.whl (61 kB)
|################################| 61 kB 12.1 MB/s
Collecting certifi>=2017.4.17
Downloading certifi-2022.6.15-py3-none-any.whl (160 kB)
|################################| 160 kB 93.9 MB/s
Building wheels for collected packages: pyvmomi
Building wheel for pyvmomi (setup.py) ... done
Created wheel for pyvmomi: filename=pyvmomi-7.0.3-py2.py3-none-any.whl size=259569 sha256=02d3a3463775789ef134264ced7e9da02ce150906ed8b21eb946096a2a5ba39b
Stored in directory: /root/.cache/pip/wheels/77/42/2b/4ee17ed5cf5b70933d5af2e85c0edcb7fb1edcc7746db6a9c1
Successfully built pyvmomi
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests, pyvmomi
WARNING: The script normalizer is installed in '/opt/saltstack/salt/pypath/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
salt 3005 requires certifi==2022.5.18.1, but you have certifi 2022.6.15 which is incompatible.
salt 3005 requires idna==2.8, but you have idna 3.3 which is incompatible.
salt 3005 requires requests==2.25.1, but you have requests 2.28.1 which is incompatible.
salt 3005 requires urllib3==1.26.6, but you have urllib3 1.26.12 which is incompatible.
Successfully installed certifi-2022.6.15 charset-normalizer-2.1.1 idna-3.3 pyvmomi-7.0.3 requests-2.28.1 urllib3-1.26.12
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
I kinda expected pyvmomi to be bundled with salt-cloud when I updated that to 3005 and then i'm also "confused" of why a so deep version is required for 3005.
salt 3005 requires certifi==2022.5.18.1, but you have certifi 2022.6.15 which is incompatible.
salt 3005 requires idna==2.8, but you have idna 3.3 which is incompatible.
salt 3005 requires requests==2.25.1, but you have requests 2.28.1 which is incompatible.
salt 3005 requires urllib3==1.26.6, but you have urllib3 1.26.12 which is incompatible.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the salt-cloud VMware driver and the onedir dependency packaging; the report identifies the missing pyVmomi warning and the salt pip install pyvmomi result. Check how salt-cloud dependencies are declared for the 3005 onedir distribution and verify that the VMware driver loads without incompatible Salt-pinned packages. Done means the reported missing dependency and resulting provider error are resolved or clearly documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100