贡献给 Ansible 托管的集合

Ansible 团队欢迎社区为 Red Hat Ansible 工程团队维护的集合贡献力量。本节介绍如何提交问题和创建 PR,以及在 PR 合并之前所需的测试。

Ansible 托管的集合

下表显示

  • **Ansible 托管的集合** - 点击 Galaxy 上集合的链接,然后点击 Galaxy 中的 repo 按钮以查找此集合的 GitHub 存储库。

  • **相关的社区集合** - 包含社区创建的内容(模块、角色等)的集合,Ansible 托管集合的用户也可能对此感兴趣。例如,您可以在将内容移至 Ansible 托管的集合之前,将新模块添加到社区集合作为技术预览。

  • **赞助商** - 管理集合的工作组。您可以加入会议,讨论对集合的重要建议更改和增强。

  • **测试要求** - Ansible 托管集合的任何新内容或更改内容所需的测试。

  • **开发者详情** - 描述 Ansible 托管的集合是否接受现有集合内容(插件、角色等)的直接社区问题和 PR,以及基于集合类型的更具体的开发者指南。

集合详情 测试要求:Ansible 集合 开发者详情
Ansible 集合 相关的社区集合 赞助商 健全性测试 单元测试 集成测试 CI 平台 接受 PR* 指南
amazon.aws community.aws AWS ✓** ** Zuul AWS 指南
ansible.netcommon*** community.network 网络 Zuul 网络指南
ansible.posix community.general Linux Zuul 开发者指南
ansible.windows community.windows Windows ✓**** Azure Pipelines 和 Zuul Windows 指南
arista.eos community.network 网络 Zuul 网络指南
cisco.asa community.asa 安全 Zuul 开发者指南
cisco.ios community.network 网络 Zuul 网络指南
cisco.iosxr community.network 网络 Zuul 网络指南
cisco.nxos community.network 网络 Zuul 网络指南
ibm.qradar community.qradar 安全 Zuul 开发者指南
junipernetworks.junos community.network 网络 Zuul 网络指南
kubernetes.core kubernetes.core Kubernetes GitHub Actions
redhat.openshift community.okd Kubernetes GitHub Actions
openvswitch.openvswitch community.network 网络 Zuul 网络指南
splunk.es community.es 安全 Zuul 开发者指南
vyos.vyos community.network 网络 Zuul 网络指南
vmware.vmware_rest vmware.vmware_rest VMware Zuul VMware REST 指南

注意

* **接受 PR** 下的 ✓ 表示该集合欢迎针对现有集合内容(插件、角色等)的任何更改的 GitHub 问题和 PR。

** AWS 集合需要集成测试,并欢迎单元测试,但不是必需的。对于由于外部要求在逻辑上不可行的集成测试情况,这是一个例外。例如 AWS Direct Connect,因为此服务在没有建立网络对等连接的情况下无法进行功能测试。因此,与 AWS Direct Connect 交互的模块需要单元测试。对 amazon.aws 的例外必须获得 Red Hat 批准,对 community.aws 的例外必须获得 AWS 社区批准。

*** ansible.netcommon 包含启用许多网络和安全 平台 集合的所有基础组件。它包含所有必需的连接和过滤器插件,并在安装平台集合时作为依赖项安装。

**** Windows PowerShell 模块的单元测试是测试的例外,但单元测试对于集合的其余部分(包括 Ansible 端插件)是有效的且必需的。

决定你的贡献属于哪里

我们欢迎对 Ansible 托管的集合的贡献。由于这些集合是下游支持的 Red Hat 产品的一部分,因此贡献、测试和发布的标准可能高于其他社区集合。相关的社区集合(例如 community.generalcommunity.network)的要求不太严格,并且是新功能的好去处,这些新功能可能会在将来的版本中成为 Ansible 托管集合的一部分。

以下场景使用 arista.eos 来帮助解释何时贡献给 Ansible 托管的集合,以及何时向相关的社区集合提出你的更改或想法

  1. 你想修复 arista.eos Ansible 托管集合中的问题。直接在 arista.eos 集合 GitHub 存储库 中创建 PR。应用所有 合并要求

  2. 你想为 Arista 添加一个新的 Ansible 模块。你的选择如下:

    • arista.eos 集合中提出一个新模块(需要 Arista 和 Red Hat 的批准)。

    • arista 命名空间中提出一个新的集合(需要 Arista 和 Red Hat 的批准)。

    • community.network 集合中提出一个新模块(需要网络社区的批准)。

    • 将你的新模块放在你自己的命名空间中的集合中(不需要批准)。

大多数新内容应该首先进入相关的社区集合或你自己的集合,以便在你可以建议将其添加到 arista 命名空间(其中包含和维护标准要高得多)之前,在社区中得到良好的建立。

合并你的 PR 的要求

在你的 PR 可以合并到 Ansible 托管的集合之前,它必须满足以下要求:

  1. PR 位于集合的预期范围内。与 Ansible 托管集合表 中列出的相应 Ansible 赞助商联系以寻求帮助。

  2. 对于网络和安全领域,PR 遵循 资源模块开发原则

  3. 通过 健全性测试和 tox

  4. 通过单元测试和集成测试,如 Ansible 托管集合表 中列出并在 资源模块集成测试 中描述的那样。

  5. 遵循 Ansible 指南。请参阅 你应该开发模块吗?开发集合

  6. 解决所有审查意见。

  7. 包含适当的 变更日志