×

Red Hat OpenShift Pipelines 是一个 Kubernetes 原生的 CI/CD 框架,允许开发人员在自己的容器中设计和运行 CI/CD 管道的每个步骤。

使用 OpenShift Pipelines 任务和示例管道,您可以执行以下操作:

  • 创建和管理虚拟机 (VM)、持久卷声明 (PVC)、数据卷和数据源。

  • 在虚拟机中运行命令。

  • 使用libguestfs工具操作磁盘镜像。

这些任务位于任务目录 (ArtifactHub)

Windows 示例管道位于管道目录 (ArtifactHub)

先决条件

  • 您可以访问具有cluster-admin权限的 AWS 集群上的 Red Hat OpenShift Service。

  • 您已安装 OpenShift CLI (oc)。

  • 您已安装 OpenShift Pipelines

支持的虚拟机任务

下表显示了支持的任务。

表 1. 支持的虚拟机任务
任务 描述

create-vm-from-manifest

根据提供的清单或使用virtctl创建虚拟机。

create-vm-from-template

从模板创建虚拟机。

copy-template

复制虚拟机模板。

modify-vm-template

修改虚拟机模板。

modify-data-object

创建或删除数据卷或数据源。

cleanup-vm

在虚拟机中运行脚本或命令,然后停止或删除虚拟机。

disk-virt-customize

使用virt-customize工具在目标 PVC 上运行自定义脚本。

disk-virt-sysprep

使用virt-sysprep工具在目标 PVC 上运行 sysprep 脚本。

wait-for-vmi-status

等待虚拟机实例的特定状态,并根据状态成功或失败。

管道中的虚拟机创建现在使用ClusterInstanceTypeClusterPreference,而不是已弃用的基于模板的任务。create-vm-from-templatecopy-templatemodify-vm-template命令仍然可用,但在默认管道任务中未使用。

Windows EFI 安装程序管道

您可以使用 Web 控制台或 CLI 运行Windows EFI 安装程序管道

Windows EFI 安装程序管道将 Windows 10、Windows 11 或 Windows Server 2022 从 Windows 安装映像 (ISO 文件)安装到新的数据卷中。自定义应答文件用于运行安装过程。

Windows EFI 安装程序管道使用由 Red Hat OpenShift Service on AWS 预定义并适用于 Microsoft ISO 文件的 config map 文件中的sysprep。对于属于不同 Windows 版本的 ISO 文件,可能需要创建一个具有特定于系统sysprep定义的新 config map 文件。

使用 Web 控制台运行示例管道

您可以从 Web 控制台的**管道**菜单运行示例管道。

步骤
  1. 单击侧边菜单中的**管道**→**管道**。

  2. 选择一个管道以打开**管道详细信息**页面。

  3. 从**操作**列表中选择**启动**。将显示**启动管道**对话框。

  4. 保留参数的默认值,然后单击**启动**以运行管道。“详细信息”选项卡会跟踪每个任务的进度并显示管道状态。

使用 CLI 运行示例管道

使用PipelineRun资源运行示例管道。PipelineRun对象是管道的运行实例。它使用特定输入、输出和执行参数在集群上实例化管道以进行执行。它还为管道中的每个任务创建一个TaskRun对象。

步骤
  1. 要运行 Microsoft Windows 11 安装程序管道,请创建以下PipelineRun清单:

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      generateName: windows11-installer-run-
      labels:
        pipelinerun: windows11-installer-run
    spec:
        params:
        -   name: winImageDownloadURL
            value: <windows_image_download_url> (1)
        -   name: acceptEula
            value: false (2)
        pipelineRef:
            params:
            -   name: catalog
                value: redhat-pipelines
            -   name: type
                value: artifact
            -   name: kind
                value: pipeline
            -   name: name
                value: windows-efi-installer
            -   name: version
                value: 
            resolver: hub
        taskRunSpecs:
        -   pipelineTaskName: modify-windows-iso-file
            PodTemplate:
                securityContext:
                    fsGroup: 107
                    runAsUser: 107
    1 指定 Windows 11 64 位 ISO 文件的 URL。产品的语言必须是英语(美国)。
    2 示例PipelineRun对象具有一个特殊参数acceptEula。通过设置此参数,您即同意每个 Microsoft 产品的部署或安装适用的 Microsoft 用户许可协议。如果您将其设置为 false,则管道在第一个任务处退出。
  2. 应用PipelineRun清单

    $ oc apply -f windows11-customize-run.yaml