3.2. 使用新网络驱动程序准备 neutron-api 组件


Red Hat OpenStack Services on OpenShift (RHOSO) openstack-neutron services 在由红帽构建的 Linux 容器中执行。这些容器镜像包括 "in-tree" 网络驱动程序,如 ML2/OVN。您必须准备新容器镜像才能使用合作伙伴网络驱动程序。合作伙伴必须提供容器镜像,用于在红帽的 RHOSO 容器镜像之上添加额外的层。

  • RHOSO 的合作伙伴容器镜像与适用于基于 director 的 RHOSP 的合作伙伴容器镜像类似。
  • 提供合作伙伴容器镜像的目的是提供合作伙伴驱动程序所需的软件依赖项。
  • 合作伙伴负责生成容器镜像,并且镜像必须在红帽 OpenStack 认证之前通过容器镜像认证流程。容器镜像认证与红帽 OpenStack 认证分开,是 红帽生态系统目录中包含的 要求。
  • 在合作伙伴的网络驱动程序通过 Red Hat OpenStack 认证后,合作伙伴负责为 RHOSO 版本的每个后续次要更新生成经过认证的容器镜像。

    • 对于每个次发行版本的 RHOSO 18 更新,合作伙伴必须为更新的版本生成更新的容器镜像,并在红帽生态系统目录中发布更新的容器镜像。
    • 旧的 RHOSO 18 次要更新的容器镜像必须保留在红帽生态系统目录中。这样可确保不使用最新 RHOSO 版本的客户仍然可以访问为其 RHOSO 版本构建的合作伙伴容器镜像。

3.2.1. 为网络服务构建合作伙伴容器镜像

合作伙伴必须提供红帽认证的容器镜像。neutron-server 服务包括 OVN 后端和许多服务插件的"in-tree"驱动程序。合作伙伴必须为 RHOSO neutron-server 容器镜像上的第 3 层网络驱动程序软件提供 neutron-server 容器镜像。

注意

根据插件或驱动程序,您可能还需要在数据平面或 control plane 节点上部署其他服务或代理。对于 control plane,您可以使用 operator-sdk 添加新的 OpenShift operator,对于数据平面,您可以添加新的 OpenStackDataPlaneService。您可以在官方 Neutron 代理镜像和 edpm-ansible 角色上构建 OpenStackDataPlaneService 服务。您负责新的自定义服务接口的稳定性。

流程

  1. 创建用于生成容器镜像的 Containerfile :以下示例显示了用于生成 neutron-server 容器镜像的 ContainerfileDockerfile 示例,其中包含合作伙伴的 openstack-neutron 驱动程序所需的外部软件依赖项。可以调整示例来生成任何其他 neutron 相关的容器镜像,其中包含合作伙伴的 openstack-neutron 驱动程序所需的外部软件依赖项。

    FROM registry.redhat.io/rhoso/openstack-neutron-server-rhel9:18.0.1		
    1
    
    
    LABEL name="rhoso18/openstack-neutron-server-partnerX-plugin" \
          maintainer="maintainer@partnerX.com" \
          vendor="PartnerX" \
          summary="RHOSO 18.0 neutron-server PartnerX PluginY" \
          description="RHOSO 18.0 neutron-server PartnerX PluginY" 	
    2
    
    
    # Switch to root to install software dependencies
    USER root
    
    # Enable a repo to install a package 			
    3
    
    COPY vendorX.repo /etc/yum.repos.d/vendorX.repo
    RUN dnf clean all && dnf install -y vendorX-plugin
    
    # Install a package over the network 			
    4
    
    RUN dnf install -y http://vendorX.com/partnerX-plugin.rpm
    
    # Install a local package 						 
    5
    
    COPY partnerX-plugin.rpm /tmp
    RUN dnf install -y /tmp/partnerX-plugin.rpm && \
      rm -f /tmp/partnerX-plugin.rpm
    
    # Install a python package from PyPI            
    6
    
    RUN curl -OL https://bootstrap.pypa.io/get-pip.py && \
      python3 get-pip.py --no-setuptools --no-wheel && \
      pip3 install partnerX-plugin && \
      rm -f get-pip.py
    
    # Add required license as text file(s) in /licenses directory
    # (GPL, MIT, APACHE, Partner End User Agreement, etc)
    RUN mkdir /licenses
    COPY licensing.txt /licenses
    
    # Switch to neutron user
    USER neutron
    Copy to Clipboard Toggle word wrap
    1
    使用 FROM 子句指定 RHOSO 基础镜像,本例中为 neutron-server 服务。18.0.1 标签指定发行版本。要根据特定的次版本生成镜像,请修改标签以指定该发行版本,如 18.0.0 或 openstack-neutron-server-rhel9:*18.0.0*。对于 RHOSO 18 GA,请使用 URL: registry.redhat.io/rhoso/openstack-neutron-server-rhel9:18.0。
    2
    示例 Containerfile 中的标签覆盖基础镜像中的对应标签,以唯一标识合作伙伴的镜像。
    3
    您可以通过此方法安装软件依赖项,或方法安装 4、5 或 6。
    4
    您可以通过此方法安装软件依赖项,或者方法 3、5 或 6。
    5
    您可以通过此方法安装软件依赖项,或者方法 3、4 或 6。
    6
    您可以通过此方法安装软件依赖项,或者方法 3、4 或 5。
  2. 构建、标记和上传容器镜像。您可以使用 podman buildbuildah build 命令来构建容器镜像。有关合作伙伴如何选择注册表并为 认证提供访问令牌的更多信息,请参阅红帽软件认证工作流指南。标记镜像,使其与对应的 RHOSO 18 基础镜像匹配。例如,当基础镜像版本 18.0.0 时,合作伙伴的镜像也会标记为版本 18.0.0。您还可以将上述示例流程用于其他 neutron 服务。确保使用正确的 RHOSO openstack-neutron 基础镜像来代替 openstack-neutron-server 基础镜像。
  3. 认证并发布容器镜像 :有关如何认证容器镜像的信息,请参阅 Red Hat Enterprise Linux 软件认证策略指南Red Hat Software Certification Workflow Guide。您可以在 红帽生态系统目录 中发布容器镜像。

3.2.2. 维护合作伙伴容器镜像和镜像标签

当合作伙伴通过认证包含容器镜像的网络解决方案时,合作伙伴负责在每次 OpenShift (RHOSO)容器镜像更改时重新构建该镜像。合作伙伴必须重建容器镜像:

  • 每个 RHOSO 维护发行版本。
  • 当 RHOSO 容器镜像被更新为解决 CVE 时。

例如,如果合作伙伴根据 RHOSO 18.0.1 认证其解决方案,合作伙伴必须在容器镜像中添加两个标签:

  • 18.0.1 表示特定的版本。
  • 18.0 表示这是与 RHOSO 18 相关的最新版本。

当 RHOSO 18.0.2 发布时,合作伙伴必须重建其镜像并更新镜像和标签:

  • 新镜像的标签为 18.0.2。
  • 旧的 18.0.1 镜像必须保留在红帽生态系统目录中。合作伙伴不得删除旧镜像。
  • 从旧的 18.0.1 镜像中删除 18.0 标签,并将其添加到新的 18.0.2 镜像中。

3.2.3. 部署合作伙伴容器镜像

使用 OpenShift 上的 Red Hat OpenStack Services (RHOSO),您可以使用 OpenStackVersion 自定义资源定义(CRD)覆盖任何服务的容器镜像。在以下示例中,CRD 配置 neutron-server 的自定义镜像,以使用名为"PartnerX"的合作伙伴的容器镜像。

apiVersion: core.openstack.org/v1beta1
kind: OpenStackVersion
metadata:
  name: openstack
spec:
  customContainerImages:
    neutronAPIImage: registry.connect.redhat.com/partnerX/openstack-neutron-server-partnerX-plugin:18.0.1
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat