siteconfig
├── site1-sno-du.yaml
├── site2-standard-du.yaml
├── extra-manifest/
└── custom-manifest
└── 01-example-machine-config.yaml
您可以使用SiteConfig
自定义资源(CR)在安装时在托管集群中部署自定义功能和配置。
您可以定义一组额外的清单,以便在GitOps零触摸配置(ZTP)管道的安装阶段包含。这些清单与SiteConfig
自定义资源(CR)链接,并在安装期间应用于集群。在安装时包含MachineConfig
CR可以提高安装效率。
创建一个Git仓库,在其中管理您的自定义站点配置数据。该仓库必须可以从hub集群访问,并被定义为Argo CD应用程序的源仓库。
创建一组额外的清单CR,GitOps ZTP管道使用它们来自定义集群安装。
在自定义的/siteconfig
目录中,为您的额外清单创建一个子目录/custom-manifest
。以下示例说明了包含/custom-manifest
文件夹的示例/siteconfig
siteconfig
├── site1-sno-du.yaml
├── site2-standard-du.yaml
├── extra-manifest/
└── custom-manifest
└── 01-example-machine-config.yaml
文中多次用到的子目录名 |
将您自定义的额外清单 CR 添加到siteconfig/custom-manifest
目录。
在您的SiteConfig
CR 中,输入extraManifests.searchPaths
字段中的目录名,例如
clusters:
- clusterName: "example-sno"
networkType: "OVNKubernetes"
extraManifests:
searchPaths:
- extra-manifest/ (1)
- custom-manifest/ (2)
1 | 从ztp-site-generate 容器复制清单的文件夹。 |
2 | 自定义清单的文件夹。 |
保存SiteConfig
、/extra-manifest
和/custom-manifest
CR,并将它们推送到站点配置仓库。
在集群配置过程中,GitOps ZTP 管道会将/custom-manifest
目录中的 CR 追加到存储在extra-manifest/
中的默认额外清单集。
从 4.14 版本开始, 虽然仍然支持 如果您在 强烈建议您提取 |
通过使用过滤器,您可以轻松自定义SiteConfig
自定义资源 (CR),以包含或排除其他 CR 用于 GitOps 零接触配置 (ZTP) 管道的安装阶段。
您可以为SiteConfig
CR 指定inclusionDefault
值为include
或exclude
,以及您想要包含或排除的特定extraManifest
RAN CR 列表。将inclusionDefault
设置为include
会使 GitOps ZTP 管道在安装期间应用/source-crs/extra-manifest
中的所有文件。将inclusionDefault
设置为exclude
则相反。
您可以排除默认情况下包含的/source-crs/extra-manifest
文件夹中的单个 CR。以下示例配置自定义单节点 OpenShift SiteConfig
CR,以在安装时排除/source-crs/extra-manifest/03-sctp-machine-config-worker.yaml
CR。
还描述了一些其他可选的过滤场景。
您已配置中心集群以生成所需的安装和策略 CR。
您已创建了一个 Git 仓库,您可以在其中管理自定义站点配置数据。该仓库必须可从中心集群访问,并定义为 Argo CD 应用的源仓库。
要阻止 GitOps ZTP 管道应用03-sctp-machine-config-worker.yaml
CR 文件,请在SiteConfig
CR 中应用以下 YAML
apiVersion: ran.openshift.io/v1
kind: SiteConfig
metadata:
name: "site1-sno-du"
namespace: "site1-sno-du"
spec:
baseDomain: "example.com"
pullSecretRef:
name: "assisted-deployment-pull-secret"
clusterImageSetNameRef: "openshift-4.17"
sshPublicKey: "<ssh_public_key>"
clusters:
- clusterName: "site1-sno-du"
extraManifests:
filter:
exclude:
- 03-sctp-machine-config-worker.yaml
GitOps ZTP 管道在安装期间跳过03-sctp-machine-config-worker.yaml
CR。/source-crs/extra-manifest
中的所有其他 CR 都将被应用。
保存SiteConfig
CR 并将更改推送到站点配置仓库。
GitOps ZTP 管道根据SiteConfig
过滤器指令监控和调整它应用的 CR。
可选:要阻止 GitOps ZTP 管道在集群安装期间应用所有/source-crs/extra-manifest
CR,请在SiteConfig
CR 中应用以下 YAML
- clusterName: "site1-sno-du"
extraManifests:
filter:
inclusionDefault: exclude
可选:要排除所有/source-crs/extra-manifest
RAN CR,并在安装期间包含自定义 CR 文件,请编辑自定义SiteConfig
CR 以设置自定义清单文件夹和include
文件,例如
clusters:
- clusterName: "site1-sno-du"
extraManifestPath: "<custom_manifest_folder>" (1)
extraManifests:
filter:
inclusionDefault: exclude (2)
include:
- custom-sctp-machine-config-worker.yaml
1 | 将<custom_manifest_folder> 替换为包含自定义安装 CR 的文件夹的名称,例如user-custom-manifest/ 。 |
2 | 将inclusionDefault 设置为exclude 以阻止 GitOps ZTP 管道在安装期间应用/source-crs/extra-manifest 中的文件。 |
以下示例说明了自定义文件夹结构
siteconfig
├── site1-sno-du.yaml
└── user-custom-manifest
└── custom-sctp-machine-config-worker.yaml
使用SiteConfig
自定义资源 (CR),您可以删除和重新配置节点。此方法比手动删除节点更有效。
您已配置中心集群以生成所需的安装和策略 CR。
您已创建了一个 Git 仓库,您可以在其中管理自定义站点配置数据。该仓库必须可从中心集群访问,并定义为 Argo CD 应用的源仓库。
更新SiteConfig
CR 以包含bmac.agent-install.openshift.io/remove-agent-and-node-on-delete=true
注释,并将更改推送到 Git 仓库
apiVersion: ran.openshift.io/v1
kind: SiteConfig
metadata:
name: "cnfdf20"
namespace: "cnfdf20"
spec:
clusters:
nodes:
- hostname: node6
role: "worker"
crAnnotations:
add:
BareMetalHost:
bmac.agent-install.openshift.io/remove-agent-and-node-on-delete: true
# ...
通过运行以下命令验证BareMetalHost
对象是否已添加注释
oc get bmh -n <managed-cluster-namespace> <bmh-object> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'
true
通过更新SiteConfig
CR 以包含crSuppression.BareMetalHost
注释来抑制BareMetalHost
CR 的生成
apiVersion: ran.openshift.io/v1
kind: SiteConfig
metadata:
name: "cnfdf20"
namespace: "cnfdf20"
spec:
clusters:
- nodes:
- hostName: node6
role: "worker"
crSuppression:
- BareMetalHost
# ...
将更改推送到 Git 仓库并等待取消配置开始。BareMetalHost
CR 的状态应更改为deprovisioning
。等待BareMetalHost
完成取消配置并完全删除。
通过运行以下命令验证工作节点的BareMetalHost
和Agent
CR 是否已从中心集群中删除
$ oc get bmh -n <cluster-ns>
$ oc get agent -n <cluster-ns>
通过运行以下命令验证节点记录是否已从 spoke 集群中删除
$ oc get nodes
如果您正在使用密钥,过早删除密钥可能会导致问题,因为 ArgoCD 需要密钥才能在删除后完成重新同步。只有在节点清理完成且当前 ArgoCD 同步完成后,才能删除密钥。 |
要重新配置节点,请删除之前添加到SiteConfig
的更改,将更改推送到 Git 仓库,然后等待同步完成。这将重新生成工作节点的BareMetalHost
CR 并触发节点的重新安装。