16.2.2.4. GitOps ZTP を使用した OADP Operator のインストールと設定


アップグレードを開始する前に、GitOps ZTP を使用して OADP Operator をインストールして設定します。

手順

  1. ztp-site-generate コンテナーイメージから次の CR を抽出し、source-cr ディレクトリーにプッシュします。

    OadpSubscriptionNS.yaml ファイルの例:

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-adp
      annotations:
        ran.openshift.io/ztp-deploy-wave: "2"
      labels:
        kubernetes.io/metadata.name: openshift-adp

    OadpSubscriptionOperGroup.yaml ファイルの例:

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: redhat-oadp-operator
      namespace: openshift-adp
      annotations:
        ran.openshift.io/ztp-deploy-wave: "2"
    spec:
      targetNamespaces:
      - openshift-adp

    OadpSubscription.yaml ファイルの例:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: redhat-oadp-operator
      namespace: openshift-adp
      annotations:
        ran.openshift.io/ztp-deploy-wave: "2"
    spec:
      channel: stable-1.4
      name: redhat-oadp-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      installPlanApproval: Manual
    status:
      state: AtLatestKnown

    OadpOperatorStatus.yaml ファイルの例:

    apiVersion: operators.coreos.com/v1
    kind: Operator
    metadata:
      name: redhat-oadp-operator.openshift-adp
      annotations:
        ran.openshift.io/ztp-deploy-wave: "2"
    status:
      components:
        refs:
        - kind: Subscription
          namespace: openshift-adp
          conditions:
          - type: CatalogSourcesUnhealthy
            status: "False"
        - kind: InstallPlan
          namespace: openshift-adp
          conditions:
          - type: Installed
            status: "True"
        - kind: ClusterServiceVersion
          namespace: openshift-adp
          conditions:
          - type: Succeeded
            status: "True"
            reason: InstallSucceeded

    ディレクトリー構造の例:

    ├── kustomization.yaml
    ├── sno
    │   ├── example-cnf.yaml
    │   ├── ran-common.yaml
    │   ├── ran-group-du-sno-templated.yaml
    │   ├── ran-group-du-sno-validator.yaml
    │   └── ns.yaml
    ├── source-crs
    │   ├── OadpSubscriptionNS.yaml
    │   ├── OadpSubscriptionOperGroup.yaml
    │   ├── OadpSubscription.yaml
    │   ├── OadpOperatorStatus.yaml
  2. 共通の PolicyGenerator CR に CR を追加します。

    apiVersion: policy.open-cluster-management.io/v1
    kind: PolicyGenerator
    metadata:
        name: common-latest
    placementBindingDefaults:
        name: common-latest-placement-binding
    policyDefaults:
        namespace: ztp-common
        placement:
            labelSelector:
              common: "true"
              du-profile: "latest"
        remediationAction: inform
        severity: low
        evaluationInterval:
            compliant: 10m
            noncompliant: 10s
    policies:
        - name: subscriptions-policy
          policyAnnotations:
            ran.openshift.io/ztp-deploy-wave: "2"
          manifests:
            - path: source-crs/data-protection/OadpSubscriptionNS.yaml
            - path: source-crs/data-protection/OadpSubscriptionOperGroup.yaml
            - path: source-crs/data-protection/OadpSubscription.yaml
            - path: source-crs/data-protection/OadpOperatorStatus.yaml
    [...]
  3. ターゲットクラスター専用の DataProtectionApplication CR と S3 シークレットを作成します。

    1. ztp-site-generate コンテナーイメージから次の CR を抽出し、source-cr ディレクトリーにプッシュします。

      OadpDataProtectionApplication.yaml ファイルの例:

      apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        name: dataprotectionapplication
        namespace: openshift-adp
        annotations:
          ran.openshift.io/ztp-deploy-wave: "100"
      spec:
        configuration:
          restic:
            enable: false
          velero:
            defaultPlugins:
              - aws
              - openshift
            resourceTimeout: 10m
        backupLocations:
          - velero:
              config:
                profile: "default"
                region: minio
                s3Url: $url
                insecureSkipTLSVerify: "true"
                s3ForcePathStyle: "true"
              provider: aws
              default: true
              credential:
                key: cloud
                name: cloud-credentials
              objectStorage:
                bucket: $bucketName
                prefix: $prefixName
      status:
        conditions:
        - reason: Complete
          status: "True"
          type: Reconciled
      • 永続ボリュームの内容はアップグレード後に保持され、再利用されるため、イメージベースアップグレードでは spec.configuration.restic.enable を false に設定する必要があります。
      • bucket は、S3 バックエンドで作成されるバケット名を定義します。prefix は、バケット内に自動的に作成されるサブディレクトリーの名前を定義します。バケットと接頭辞の組み合わせは、それらの間の干渉を避けるために、各ターゲットクラスターごとに一意である必要があります。各ターゲットクラスターに一意のストレージディレクトリーを確保するには、Red Hat Advanced Cluster Management のハブテンプレート機能を使用できます (例: prefix: {{hub .ManagedClusterName hub}})。

      OadpSecret.yaml ファイルの例:

      apiVersion: v1
      kind: Secret
      metadata:
        name: cloud-credentials
        namespace: openshift-adp
        annotations:
          ran.openshift.io/ztp-deploy-wave: "100"
      type: Opaque

      OadpBackupStorageLocationStatus.yaml ファイルの例:

      apiVersion: velero.io/v1
      kind: BackupStorageLocation
      metadata:
        name: dataprotectionapplication-1
        namespace: openshift-adp
        annotations:
          ran.openshift.io/ztp-deploy-wave: "100"
      status:
        phase: Available

      BackupStorageLocation リソースの name の値は、対応する DataProtectionApplication リソースと一致する特定の命名規則に従う必要があります。

      • 名前は、<DataProtectionApplication.metadata.name>-<index> のパターンを使用する必要があります。
      • <index> は、DataProtectionApplication リソースの spec.backupLocations フィールド内の対応するエントリーの位置を表します。位置は 1 から始まります。
      • OadpDataProtectionApplication.yaml ファイルで DataProtectionApplication リソースの metadata.name の値を変更する場合は、BackupStorageLocation リソースの metadata.name フィールドも新しい値に合わせて更新する必要があります。

      OadpBackupStorageLocationStatus.yaml CR は、OADP によって作成されたバックアップストレージの場所の可用性を確認します。

    2. オーバーライド付きの ポリシー生成 CR をサイトに追加します。

      apiVersion: policy.open-cluster-management.io/v1
      kind: PolicyGenerator
      metadata:
          name: example-cnf
      placementBindingDefaults:
          name: example-cnf-placement-binding
      policyDefaults:
          namespace: ztp-site
          placement:
              labelSelector:
                  matchExpressions:
                      - key: sites
                        operator: In
                        values:
                          - example-cnf
                      - key: du-profile
                        operator: In
                        values:
                          - latest
          remediationAction: inform
          severity: low
          evaluationInterval:
              compliant: 10m
              noncompliant: 10s
      policies:
          - name: oadp-config-policy
            policyAnnotations:
              ran.openshift.io/ztp-deploy-wave: "100"
            manifests:
              ...
              - path: source-crs/data-protection/OadpSecret.yaml
                patches:
                  - data:
                      cloud: <your_credentials>
              - path: source-crs/data-protection/OadpDataProtectionApplication.yaml
                patches:
                  - spec:
                      backupLocations:
                        - velero:
                            config:
                              region: minio
                              s3Url: <your_S3_URL>
                              profile: "default"
                              insecureSkipTLSVerify: "true"
                              s3ForcePathStyle: "true"
                            provider: aws
                            default: true
                            credential:
                              key: cloud
                              name: cloud-credentials
                            objectStorage:
                              bucket: ibu
                              prefix: '{{hub .ManagedClusterName hub}}'
              - path: source-crs/data-protection/OadpBackupStorageLocationStatus.yaml

      各項目の説明:

      your_credentials
      S3 ストレージバックエンドの認証情報を指定します。
      OadpDataProtectionApplication.yaml
      OadpDataProtectionApplication CR に複数の backupLocations エントリーが定義されている場合は、ステータス追跡のために、対応する OadpBackupStorageLocation CR がそれぞれの場所に追加されていることを確認します。追加の各 OadpBackupStorageLocation CR の名前が、OadpBackupStorageLocationStatus.yaml ファイルの例で説明されている正しいインデックスでオーバーライドされていることを確認してください。
      your_S3_URL
      S3 互換バケットの URL を指定します。
      bucket と prefix
      bucket は、S3 バックエンドで作成されるバケット名を定義します。たとえば、ibu です。prefix は、bucket 内に自動的に作成されるサブディレクトリーの名前を定義します。bucket と prefix の組み合わせは、それらの間の干渉を避けるために、各ターゲットクラスターごとに一意である必要があります。各ターゲットクラスターに固有のストレージディレクトリーを確保するには、例に示すように、Red Hat Advanced Cluster Management のハブテンプレート機能を使用できます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る