实习想法
此页面不再积极维护。
在开始此页面上的任何实习想法之前,请联系列出的导师,以确定该想法是否仍然相关。
您还可以查看最新的 Outreachy 提案,它们是最新的:https://www.outreachy.org/apply/project-selection/#openstack
最后,您可以查看当前的“上游投资机会”,其中列出了社区感兴趣但没有所有者的项目:https://governance.openstack.org/tc/reference/upstream-investment-opportunities/
要提交新的想法,请考虑创建一个新页面并使用 Template:InternshipIdea(该页面上提供了说明),并且您可以查看一个 示例想法页面 的样子。使用此类模板创建的页面列在 Category:Internship_idea 上。
实习想法列表
OpenStack 基金会有多种实习来源,从 Outreachy 到 Google Summer of Code 和其他机会。此页面收集了候选实习生可以从事的想法。
申请者可能以前从未从事过 FLOSS,并且具有不同水平的能力。由于我们有不同的项目,请在此处添加可以由经验不足的贡献者、开发人员或其他领域(营销、沟通、图形设计以及对 OpenStack 有用的任何内容,并纳入社区的新成员)完成的想法。
编码
OpenStack 作为虚拟 Kubernetes 节点
实现一个虚拟 Kubernetes 节点,允许在 OpenStack 上运行容器/pod。申请从事此工作的学生将学习 Zun 和 Kubernetes,并将致力于为 Zun 实现一个全新的功能,包括不仅编码,还包括测试和文档工作。有关更多信息,请参见 https://github.com/virtual-kubelet/virtual-kubelet/issues/22
| 难度 | 中 |
| 主题 | OpenStack Zun, Kubernetes |
| 所需技能 | Python Go |
| 额外技能 | |
| 导师 | hongbin 在 IRC 频道 #openstack-zun @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
改进 Cinder 集成以用于 Docker 容器
为 Docker 容器添加对 Cinder 卷多挂载的支持。愿意承担此任务的学生将学习 Zun 和 Cinder。在 Ocata 周期中,Cinder 中实现了一个新的卷附加流程。我们希望 Zun 利用这个新的流程。实现这一点需要学生不仅贡献代码,还要为该功能贡献测试和文档。有关更多详细信息,请查看 https://blueprints.launchpad.net/zun/+spec/cinder-volume-multi-attach。
| 难度 | 中 |
| 主题 | OpenStack Zun, OpenStack Cinder, Docker |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | hongbin 在 IRC 频道 #openstack-zun @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
帮助实现 Cinder 中的通用备份驱动程序支持
目标是创建一个通用备份驱动程序,可用于将任何 Cinder 卷后端转换为备份的目标。这样,我们就不需要为支持的后端实现特定的备份驱动程序。选择此实习任务的学生将学习 Cinder,并被要求为该功能的测试和文档做出贡献。有关更多详细信息,请参阅 https://review.openstack.org/#/c/504099/1/specs/queens/generic-backup-implementation.rst
| 难度 | 中 |
| 主题 | OpenStack Cinder, 存储 |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | jungleboyj 和 e0ne 在 IRC 频道 #openstack-cinder @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
消除未缓存镜像的冗余下载
启动新虚拟机所需时间的重要组成部分是获取后端存储中使用的镜像到主机所需的时间。为了加快速度,Glance 具有可选的缓存中间件,对于某些后端(特别是 OpenStack Swift),可以显着提高性能。问题在于缓存有点笨拙,在有人想要从同一镜像启动 1000 个 VM 的情况下,每个请求都会发现镜像未缓存,并将启动来自存储后端的下载,从而导致性能严重下降。
有一些提高缓存中间件的复杂性在 Glance 规范文档中讨论:https://specs.openstack.org/openstack/glance-specs/specs/untargeted/glance/duplicate-downloads.html。除了编码之外,您还将接触到在开放源代码社区中工作的经验,从设计阶段到实施阶段,因为您的第一个任务将是重新向 Glance 社区提出规范,以便对其进行审查和重新批准。(不用担心,这不会拖延太久,因为它已经获得批准;它未针对是因为原始开发人员被重新分配到另一个项目。)这是一个有趣的项目,它将涉及 Glance 的几个组件:API 服务器、缓存中间件和 glance_store 库。当然,您还将添加良好的测试。
| 难度 | 低到中等(您不需要以前的 OpenStack 经验,但您需要有足够的自发性来学习 Glance 的组件以及它们如何交互) |
| 主题 | Glance |
| 所需技能 | Python |
| 额外技能 | 通用的分布式系统知识 |
| 导师 | jokke_ 在 IRC 频道 #openstack-glance @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
将 Nova 中的旧版通知转换为新的版本化框架
帮助将 Nova 中的旧版通知转换为新的版本化框架。申请此任务的学生将学习 Nova 和 oslo.messaging 库,并将帮助将 Nova 的旧版通知转换为使用已建立的框架的适当版本化 API。有关更多详细信息,请查看此页面 https://wiki.openstack.org/wiki/Nova/VersionedNotificationTransformation
| 难度 | 中 |
| 主题 | OpenStack Nova |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | gibi 在 IRC 频道 #openstack-nova @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
策略测试
随着所有系统范围的工作即将到来并在 Queens 中落地,我们需要准备好重新思考 test_v3_protection.py 测试模块。该模块负责确保策略正在执行它们应该做的事情。由于我们正在添加一些新的系统范围组合,这应该会导致难以维护和理解的测试爆炸。
- 我们能否提出一种灵活地测试不同策略案例的方法
- 重构当前覆盖范围
- 与 Patrole 集成
| 难度 | 中 |
| 主题 | OpenStack Keystone |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | hrybacki 和 lbragstad 在 IRC 频道 #openstack-keystone @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
Flask 支持
当我们有合适的框架来完成这项工作时,我们有一个自制的 WSGI 实现。我们可以通过迁移到框架并放弃自制实现来减少要维护的轮子。我们已经谈论了一段时间要迁移到 Flask。好处将是减少对自制实现的维护。
| 难度 | 中 |
| 主题 | OpenStack Keystone |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | 待定 (TBA) |
| 状态 | 正在寻找候选人。 |
| 项目 |
原生 SAML
当前,联合身份验证需要使用 Apache 插件来处理 SAML 处理。我们希望尝试一种可以进入 keystone paste 管道以根据规范处理 SAML 的中间件。这将使联合身份验证更容易配置,并且能够减少当前在联合身份验证中使用的映射(断言 -> env 变量,env 变量 -> keystone 映射)。
| 难度 | 中 |
| 主题 | OpenStack Keystone |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | cmurphy 和 rodrigods 在 IRC 频道 #openstack-keystone @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 |
使 keystone 成为一个功能齐全的 IdP
当前,keystone 可以充当 IdP,但仅以非标准的内部设计的身份验证流程中,而不是使用 WebSSO。我们可以实现 keystone 中的 WebSSO 标准的其余部分。https://bugs.launchpad.net/keystone/+bug/1470205 这可能是此项目或 Native SAML 项目的一个很好的预热错误:https://bugs.launchpad.net/keystone/+bug/1641625
| 难度 | 中 |
| 主题 | OpenStack Keystone |
| 所需技能 | Python |
| 额外技能 | |
| 导师 | 待定 (TBA) |
| 状态 | 正在寻找候选人。 |
| 项目 |
OpenStack Manila 与 OpenStack CLI (OSC) 的集成
OpenStackClient(也称为 OSC)是 OpenStack 的命令行客户端,它将 Compute、Identity、Image、Object Store 和 Volume API 的命令集带到一个统一的 shell 中,并具有统一的命令结构。OSC 的主要目标是提供一个统一的 shell 命令结构和一个通用的语言来描述 OpenStack 中的操作。应将 Manila 基本命令添加到 OSC 客户端。这将有助于用户提供一个统一的 shell 命令结构来描述 OpenStack 中的操作。
| 难度 | 低 |
| 主题 | OpenStack Manila |
| 所需技能 | Ruby |
| 额外技能 | Python |
| 导师 | enriquetaso 和 vkmc 在 IRC 频道 #openstack-manila @ freenode 上 |
| 状态 | 正在寻找候选人。 |
| 项目 | Outreachy 2019 年 5 月至 8 月的候选人。 |