Menu Close

18.16.2.2. ZTP를 위한 허브 클러스터 준비

제로 터치 프로비저닝(ZTP) GitOps 플로우를 기반으로 각 사이트에 필요한 설치 및 정책 CR(사용자 정의 리소스)을 생성하는 ArgoCD 애플리케이션 세트로 허브 클러스터를 구성할 수 있습니다.

절차

  1. hub 클러스터에 Red Hat OpenShift GitOps Operator를 설치합니다.
  2. ArgoCD의 관리자 암호를 추출합니다.

    $ oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d
  3. ArgoCD 파이프라인 구성을 준비합니다.

    1. 최신 컨테이너 이미지 버전을 사용하여 ZTP 사이트 생성기 컨테이너에서 ArgoCD 배포 CR을 추출합니다.

      $ mkdir ztp
      $ podman run --rm -v `pwd`/ztp:/mnt/ztp:Z registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.9.0-1 /bin/bash -c "cp -ar /usr/src/hook/ztp/* /mnt/ztp/"

      이 섹션의 나머지 단계는 ztp/gitops-subscriptions/argocd/ 디렉터리와 관련이 있습니다.

    2. 두 ArgoCD 애플리케이션, deployment /clusters-app.yaml 및 deployment/policies- app.yaml 의 소스 값을 적절한 URL, targetRevision 분기 및 경로 값으로 수정합니다. 경로 값은 Git 리포지토리에 사용된 값과 일치해야 합니다.

      deployment/clusters-app.yaml 수정 :

      apiVersion: v1
      kind: Namespace
      metadata:
           name: clusters-sub
      ---
      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
           name: clusters
           namespace: openshift-gitops
      spec:
          destination:
               server: https://kubernetes.default.svc
               namespace: clusters-sub
        project: default
        source:
            path: ztp/gitops-subscriptions/argocd/resource-hook-example/siteconfig 1
            repoURL: https://github.com/openshift-kni/cnf-features-deploy 2
            targetRevision: master 3
        syncPolicy:
            automated:
                prune: true
                selfHeal: true
             syncOptions:
             - CreateNamespace=true
      1
      path 는 클러스터의 siteconfig CR을 포함하는 ztp/gitops-subscriptions/argocd/ 파일 경로입니다.
      2
      repoURL 은 클러스터 설치를 위한 사이트 구성을 정의하는 siteconfig 사용자 지정 리소스가 포함된 Git 리포지토리의 URL입니다.
      3
      targetRevision 은 관련 사이트 구성 데이터가 포함된 Git 리포지토리의 분기입니다.
    3. deployment/policies-app.yaml 수정 :

      apiVersion: v1
      kind: Namespace
      metadata:
                name: policies-sub
      ---
      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
            name: policies
            namespace: openshift-gitops
      spec:
        destination:
              server: https://kubernetes.default.svc
              namespace: policies-sub
        project: default
        source:
             directory:
                 recurse: true
              path: ztp/gitops-subscriptions/argocd/resource-hook-example/policygentemplates 1
              repoURL: https://github.com/openshift-kni/cnf-features-deploy 2
              targetRevision: master 3
        syncPolicy:
            automated:
                prune: true
                selfHeal: true
             syncOptions:
             - CreateNamespace=true
      1
      path 는 클러스터의 policygentemplates CR을 포함하는 ztp/gitops-subscriptions/argocd/ 파일 경로입니다.
      2
      repoURL 은 사이트의 구성 데이터를 지정하는 policygentemplates 사용자 정의 리소스가 포함된 Git 리포지토리의 URL입니다.
      3
      targetRevision 은 관련 구성 데이터가 포함된 Git 리포지토리의 분기입니다.
  4. 허브 클러스터에 파이프라인 구성을 적용하려면 다음 명령을 입력합니다.

    $ oc apply -k ./deployment