贡献到 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. 包含适当的 更改日志