2.9. GitOps ZTP 사이트 구성 리포지토리 준비
GitOps ZTP(ZTP) 파이프라인을 사용하려면 사이트 구성 데이터를 호스팅하기 위해 Git 리포지토리를 준비해야 합니다.
사전 요구 사항
- 필요한 설치 및 정책 CR(사용자 정의 리소스)을 생성하도록 Hub 클러스터 GitOps 애플리케이션을 구성했습니다.
- GitOps ZTP를 사용하여 관리 클러스터를 배포했습니다.
프로세스
SiteConfig
및PolicyGenTemplate
CR에 대한 별도의 경로를 사용하여 디렉터리 구조를 생성합니다.참고site
Config
및PolicyGenTemplate
CR을 별도의 디렉터리에 보관합니다.SiteConfig
및PolicyGenTemplate
디렉터리에는 둘 다 해당 디렉터리에 파일을 명시적으로 포함하는kustomization.yaml
파일이 포함되어야 합니다.다음 명령을 사용하여
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
out
디렉터리에 다음 하위 디렉터리가 포함되어 있는지 확인합니다.-
out/extra-manifest
에는SiteConfig
에서 추가 매니페스트configMap
을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다. -
Out/source-crs
에는PolicyGenTemplate
이 RHACM(Red Hat Advanced Cluster Management) 정책을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다. -
out/argocd/deployment
에는 이 절차의 다음 단계에서 사용할 허브 클러스터에 적용할 패치 및 YAML 파일이 포함되어 있습니다. -
out/argocd/example
에는 권장 구성을 나타내는SiteConfig
및PolicyGenTemplate
파일의 예가 포함되어 있습니다.
-
-
out/source-crs
폴더 및 콘텐츠를PolicyGentemplate
디렉터리에 복사합니다. 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
-
디렉터리 구조와
kustomization.yaml
파일을 커밋하고 Git 리포지토리로 내보냅니다. Git으로의 초기 내보내기에는kustomization.yaml
파일이 포함되어야 합니다.
out/argocd/example
아래의 디렉터리 구조를 Git 리포지토리의 구조 및 콘텐츠에 대한 참조로 사용할 수 있습니다. 이러한 구조에는 단일 노드, 3-노드 및 표준 클러스터에 대한 SiteConfig
및 PolicyGenTemplate
참조 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
2.9.1. 버전 독립성을 위한 GitOps ZTP 사이트 구성 리포지토리 준비
GitOps ZTP를 사용하여 다른 버전의 OpenShift Container Platform을 실행하는 관리 클러스터의 소스 CR(사용자 정의 리소스)을 관리할 수 있습니다. 즉, hub 클러스터에서 실행되는 OpenShift Container Platform 버전은 관리 클러스터에서 실행되는 버전과 독립적일 수 있습니다.
프로세스
-
SiteConfig
및PolicyGenTemplate
CR에 대한 별도의 경로를 사용하여 디렉터리 구조를 생성합니다. PolicyGenTemplate
디렉터리 내에서 사용할 각 OpenShift Container Platform 버전에 대한 디렉터리를 생성합니다. 각 버전에 다음 리소스를 생성합니다.-
해당 디렉터리에 파일을 명시적으로 포함하는
kustomization.yaml
파일 ztp-site-generate
컨테이너의 참조 CR 구성 파일을 포함하는source-crs
디렉터리사용자 제공 CR을 사용하려면 이를 위해 별도의 디렉터리를 생성해야 합니다.
-
해당 디렉터리에 파일을 명시적으로 포함하는
/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
ztp-site-generate
컨테이너의 참조 CR을 포함하도록 각 버전의source-crs
디렉터리를 생성합니다.- 5 10
- ZTP 컨테이너에서 추출된 정책 CR에 대한
reference-crs
디렉터리를 생성합니다. - 6 11
- 선택 사항: 사용자 제공 CR에 대한 사용자
정의
CR 디렉터리를 생성합니다. - 12 14
- 사용자 지정
/siteconfig
디렉터리에 디렉터리를 생성하여ztp-site-generate
컨테이너의 추가 매니페스트를 포함합니다. - 13 15
- 사용자 제공 매니페스트를 저장할 폴더를 생성합니다.
참고이전 예에서 사용자 지정
/siteconfig
디렉터리의 각 버전 하위 디렉터리에는 컨테이너에서 복사한 참조 매니페스트가 포함된 두 개의 하위 디렉터리가 있으며, 다른 하나는 사용자가 제공하는 사용자 정의 매니페스트를 위한 것입니다. 해당 디렉터리에 할당된 이름은 예입니다. 사용자 제공 CR을 사용하는 경우SiteConfig
CR의extraManifests.searchPaths
아래에 나열된 마지막 디렉터리는 사용자 제공 CR이 포함된 디렉터리여야 합니다.생성한 디렉터리의 검색 경로를 포함하도록
SiteConfig
CR을 편집합니다.extraManifests.searchPaths
아래에 나열된 첫 번째 디렉터리는 참조 매니페스트가 포함된 디렉터리여야 합니다. 디렉터리가 나열되는 순서를 고려하십시오. 디렉터리에 이름이 같은 파일이 포함된 경우 최종 디렉터리의 파일이 우선합니다.siteConfig CR의 예
extraManifests: searchPaths: - extra-manifest/ 1 - custom-manifest/ 2
최상위
kustomization.yaml
파일을 편집하여 활성 상태인 OpenShift Container Platform 버전을 제어합니다. 다음은 최상위 수준의kustomization.yaml
파일의 예입니다.resources: - version_4.13 1 #- version_4.14 2