13.5. ClusterGroupUpgrade CR 정보

TALM(토폴로지 라이프사이클 관리자)은 클러스터 그룹의 ClusterGroupUpgrade CR에서 수정 계획을 빌드합니다. ClusterGroupUpgrade CR에서 다음 사양을 정의할 수 있습니다.

  • 그룹의 클러스터
  • ClusterGroupUpgrade CR 차단
  • 적용 가능한 관리 정책 목록
  • 동시 업데이트 수
  • 적용 가능한 카나리아 업데이트
  • 업데이트 전과 후에 수행할 작업
  • 업데이트 타이밍

ClusterGroupUpgrade CR의 enable 필드를 사용하여 업데이트 시작 시간을 제어할 수 있습니다. 예를 들어 예약된 유지 관리 기간이 4시간이면 enable 필드를 false 로 설정하여 ClusterGroupUpgrade CR을 준비할 수 있습니다.

spec.remediationStrategy.timeout 설정을 다음과 같이 구성하여 타임아웃을 설정할 수 있습니다.

spec
  remediationStrategy:
          maxConcurrency: 1
          timeout: 240

batchTimeoutAction 을 사용하여 클러스터에 대한 업데이트가 실패하는 경우 발생하는 상황을 확인할 수 있습니다. 오류가 발생한 클러스터를 계속 건너뛰고 다른 클러스터를 계속 업그레이드하거나 모든 클러스터에 대한 정책 수정을 중지하도록 중단할 수 있습니다. 제한 시간이 경과하면 TALM은 클러스터에 대한 추가 업데이트가 발생하지 않도록 모든 적용 정책을 제거합니다.

변경 사항을 적용하려면 enabled 필드를 true 로 설정합니다.

자세한 내용은 "관리된 클러스터에 업데이트 정책 적용" 섹션을 참조하십시오.

TALM은 지정된 클러스터에 대한 정책 수정을 통해 작동하므로 ClusterGroupUpgrade CR은 여러 조건에 대해 true 또는 false 상태를 보고할 수 있습니다.

참고

TALM이 클러스터 업데이트를 완료한 후에는 동일한 ClusterGroupUpgrade CR의 제어 하에서 클러스터가 다시 업데이트되지 않습니다. 다음 경우 새 ClusterGroupUpgrade CR을 생성해야 합니다.

  • 클러스터를 다시 업데이트해야 하는 경우
  • 클러스터가 업데이트 후 알림 정책과 호환되는 비준 수로 변경되는 경우

13.5.1. 클러스터 선택

TALM은 수정 계획을 빌드하고 다음 필드에 따라 클러스터를 선택합니다.

  • clusterLabelSelector 필드는 업데이트하려는 클러스터의 레이블을 지정합니다. k8s.io/apimachinery/pkg/apis/meta/v1 의 표준 라벨 선택기 목록으로 구성됩니다. 목록의 각 선택기는 레이블 값 쌍 또는 레이블 표현식을 사용합니다. 각 선택기의 일치는 clusterSelector 필드 및 cluster 필드의 일치 항목과 함께 최종 클러스터 목록에 추가됩니다.
  • cluster 필드는 업데이트할 클러스터 목록을 지정합니다.
  • canaries 필드는 카나리아 업데이트의 클러스터를 지정합니다.
  • maxConcurrency 필드는 배치에서 업데이트할 클러스터 수를 지정합니다.

clusterLabelSelector , clusterSelector 필드를 함께 사용하여 결합된 클러스터 목록을 생성할 수 있습니다.

수정 계획은 카나리아 필드에 나열된 클러스터에서 시작됩니다. 각 카나리아 클러스터는 단일 클러스터 배치를 형성합니다.

enabled 필드false로 설정된 샘플 ClusterGroupUpgrade CR

apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
  creationTimestamp: '2022-11-18T16:27:15Z'
  finalizers:
    - ran.openshift.io/cleanup-finalizer
  generation: 1
  name: talm-cgu
  namespace: talm-namespace
  resourceVersion: '40451823'
  uid: cca245a5-4bca-45fa-89c0-aa6af81a596c
Spec:
  actions:
    afterCompletion:
      deleteObjects: true
    beforeEnable: {}
  backup: false
  clusters: 1
    - spoke1
  enable: false 2
  managedPolicies: 3
    - talm-policy
  preCaching: false
  remediationStrategy: 4
    canaries: 5
        - spoke1
    maxConcurrency: 2 6
    timeout: 240
  clusterLabelSelectors: 7
    - matchExpressions:
      - key: label1
      operator: In
      values:
        - value1a
        - value1b
  batchTimeoutAction: 8
status: 9
    computedMaxConcurrency: 2
    conditions:
      - lastTransitionTime: '2022-11-18T16:27:15Z'
        message: All selected clusters are valid
        reason: ClusterSelectionCompleted
        status: 'True'
        type: ClustersSelected 10
      - lastTransitionTime: '2022-11-18T16:27:15Z'
        message: Completed validation
        reason: ValidationCompleted
        status: 'True'
        type: Validated 11
      - lastTransitionTime: '2022-11-18T16:37:16Z'
        message: Not enabled
        reason: NotEnabled
        status: 'False'
        type: Progressing
    managedPoliciesForUpgrade:
      - name: talm-policy
        namespace: talm-namespace
    managedPoliciesNs:
      talm-policy: talm-namespace
    remediationPlan:
      - - spoke1
      - - spoke2
        - spoke3
    status:

1
업데이트할 클러스터 목록을 정의합니다.
2
enable 필드는 false 로 설정됩니다.
3
수정할 사용자 정의 정책 집합을 나열합니다.
4
클러스터 업데이트의 세부 사항을 정의합니다.
5
카나리아 업데이트의 클러스터를 정의합니다.
6
일괄 처리의 최대 동시 업데이트 수를 정의합니다. 수정 배치 수는 maxConcurrency 값으로 나눈 카나리아 클러스터 수와 카나리아 클러스터를 제외한 클러스터 수입니다. 모든 관리 정책을 이미 준수하는 클러스터는 수정 계획에서 제외됩니다.
7
클러스터 선택을 위한 매개변수를 표시합니다.
8
일괄 처리 시간이 초과될 때 발생하는 작업을 제어합니다. 가능한 값은 중단 되거나 계속됩니다. 지정하지 않는 경우 기본값은 continue 입니다.
9
업데이트 상태에 대한 정보를 표시합니다.
10
ClustersSelected 조건은 선택한 모든 클러스터가 유효하다는 것을 보여줍니다.
11
Validated 조건은 선택한 모든 클러스터의 유효성을 검사합니다.
참고

카나리아 클러스터를 업데이트하는 동안 오류가 발생하면 업데이트 프로세스가 중단됩니다.

수정 계획을 성공적으로 생성하면 enable 필드를 true 로 설정하고 TALM이 지정된 관리 정책을 사용하여 비준수 클러스터를 업데이트하기 시작할 수 있습니다.

참고

ClusterGroupUpgrade CR의 enable 필드가 false 로 설정된 경우에만 spec 필드를 변경할 수 있습니다.

13.5.2. 검증

TALM은 지정된 모든 관리 정책이 사용 가능하고 올바르며 Validated 조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.

  • true

    검증이 완료되었습니다.

  • false

    정책이 누락되거나 유효하지 않거나 잘못된 플랫폼 이미지가 지정되어 있습니다.

13.5.3. 사전 캐싱

클러스터는 컨테이너 이미지 레지스트리에 액세스하기 위해 대역폭이 제한되어 업데이트 완료 전에 타임아웃이 발생할 수 있습니다. 단일 노드 OpenShift 클러스터에서는 사전 캐싱을 사용하여 이러한 문제를 방지할 수 있습니다. preCaching 필드가 true 로 설정된 ClusterGroupUpgrade CR을 생성할 때 컨테이너 이미지 사전 캐싱이 시작됩니다.

TALM은 PrecacheSpecValid 조건을 사용하여 다음과 같이 상태 정보를 보고합니다.

  • true

    사전 캐싱 사양이 유효하고 일관되게 유지됩니다.

  • false

    사전 캐싱 사양이 불완전합니다.

TALM은 PrecachingSucceeded 조건을 사용하여 다음과 같이 상태 정보를 보고합니다.

  • true

    TALM은 사전 캐싱 프로세스를 발표했습니다. 클러스터에 대한 사전 캐싱이 실패하면 해당 클러스터에 대한 업데이트가 실패하지만 다른 모든 클러스터를 진행합니다. 클러스터에 대한 사전 캐싱이 실패한 경우 메시지가 표시됩니다.

  • false

    하나 이상의 클러스터에 대한 사전 캐싱이 여전히 진행 중이거나 모든 클러스터에서 실패했습니다.

자세한 내용은 "컨테이너 이미지 사전 캐시 기능 사용" 섹션을 참조하십시오.

13.5.4. 백업 생성

단일 노드 OpenShift의 경우 TALM은 업데이트하기 전에 배포 백업을 생성할 수 있습니다. 업데이트에 실패하면 애플리케이션을 다시 프로비저닝하지 않고도 이전 버전을 복구하고 클러스터를 작동 상태로 복원할 수 있습니다. 백업 기능을 사용하려면 먼저 backup 필드가 true 로 설정된 ClusterGroupUpgrade CR을 생성합니다. 백업 내용이 최신 상태인지 확인하기 위해 ClusterGroupUpgrade CR의 enable 필드를 true 로 설정할 때까지 백업이 수행되지 않습니다.

TALM은 BackupSucceeded 조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.

  • true

    모든 클러스터에 대한 백업이 완료되었거나 백업 실행이 완료되지만 하나 이상의 클러스터에는 실패했습니다. 클러스터에 대한 백업이 실패하면 해당 클러스터에 대한 업데이트가 실패하지만 다른 모든 클러스터를 진행합니다.

  • false

    하나 이상의 클러스터에 대한 백업이 여전히 진행 중이거나 모든 클러스터에 대해 실패했습니다.

자세한 내용은 "업그레이드 전에 클러스터 리소스의 백업 생성" 섹션을 참조하십시오.

13.5.5. 클러스터 업데이트

TALM은 수정 계획에 따라 정책을 적용합니다. 후속 배치에 대한 정책은 현재 배치의 모든 클러스터가 모든 관리 정책을 준수하는 직후 시작됩니다. 배치 시간이 초과되면 TALM은 다음 배치로 이동합니다. 배치의 시간 초과 값은 spec.timeout 필드이며 수정 계획의 배치 수로 나뉩니다.

TALM은 Progressing 조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.

  • true

    TALM은 비준수 정책을 수정하고 있습니다.

  • false

    업데이트가 진행되지 않았습니다. 가능한 이유는 다음과 같습니다.

    • 모든 클러스터는 모든 관리 정책을 준수합니다.
    • 정책 수정이 너무 오래 걸리는 경우 업데이트 시간이 초과되었습니다.
    • 시스템에서 차단 CR이 누락되었거나 아직 완료되지 않았습니다.
    • ClusterGroupUpgrade CR이 활성화되지 않습니다.
    • 백업이 아직 진행 중입니다.
참고

관리 정책은 ClusterGroupUpgrade CR의 managedPolicies 필드에 나열된 순서대로 적용됩니다. 하나의 관리형 정책이 한 번에 지정된 클러스터에 적용됩니다. 클러스터가 현재 정책을 준수하면 다음 관리 정책이 적용됩니다.

진행 상태의 샘플 ClusterGroupUpgrade CR

apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
  creationTimestamp: '2022-11-18T16:27:15Z'
  finalizers:
    - ran.openshift.io/cleanup-finalizer
  generation: 1
  name: talm-cgu
  namespace: talm-namespace
  resourceVersion: '40451823'
  uid: cca245a5-4bca-45fa-89c0-aa6af81a596c
Spec:
  actions:
    afterCompletion:
      deleteObjects: true
    beforeEnable: {}
  backup: false
  clusters:
    - spoke1
  enable: true
  managedPolicies:
    - talm-policy
  preCaching: true
  remediationStrategy:
    canaries:
        - spoke1
    maxConcurrency: 2
    timeout: 240
  clusterLabelSelectors:
    - matchExpressions:
      - key: label1
      operator: In
      values:
        - value1a
        - value1b
  batchTimeoutAction:
status:
    clusters:
      - name: spoke1
        state: complete
    computedMaxConcurrency: 2
    conditions:
      - lastTransitionTime: '2022-11-18T16:27:15Z'
        message: All selected clusters are valid
        reason: ClusterSelectionCompleted
        status: 'True'
        type: ClustersSelected
      - lastTransitionTime: '2022-11-18T16:27:15Z'
        message: Completed validation
        reason: ValidationCompleted
        status: 'True'
        type: Validated
      - lastTransitionTime: '2022-11-18T16:37:16Z'
        message: Remediating non-compliant policies
        reason: InProgress
        status: 'True'
        type: Progressing 1
    managedPoliciesForUpgrade:
      - name: talm-policy
        namespace: talm-namespace
    managedPoliciesNs:
      talm-policy: talm-namespace
    remediationPlan:
      - - spoke1
      - - spoke2
        - spoke3
    status:
      currentBatch: 2
      currentBatchRemediationProgress:
        spoke2:
          state: Completed
        spoke3:
          policyIndex: 0
          state: InProgress
      currentBatchStartedAt: '2022-11-18T16:27:16Z'
      startedAt: '2022-11-18T16:27:15Z'

1
진행 필드는 TALM이 정책을 수정하는 과정에 있음을 보여줍니다.

13.5.6. 업데이트 상태

TALM은 Succeeded 조건을 사용하여 다음과 같이 상태 및 이유를 보고합니다.

  • true

    모든 클러스터는 지정된 관리 정책을 준수합니다.

  • false

    업데이트 적용에 사용할 수 있는 클러스터가 없거나 다음과 같은 이유 중 하나로 인해 정책 수정이 너무 오래 걸리기 때문에 정책 수정이 실패했습니다.

    • 현재 일괄 처리에는 카나리아 업데이트가 포함되어 있으며 일괄 처리의 클러스터가 배치 제한 시간 내의 모든 관리 정책을 준수하지는 않습니다.
    • 클러스터는 remediationStrategy 필드에 지정된 타임아웃 값 내의 관리 정책을 준수하지 않았습니다.

Succeeded 상태의 샘플 ClusterGroupUpgrade CR

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-upgrade-complete
      namespace: default
    spec:
      clusters:
      - spoke1
      - spoke4
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status: 1
      clusters:
        - name: spoke1
          state: complete
        - name: spoke4
          state: complete
      conditions:
      - message: All selected clusters are valid
        reason: ClusterSelectionCompleted
        status: "True"
        type: ClustersSelected
      - message: Completed validation
        reason: ValidationCompleted
        status: "True"
        type: Validated
      - message: All clusters are compliant with all the managed policies
        reason: Completed
        status: "False"
        type: Progressing 2
      - message: All clusters are compliant with all the managed policies
        reason: Completed
        status: "True"
        type: Succeeded 3
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      remediationPlan:
      - - spoke1
      - - spoke4
      status:
        completedAt: '2022-11-18T16:27:16Z'
        startedAt: '2022-11-18T16:27:15Z'

2
업데이트가 완료되면 Progressing 필드에서 상태가 false 입니다. 클러스터는 모든 관리 정책을 준수합니다.
3
Succeeded 필드에는 검증이 성공적으로 완료된 것으로 표시됩니다.
1
status 필드에는 클러스터 목록과 해당 상태가 포함됩니다. 클러스터의 상태는 완료 되거나 타임아웃 될 수 있습니다.

시간 초과 상태의 샘플 ClusterGroupUpgrade CR

apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
  creationTimestamp: '2022-11-18T16:27:15Z'
  finalizers:
    - ran.openshift.io/cleanup-finalizer
  generation: 1
  name: talm-cgu
  namespace: talm-namespace
  resourceVersion: '40451823'
  uid: cca245a5-4bca-45fa-89c0-aa6af81a596c
spec:
  actions:
    afterCompletion:
      deleteObjects: true
    beforeEnable: {}
  backup: false
  clusters:
    - spoke1
    - spoke2
  enable: true
  managedPolicies:
    - talm-policy
  preCaching: false
  remediationStrategy:
    maxConcurrency: 2
    timeout: 240
status:
  clusters:
    - name: spoke1
      state: complete
    - currentPolicy: 1
        name: talm-policy
        status: NonCompliant
      name: spoke2
      state: timedout
  computedMaxConcurrency: 2
  conditions:
    - lastTransitionTime: '2022-11-18T16:27:15Z'
      message: All selected clusters are valid
      reason: ClusterSelectionCompleted
      status: 'True'
      type: ClustersSelected
    - lastTransitionTime: '2022-11-18T16:27:15Z'
      message: Completed validation
      reason: ValidationCompleted
      status: 'True'
      type: Validated
    - lastTransitionTime: '2022-11-18T16:37:16Z'
      message: Policy remediation took too long
      reason: TimedOut
      status: 'False'
      type: Progressing
    - lastTransitionTime: '2022-11-18T16:37:16Z'
      message: Policy remediation took too long
      reason: TimedOut
      status: 'False'
      type: Succeeded 2
  managedPoliciesForUpgrade:
    - name: talm-policy
      namespace: talm-namespace
  managedPoliciesNs:
    talm-policy: talm-namespace
  remediationPlan:
    - - spoke1
      - spoke2
  status:
        startedAt: '2022-11-18T16:27:15Z'
        completedAt: '2022-11-18T20:27:15Z'

1
클러스터 상태가 시간 초과된 경우 currentPolicy 필드에 정책 이름과 정책 상태가 표시됩니다.
2
성공의 상태는 false 이고, 이 메시지는 정책 수정에 시간이 너무 오래 걸리는 것을 나타냅니다.

13.5.7. ClusterGroupUpgrade CR 차단

여러 ClusterGroupUpgrade CR을 생성하고 애플리케이션 순서를 제어할 수 있습니다.

예를 들어 ClusterGroupUpgrade CR A의 시작을 차단하는 ClusterGroupUpgrade CR C를 생성하는 경우 ClusterGroupUpgrade CR C가 UpgradeComplete 가 될 때까지 ClusterGroupUpgrade CR A를 시작할 수 없습니다.

하나의 ClusterGroupUpgrade CR에는 여러 차단 CR이 있을 수 있습니다. 이 경우 현재 CR에 대한 업그레이드를 시작하기 전에 모든 차단 CR을 완료해야 합니다.

사전 요구 사항

  • Topology Aware Lifecycle Manager (TALM)를 설치합니다.
  • 하나 이상의 관리 클러스터를 프로비저닝합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • hub 클러스터에서 RHACM 정책을 생성합니다.

절차

  1. ClusterGroupUpgrade CR의 내용을 cgu-a.yaml,cgu-b.yaml, cgu-c.yaml 파일에 저장합니다.

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-a
      namespace: default
    spec:
      blockingCRs: 1
      - name: cgu-c
        namespace: default
      clusters:
      - spoke1
      - spoke2
      - spoke3
      enable: false
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      remediationStrategy:
        canaries:
        - spoke1
        maxConcurrency: 2
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR is not enabled
        reason: UpgradeNotStarted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      placementBindings:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      placementRules:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      remediationPlan:
      - - spoke1
      - - spoke2
    1
    차단 CR을 정의합니다. cgu-a 업데이트는 cgu-c 가 완료될 때까지 시작할 수 없습니다.
    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-b
      namespace: default
    spec:
      blockingCRs: 1
      - name: cgu-a
        namespace: default
      clusters:
      - spoke4
      - spoke5
      enable: false
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR is not enabled
        reason: UpgradeNotStarted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke4
      - - spoke5
      status: {}
    1
    cgu-b 업데이트는 cgu-a 가 완료될 때까지 시작할 수 없습니다.
    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-c
      namespace: default
    spec: 1
      clusters:
      - spoke6
      enable: false
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR is not enabled
        reason: UpgradeNotStarted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      managedPoliciesCompliantBeforeUpgrade:
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke6
      status: {}
    1
    cgu-c 업데이트에는 차단 CR이 없습니다. TALM은 enable 필드가 true 로 설정된 경우 cgu-c 업데이트를 시작합니다.
  2. 각 관련 CR에 대해 다음 명령을 실행하여 ClusterGroupUpgrade CR을 생성합니다.

    $ oc apply -f <name>.yaml
  3. 각 관련 CR에 대해 다음 명령을 실행하여 업데이트 프로세스를 시작합니다.

    $ oc --namespace=default patch clustergroupupgrade.ran.openshift.io/<name> \
    --type merge -p '{"spec":{"enable":true}}'

    다음 예제에서는 enable 필드가 true 로 설정된 ClusterGroupUpgrade CR을 보여줍니다.

    CR을 차단하는 cgu-a 의 예

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-a
      namespace: default
    spec:
      blockingCRs:
      - name: cgu-c
        namespace: default
      clusters:
      - spoke1
      - spoke2
      - spoke3
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      remediationStrategy:
        canaries:
        - spoke1
        maxConcurrency: 2
        timeout: 240
    status:
      conditions:
      - message: 'The ClusterGroupUpgrade CR is blocked by other CRs that have not yet
          completed: [cgu-c]' 1
        reason: UpgradeCannotStart
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      placementBindings:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      placementRules:
      - cgu-a-policy1-common-cluster-version-policy
      - cgu-a-policy2-common-pao-sub-policy
      - cgu-a-policy3-common-ptp-sub-policy
      remediationPlan:
      - - spoke1
      - - spoke2
      status: {}

    1
    차단 CR 목록을 표시합니다.

    CR을 차단하는 cgu-b 의 예

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-b
      namespace: default
    spec:
      blockingCRs:
      - name: cgu-a
        namespace: default
      clusters:
      - spoke4
      - spoke5
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: 'The ClusterGroupUpgrade CR is blocked by other CRs that have not yet
          completed: [cgu-a]' 1
        reason: UpgradeCannotStart
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy2-common-pao-sub-policy
        namespace: default
      - name: policy3-common-ptp-sub-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-b-policy1-common-cluster-version-policy
      - cgu-b-policy2-common-pao-sub-policy
      - cgu-b-policy3-common-ptp-sub-policy
      - cgu-b-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke4
      - - spoke5
      status: {}

    1
    차단 CR 목록을 표시합니다.

    CR을 차단하는 cgu-c 의 예

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: cgu-c
      namespace: default
    spec:
      clusters:
      - spoke6
      enable: true
      managedPolicies:
      - policy1-common-cluster-version-policy
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      - policy4-common-sriov-sub-policy
      remediationStrategy:
        maxConcurrency: 1
        timeout: 240
    status:
      conditions:
      - message: The ClusterGroupUpgrade CR has upgrade policies that are still non compliant 1
        reason: UpgradeNotCompleted
        status: "False"
        type: Ready
      copiedPolicies:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      managedPoliciesCompliantBeforeUpgrade:
      - policy2-common-pao-sub-policy
      - policy3-common-ptp-sub-policy
      managedPoliciesForUpgrade:
      - name: policy1-common-cluster-version-policy
        namespace: default
      - name: policy4-common-sriov-sub-policy
        namespace: default
      placementBindings:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      placementRules:
      - cgu-c-policy1-common-cluster-version-policy
      - cgu-c-policy4-common-sriov-sub-policy
      remediationPlan:
      - - spoke6
      status:
        currentBatch: 1
        remediationPlanForBatch:
          spoke6: 0

    1
    cgu-c 업데이트에는 차단 CR이 없습니다.