仅支持 venv 安装

日期:

2016-06-27 13:30

标签:

python, venv, 部署

本规范的目的是移除在 Python 虚拟环境之外安装 OpenStack 服务和依赖 pip 包的支持。

问题描述

系统软件包和全局安装的 Python pip 包之间的冲突可能导致服务中断和奇怪的行为。 自 Liberty 版本发布以来,OpenStack 服务默认的安装选项是使用虚拟环境来隔离每个单独的服务。 今后应该只支持此选项。

提议的变更

每个角色将被更新,以移除与允许在虚拟环境之外安装 pip 包的选项相关的任务和变量。 当前处理安装虚拟环境的任务也将被更新,以确保它们是幂等的,并且可以从同一角色的先前运行中断中正确恢复。

备选方案

保持角色不变。 OpenStack 服务的部署将继续通过虚拟环境或作为全局系统 Python 包安装来支持。

Playbook/Role 影响

参见 提议的变更

升级影响

自 Liberty 版本发布以来,安装服务到虚拟环境一直是默认选项。 如果任何 Mitaka 部署仍然配置为不将服务安装到虚拟环境,它们将在 Newton 版本中被强制开始使用。

安全影响

不适用。

性能影响

当前正在跳过的任务将被移除,这可能会略微减少角色运行时间。

最终用户影响

不适用。

部署者影响

变量 *_venv_enabled 将不再存在,即使由部署者设置,也不会有任何效果。

开发人员影响

不适用。

依赖项

不适用。

实现

负责人

主要负责人

https://launchpad.net/~jimmy-mccrory (jmccrory)

工作项

  • 移除每个角色中与在 venv 之外安装 pip 包相关的任务

  • 移除每个角色中当前切换 pip 包安装到 venv 的变量

  • 更新每个角色,使创建和安装包到 venv 的任务更具弹性和幂等性

测试

集成和独立角色门控测试都已经仅安装服务到虚拟环境。

文档影响

应该很小。

参考资料

不适用。