10.3. GitOps ZTP 파이프라인에 사용자 정의 콘텐츠 추가
다음 절차에 따라 GitOps ZTP 파이프라인에 새 콘텐츠를 추가합니다.
프로세스
-
PolicyGenTemplate
CR(사용자 정의 리소스)에 대한kustomization.yaml
파일이 포함된 디렉터리에source-crs
라는 하위 디렉터리를 생성합니다. 다음 예와 같이 사용자 제공 CR을
source-crs
하위 디렉터리에 추가합니다.example └── policygentemplates ├── dev.yaml ├── kustomization.yaml ├── mec-edge-sno1.yaml ├── sno.yaml └── source-crs 1 ├── PaoCatalogSource.yaml ├── PaoSubscription.yaml ├── custom-crs | ├── apiserver-config.yaml | └── disable-nic-lldp.yaml └── elasticsearch ├── ElasticsearchNS.yaml └── ElasticsearchOperatorGroup.yaml
- 1
source-crs
하위 디렉터리는kustomization.yaml
파일과 동일한 디렉터리에 있어야 합니다.
source-crs/custom-crs
및source-crs/elasticsearch
디렉터리에 추가한 콘텐츠에 대한 참조를 포함하도록 필요한PolicyGenTemplate
CR을 업데이트합니다. 예를 들면 다음과 같습니다.apiVersion: ran.openshift.io/v1 kind: PolicyGenTemplate metadata: name: "group-dev" namespace: "ztp-clusters" spec: bindingRules: dev: "true" mcp: "master" sourceFiles: # These policies/CRs come from the internal container Image #Cluster Logging - fileName: ClusterLogNS.yaml remediationAction: inform policyName: "group-dev-cluster-log-ns" - fileName: ClusterLogOperGroup.yaml remediationAction: inform policyName: "group-dev-cluster-log-operator-group" - fileName: ClusterLogSubscription.yaml remediationAction: inform policyName: "group-dev-cluster-log-sub" #Local Storage Operator - fileName: StorageNS.yaml remediationAction: inform policyName: "group-dev-lso-ns" - fileName: StorageOperGroup.yaml remediationAction: inform policyName: "group-dev-lso-operator-group" - fileName: StorageSubscription.yaml remediationAction: inform policyName: "group-dev-lso-sub" #These are custom local polices that come from the source-crs directory in the git repo # Performance Addon Operator - fileName: PaoSubscriptionNS.yaml remediationAction: inform policyName: "group-dev-pao-ns" - fileName: PaoSubscriptionCatalogSource.yaml remediationAction: inform policyName: "group-dev-pao-cat-source" spec: image: <image_URL_here> - fileName: PaoSubscription.yaml remediationAction: inform policyName: "group-dev-pao-sub" #Elasticsearch Operator - fileName: elasticsearch/ElasticsearchNS.yaml 1 remediationAction: inform policyName: "group-dev-elasticsearch-ns" - fileName: elasticsearch/ElasticsearchOperatorGroup.yaml remediationAction: inform policyName: "group-dev-elasticsearch-operator-group" #Custom Resources - fileName: custom-crs/apiserver-config.yaml 2 remediationAction: inform policyName: "group-dev-apiserver-config" - fileName: custom-crs/disable-nic-lldp.yaml remediationAction: inform policyName: "group-dev-disable-nic-lldp"
-
Git에서
PolicyGenTemplate
변경 사항을 커밋한 다음 GitOps ZTP Argo CD 정책 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다. 변경된
PolicyGenTemplate
을 포함하도록ClusterGroupUpgrade
CR을 업데이트하고cgu-test.yaml
로 저장합니다. 다음 예제는 생성된cgu-test.yaml
파일을 보여줍니다.apiVersion: ran.openshift.io/v1alpha1 kind: ClusterGroupUpgrade metadata: name: custom-source-cr namespace: ztp-clusters spec: managedPolicies: - group-dev-config-policy enable: true clusters: - cluster1 remediationStrategy: maxConcurrency: 2 timeout: 240
다음 명령을 실행하여 업데이트된
ClusterGroupUpgrade
CR을 적용합니다.$ oc apply -f cgu-test.yaml
검증
다음 명령을 실행하여 업데이트가 성공했는지 확인합니다.
$ oc get cgu -A
출력 예
NAMESPACE NAME AGE STATE DETAILS ztp-clusters custom-source-cr 6s InProgress Remediating non-compliant policies ztp-install cluster1 19h Completed All clusters are compliant with all the managed policies