Install uv
https://docs.astral.sh/uv/getting-started/installation/
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
Install OpenStack client
https://releases.openstack.org/epoxy/
# Get upper constraints for the OpenStack 2025.1 release
curl https://opendev.org/openstack/requirements/raw/branch/stable/2025.1/upper-constraints.txt -fsSL -o /tmp/upper-constraints-2025.1.txt
# Install OpenStack clients
uv tool install --python 3.12 \
python-openstackclient \
-c "/tmp/upper-constraints-2025.1.txt" \
--with-executables-from gnocchiclient \
--with-executables-from osc-placement \
--with-executables-from python-barbicanclient \
--with-executables-from python-cinderclient \
--with-executables-from python-cloudkittyclient \
--with-executables-from python-designateclient \
--with-executables-from python-glanceclient \
--with-executables-from python-heatclient \
--with-executables-from python-keystoneclient \
--with-executables-from python-mistralclient \
--with-executables-from python-neutronclient \
--with-executables-from python-novaclient \
--with-executables-from python-octaviaclient \
--with-executables-from python-swiftclientConfigure BASH completion
mkdir -p ~/.local/share/bash-completion/completions
openstack complete | tee ~/.local/share/bash-completion/completions/openstackDefine OpenStack credentials
# Deploy clouds.yaml
mkdir -p ~/.config/openstack
echo "clouds: ..." > ~/.config/openstack/clouds.yaml
# Define default OS_CLOUD for ~/.config/openstack/clouds.yaml
echo "export OS_CLOUD=foo-dev" >> ~/.bashrcDebug
openstack --version
uv tool list