Havana 系列发布说明

发布概述

Havana 版本周期带来了对三个新项目的支持,以及对几个现有项目的重大新特性。除此之外,用户体验的许多方面都得到了改进,无论是对于最终用户还是管理员。社区不断发展壮大。Havana 版本是 OpenStack Dashboard 项目迄今为止最好的版本!

亮点

新特性

Heat

OpenStack Orchestration 项目 (Heat) 在 Havana 中首次亮相,Horizon 提供了完全支持来管理您的 Heat 堆栈。亮点包括从支持的 Heat 模板格式动态生成表单、堆栈拓扑可视化以及完全堆栈资源检查。

Ceilometer

OpenStack Metering 项目 (Ceilometer) 也首次亮相于 Havana。Horizon 包含了对 Ceilometer 的初步支持,以便管理员可以通过 OpenStack Dashboard 查询云的使用情况,并更好地了解系统的运行和利用情况。

域、组等等:Keystone v3 API 支持

随着 OpenStack Identity Service (Keystone) v3 API 在 Havana 版本中完全成熟,Horizon 已经添加了对所有新功能的完全支持,例如域和组、角色管理以及分配给域和组、基于域的身份验证以及域上下文切换。

Trove 数据库

OpenStack Database as a Service 项目 (Trove) 在 Havana 周期中从孵化阶段毕业,并且由于他们的努力,他们为 OpenStack dashboard 提供了一组面板,以便配置和管理您的 Trove 数据库和备份。免责声明:鉴于 Trove 的第一个官方版本作为集成项目要到 Icehouse 才会发布,此功能仍应被视为实验性的,并且可能随时更改。

Nova 特性

Horizon 中支持的 OpenStack Compute (Nova) 特性数量持续增长。Havana 版本中的新功能包括

  • 可编辑的默认配额。

  • 管理员重置服务器/实例密码的能力。

  • 可用区支持。

  • 改进的区域支持。

  • 实例调整大小。

  • 改进的从卷启动支持。

  • 每个项目的风味支持。

所有这些都提供了一套更丰富的选项,用于控制实例启动的地点、时间和方式,以及在实例启动并运行后如何管理它们。

Neutron 特性

许多重要的 OpenStack Networking (Neutron) 新特性在 Havana 版本中得到了展示,最值得注意的是

  • VPN 即服务。

  • 防火墙即服务。

  • 可编辑且交互式的网络拓扑可视化。

  • Neutron 和 Nova 网络之间完全的安全组和配额对等性。

这些功能允许在使用 Neutron 构建云的软件定义网络时具有极大的灵活性。

用户体验改进

自助密码更改

得益于 Keystone API 的更改,用户现在可以更改自己的密码,而无需管理员的参与。这更安全,并且为每个人都省去了麻烦。

更好的管理员信息架构

Admin dashboard 的几个部分已被重新排列,以便更逻辑地将信息分组在一起。此外,还添加了新的信息来源,以便管理员更好地了解云中主机的状态及其与主机聚合、可用区等的关系。

改进的注销用户消息

已添加几个新的指示器,以告知用户为什么他们在意外地登陆到登录屏幕时被注销。这些指示器清楚地表明用户的会话是否已过期、由于不活动而超时,或者他们未被授权访问他们尝试访问的 dashboard 部分。

安全组规则模板

由于有许多非常常见的安全组规则,用户每次都费力地重新添加(例如 SSH 和 ping 的规则),Horizon 团队添加了常用规则的预配置模板,用户可以单击两次选择并将其添加到安全组。这些规则可以通过 SECURITY_GROUP_RULES 设置进行配置。

社区

翻译团队

OpenStack 翻译团队在 Havana 周期中完全成熟,Horizon 中的翻译质量是迄今为止最好的。祝贺该团队成功地构建了最初主要在 OpenStack Dashboard 项目中启动的社区。

用户体验组

一个新兴的 OpenStack 用户体验组在 Havana 周期中成立,其使命是改进整个 OpenStack 的用户体验。他们迅速成为设计和改进 OpenStack Dashboard 功能过程中的不可或缺的一部分。现在有了专门的人员积极协作以提高标准,预计未来用户体验将得到显着改善。

底层

更简单的 LESS 编译:不再需要 NodeJS

由于各方的呼吁,并且由于 Python 社区对 LESS 的支持得到改善,Horizon 已经从项目中删除了所有 NodeJS 的痕迹。我们现在使用 lesscpy 模块将 LESS 编译成最终的样式表。这不应以任何方式影响大多数用户,但它应该使下游发行版等更容易。

基于角色的访问控制

Horizon 已经开始过渡到使用其他 OpenStack 项目的 policy.json 文件来强制 dashboard 中的访问控制(如果提供了这些文件)。这意味着访问控制更可配置,并且可以保持在源项目和 Horizon 之间同步。目前,这仅支持 Keystone 和 Nova 策略文件的一部分。完全支持将在下一个版本中实现。您需要设置 POLICY_FILES_PATHPOLICY_FILES 设置才能启用此功能。

其他改进和修复

  • Swift 容器和对象元数据现在受支持。

  • 利用率和配额的新可视化。

  • Cisco N1K 路由器插件的附加功能通过一个特殊的附加 dashboard 提供,在 Neutron 中启用和支持时。

  • 支持自签名或其他指定的 SSL 证书检查。

  • Glance 镜像类型现在可配置。

  • dashboard 中的排序得到了改进。

  • API 调用效率优化。

  • 表单中的必填字段现在得到更好的指示。

  • 会话超时现在可以启用,以在用户不活动一段时间后注销用户,作为一项安全功能。

  • PEP8 和代码质量合规性得到显着改进。

  • 数百个错误修复和次要的用户体验改进。

升级信息

允许的主机

对于 Horizon 的生产部署,您必须将 ALLOWED_HOSTS 设置添加到您的 local_settings.py 文件中。此设置是在 Django 1.5 中添加的,是一项重要的安全功能。有关更多信息,请参阅 local_settings.py.example 文件或 Django 的文档。

启用 Keystone 和 Neutron 功能

如果您对 OPENSTACK_KEYSTONE_BACKENDOPENSTACK_NEUTRON_NETWORK 设置有现有的配置,您需要查阅 local_settings.example.py 文件,以获取有关已添加的新选项的信息。现有的配置将继续工作,但可能没有正确的键来启用 Havana 中的某些新功能。

已知问题和限制

会话创建和健康检查

如果您使用健康监控服务来 ping 主页,并结合基于数据库的会话后端,您可能会遇到过多的会话创建。这个问题很快将得到解决,但在此期间,建议的解决方案是编写一个定期作业,定期从会话存储中删除过期的会话。

同时删除大量资源

使用“全选”复选框一次删除大量资源可能会导致网络超时(具体取决于配置)。这是因为底层 API 本身不支持批量删除,因此 Horizon 必须在后台发送请求来单独删除每个资源。

Neutron 中与安全组名称冲突

虽然 Nova Network 在实例启动时指定安全组时仅使用安全组的名称,但 Neutron 可以接受名称或 UUID。为了支持两者,Horizon 会传递所选安全组的名称。但是,由于 Neutron 中存在一些数据隔离问题,如果管理员用户尝试指定与他们也具有访问权限的其他项目中的另一个安全组同名的安全组,可能会出现问题。Neutron 将找到多个匹配的安全组名称,并且将无法启动实例。当前的解决方法是对于管理员用户,将安全组名称视为唯一。

向后兼容性

Havana Horizon 版本应与 OpenStack 集成项目的 Havana 和 Grizzly 版本(Nova、Swift 等)完全兼容。其他 OpenStack 项目中不存在于 Grizzly 中的新功能显然只有在其余堆栈支持它们时才能在 Horizon 中工作。

总的来说,已经做出了很大的努力来维护与迄今为止构建在 Horizon 上的第三方开发人员的兼容性。