검색

2.9. GitOps ZTP 사이트 구성 리포지토리 준비

download PDF

GitOps ZTP(ZTP) 파이프라인을 사용하려면 사이트 구성 데이터를 호스팅하기 위해 Git 리포지토리를 준비해야 합니다.

사전 요구 사항

  • 필요한 설치 및 정책 CR(사용자 정의 리소스)을 생성하도록 Hub 클러스터 GitOps 애플리케이션을 구성했습니다.
  • GitOps ZTP를 사용하여 관리 클러스터를 배포했습니다.

프로세스

  1. SiteConfigPolicyGenTemplate CR에 대한 별도의 경로를 사용하여 디렉터리 구조를 생성합니다.

    참고

    site ConfigPolicyGenTemplate 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 이 RHACM(Red Hat Advanced Cluster Management) 정책을 생성하는 데 사용하는 소스 CR 파일이 포함되어 있습니다.
    • out/argocd/deployment 에는 이 절차의 다음 단계에서 사용할 허브 클러스터에 적용할 패치 및 YAML 파일이 포함되어 있습니다.
    • out/argocd/example 에는 권장 구성을 나타내는 SiteConfigPolicyGenTemplate 파일의 예가 포함되어 있습니다.
  4. out/source-crs 폴더 및 콘텐츠를 PolicyGentemplate 디렉터리에 복사합니다.
  5. out/extra-manifests 디렉터리에는 RAN DU 클러스터에 대한 참조 매니페스트가 포함되어 있습니다. out/extra-manifests 디렉터리를 site Config 폴더에 복사합니다. 이 디렉터리에는 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 리포지토리의 구조 및 콘텐츠에 대한 참조로 사용할 수 있습니다. 이러한 구조에는 단일 노드, 3-노드 및 표준 클러스터에 대한 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 파일
    • ztp-site-generate 컨테이너의 참조 CR 구성 파일을 포함하는 source-crs 디렉터리

      사용자 제공 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
    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이 포함된 디렉터리여야 합니다.

  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

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.