搜索

2.9. 准备 GitOps ZTP 站点配置存储库

download PDF

在使用 GitOps Zero Touch Provisioning (ZTP) 管道前,您需要准备 Git 存储库来托管站点配置数据。

先决条件

  • 已配置了 hub 集群 GitOps 应用程序来生成所需的安装和策略自定义资源 (CR)。
  • 已使用 GitOps ZTP 部署受管集群。

流程

  1. 使用 SiteConfigPolicyGenTemplate CR 的单独路径创建一个目录结构。

    注意

    在单独的目录中,保持 SiteConfigPolicyGenTemplate CR。SiteConfigPolicyGenTemplate 目录必须包含一个 kustomization.yaml 文件,该文件明确包含该目录中的文件。

  2. 使用以下命令,从 ztp-site-generate 容器镜像导出 argocd 目录:

    $ podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15
    $ mkdir -p ./out
    $ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15 extract /home/ztp --tar | tar x -C ./out
  3. 检查 out 目录是否包含以下子目录:

    • out/extra-manifest 包含 SiteConfig 用来生成额外清单 configMap 的源 CR 文件。
    • out/source-crs 包含 PolicyGenTemplate 用来生成 Red Hat Advanced Cluster Management(RHACM)策略的源 CR 文件。
    • out/argocd/deployment 包含补丁和 YAML 文件,可在 hub 集群中应用,以便在此过程的下一步中使用。
    • out/argocd/example 包含代表推荐的配置的 siteConfigPolicyGenTemplate 文件的示例。
  4. out/source-crs 文件夹和内容复制到 PolicyGentemplate 目录。
  5. out/extra-manifests 目录包含 RAN DU 集群的参考清单。将 out/extra-manifests 目录复制到 SiteConfig 文件夹。此目录应包含来自 ztp-site-generate 容器的 CR。不要在此处添加用户提供的 CR。如果要使用用户提供的 CR,您必须为其内容创建另一个目录。例如:

    example/
      ├── policygentemplates
      │   ├── kustomization.yaml
      │   └── source-crs/
      └── siteconfig
            ├── extra-manifests
            └── kustomization.yaml
  6. 提交目录结构和 kustomization.yaml 文件并推送到 Git 存储库。初始推送到 Git 的推送应包含 kustomization.yaml 文件。

您可以使用 out/argocd/example 下的目录结构作为 Git 存储库结构和内容的参考。该结构包括用于单节点、三节点和标准集群的 SiteConfigPolicyGenTemplate 引用 CR。删除您对未使用集群类型的引用。

对于所有集群类型,您必须:

  • source-crs 子目录添加到 policygentemplate 目录。
  • extra-manifests 目录添加到 siteconfig 目录中。

以下示例描述了单节点集群网络的一组 CR:

example/
  ├── policygentemplates
  │   ├── common-ranGen.yaml
  │   ├── example-sno-site.yaml
  │   ├── group-du-sno-ranGen.yaml
  │   ├── group-du-sno-validator-ranGen.yaml
  │   ├── kustomization.yaml
  │   ├── source-crs/
  │   └── ns.yaml
  └── siteconfig
        ├── example-sno.yaml
        ├── extra-manifests/ 1
        ├── custom-manifests/ 2
        ├── KlusterletAddonConfigOverride.yaml
        └── kustomization.yaml
1
包含 ztp-container 中的引用清单。
2
包含自定义清单。

2.9.1. 为独立版本准备 GitOps ZTP 站点配置存储库

您可以使用 GitOps ZTP 管理运行不同版本的 OpenShift Container Platform 的受管集群的源自定义资源(CR)。这意味着,在 hub 集群中运行的 OpenShift Container Platform 版本可以独立于受管集群上运行的版本。

流程

  1. 使用 SiteConfigPolicyGenTemplate CR 的单独路径创建一个目录结构。
  2. PolicyGenTemplate 目录中,为您要提供的每个 OpenShift Container Platform 版本创建一个目录。对于每个版本,创建以下资源:

    • 明确包含该目录中文件的 kustomization.yaml 文件
    • source-crs 目录,其中包含 ztp-site-generate 容器中的引用 CR 配置文件

      如果要使用用户提供的 CR,必须为它们创建一个单独的目录。

  3. /siteconfig 目录中,为您要提供的每个 OpenShift Container Platform 版本创建一个子目录。对于每个版本,至少创建一个目录,用于从容器中复制引用 CR。对目录命名或引用目录数量没有限制。如果要使用自定义清单,必须为它们创建单独的目录。

    以下示例描述了对不同 OpenShift Container Platform 版本使用用户提供的清单和 CR 的结构:

    ├── policygentemplates
    │   ├── kustomization.yaml 1
    │   ├── version_4.13 2
    │   │   ├── common-ranGen.yaml
    │   │   ├── group-du-sno-ranGen.yaml
    │   │   ├── group-du-sno-validator-ranGen.yaml
    │   │   ├── helix56-v413.yaml
    │   │   ├── kustomization.yaml 3
    │   │   ├── ns.yaml
    │   │   └── source-crs/ 4
    │   │      └── reference-crs/ 5
    │   │      └── custom-crs/ 6
    │   └── version_4.14 7
    │       ├── common-ranGen.yaml
    │       ├── group-du-sno-ranGen.yaml
    │       ├── group-du-sno-validator-ranGen.yaml
    │       ├── helix56-v414.yaml
    │       ├── kustomization.yaml 8
    │       ├── ns.yaml
    │       └── source-crs/ 9
    │         └── reference-crs/ 10
    │         └── custom-crs/ 11
    └── siteconfig
        ├── kustomization.yaml
        ├── version_4.13
        │   ├── helix56-v413.yaml
        │   ├── kustomization.yaml
        │   ├── extra-manifest/ 12
        │   └── custom-manifest/ 13
        └── version_4.14
            ├── helix57-v414.yaml
            ├── kustomization.yaml
            ├── extra-manifest/ 14
            └── custom-manifest/ 15
    1
    创建顶级 kustomization YAML 文件。
    2 7
    在自定义 /policygentemplates 目录中创建特定于版本的目录。
    3 8
    为每个版本创建一个 kustomization.yaml 文件。
    4 9
    为每个版本创建一个 source-crs 目录,使其包含 ztp-site-generate 容器中的引用 CR。
    5 10
    为从 ZTP 容器中提取的策略 CR 创建 reference-crs 目录。
    6 11
    可选:为用户提供的 CR 创建一个 custom-crs 目录。
    12 14
    在自定义 /siteconfig 目录中创建一个目录,使其包含 ztp-site-generate 容器的额外清单。
    13 15
    创建用于存放用户提供的清单的文件夹。
    注意

    在上例中,自定义 /siteconfig 目录中的每个版本子目录包含两个进一步的子目录,一个子目录包含从容器中复制的引用清单,另一个用于您提供的自定义清单。分配给这些目录的名称是示例。如果使用用户提供的 CR,则 SiteConfig CR 中的 extraManifests.searchPaths 下列出的最后一个目录必须是包含用户提供的 CR 的目录。

  4. 编辑 SiteConfig CR,使其包含您创建的任何目录的搜索路径。extraManifests.searchPaths 下列出的第一个目录必须是包含引用清单的目录。考虑列出目录的顺序。如果目录包含相同名称的文件,则最终目录中的文件将具有优先权。

    SiteConfig CR 示例

    extraManifests:
        searchPaths:
        - extra-manifest/ 1
        - custom-manifest/ 2

    1
    包含引用清单的目录必须首先列在 extraManifests.searchPaths 下。
    2
    如果您使用用户提供的 CR,则 SiteConfig CR 中的 extraManifests.searchPaths 下列出的最后一个目录必须是包含这些用户提供的 CR 的目录。
  5. 编辑顶级 kustomization.yaml 文件,以控制哪些 OpenShift Container Platform 版本处于活跃状态。以下是顶层的 kustomization.yaml 文件示例:

    resources:
    - version_4.13 1
    #- version_4.14 2
    1
    激活版本 4.13。
    2
    使用注释取消激活版本。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.