1.2. プルモデル用の任意の名前空間に Argo CD ApplicationSet リソースをデプロイする (テクノロジープレビュー)


Argo CD プルモデルを使用すると、ハブクラスターの任意の名前空間に ApplicationSet リソースを作成できます。

Argo CD ApplicationSet リソースを完全に管理するには、次のセクションを完了します。

必要なアクセス権: クラスター管理者

前提条件

1.2.1. 標準設定の ApplicationSet リソースの展開

ロールベースのアクセス制御 (RBAC) のサポートが制限されている場合は、標準設定の ApplicationSet リソースを展開することを推奨します。

シンプルな RBAC 管理のために、標準設定の ApplicationSet リソースを展開すると、次の利点が得られます。

  • GitHub リポジトリーリソースでは名前空間が指定されていません。
  • ワークロード名前空間の宛先は、アプリケーション テンプレートで指定されます。
  • ApplicationSet リソースは、デフォルトの AppProject リソースを使用します。

標準設定の ApplicationSet リソースを展開するには、次の手順を実行します。

  1. openshift-gitops 名前空間で、Placement リソースを作成します。
  2. 次の YAML ファイルサンプルを追加して、デフォルトの AppProject リソースを使用して、appset-2 名前空間に ApplicationSet リソースを作成します。

    apiVersion: v1
    kind: Namespace
    metadata:
      annotations:
      name: appset-2
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、YAML ファイルサンプルを適用します。

    oc apply -f namespace-example.yaml
    Copy to Clipboard Toggle word wrap
  4. 次の YAML ファイルサンプルを追加して、デフォルトの AppProject リソースを使用して、appset-2 名前空間に ApplicationSet リソースを作成します。

    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    metadata:
      name: helloworld
      namespace: appset-2
    spec:
      generators:
      - clusterDecisionResource:
          configMapRef: acm-placement
          labelSelector:
            matchLabels:
              cluster.open-cluster-management.io/placement: all-openshift-clusters
          requeueAfterSeconds: 30
      template:
        metadata:
          annotations:
            apps.open-cluster-management.io/ocm-managed-cluster: '{{name}}'
            argocd.argoproj.io/skip-reconcile: "true"
          labels:
            apps.open-cluster-management.io/pull-to-ocm-managed-cluster: "true"
          name: '{{name}}-helloworld'
        spec:
          destination:
            namespace: helloworld
            server: https://kubernetes.default.svc
          project: default
          source:
            path: helloworld
            repoURL: https://github.com/stolostron/application-samples.git
            targetRevision: HEAD
          syncPolicy:
            automated: {}
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、YAML ファイルサンプルを適用します。

    oc apply -f applicationset-example.yaml
    Copy to Clipboard Toggle word wrap
    • ApplicationSet リソースは、ハブクラスターの appset-2 名前空間に作成されます。
    • アプリケーション リソースは、管理対象クラスターの appset-2 名前空間にデプロイされます。
    • アプリケーション リソースは、マネージドクラスター上の Helloworld 名前空間にワークロードをデプロイします。
    • デフォルトの Argo CD AppProject リソース設定が適用されます
    • GitHub リポジトリーの指定されたパスで定義されているすべての アプリケーション リソースは、名前空間固有ではありません。

1.2.2. 高度な設定のための ApplicationSet リソースの展開

ロールベースのアクセス制御 (RBAC) をサポートしている場合は、高度な設定のために ApplicationSet リソースを展開するオプションがあります。

より高度な RBAC 管理を備えた高度な設定のために ApplicationSet リソースを展開すると、次のような利点が得られます。

  • GitHub リポジトリーリソースで指定された アプリケーション リソースのワークロード名前空間。
  • ApplicationSet リソースで指定されているワークロード名前空間の宛先は、GitHub リポジトリーと一致します。
  • ApplicationSet リソースは、RBAC 制御にカスタム Argo CD AppProject リソースを使用します。

高度な設定の ApplicationSet リソースを展開するには、次の手順を実行します。

  1. openshift-gitops 名前空間で、Placement リソースを作成します。
  2. 次の YAML ファイルサンプルを追加して、カスタム bgdk AppProject リソースを使用して bgdk 名前空間に ApplicationSet リソースを作成します。

    apiVersion: v1
    kind: Namespace
    metadata:
      annotations:
      name: bgdk
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、YAML ファイルサンプルを適用します。

    oc apply -f namespace-example.yaml
    Copy to Clipboard Toggle word wrap
  4. 次の YAML ファイルサンプルを追加して、OpenShift GitOps 名前空間に bgdk AppProject リソース設定を設定します。

    apiVersion: argoproj.io/v1alpha1
    kind: AppProject
    metadata:
      name: bgdk
      namespace: openshift-gitops
    spec:
      sourceNamespaces:
      - bgdk
      sourceRepos:
      - https://github.com/redhat-developer-demos/openshift-gitops-examples.git
      destinations:
      - namespace: bgdk
        server: https://kubernetes.default.svc
      clusterResourceWhitelist:
      - group: ''
        kind: Namespace
    Copy to Clipboard Toggle word wrap
    • sourceNamespaces は、アプリケーション 自体が作成される名前空間です。
    • sourceRepos はアプリケーション テンプレートが使用するリポジトリーです。
    • destinations はアプリケーションが ワークロードをデプロイする名前空間です。
    • clusterResourceWhitelist は、アプリケーション がデプロイできるクラスタースコープのリソースリストです。このシナリオでは、アプリケーションが 新しい名前空間を作成する必要があるため、この名前空間の種類は必須です。
  5. 次のコマンドを実行して、YAML ファイルサンプルを適用します。

    oc apply -f appproject-example.yaml
    Copy to Clipboard Toggle word wrap
  6. 次の YAML ファイルサンプルを追加して、カスタマイズされた Argo CD AppProject リソース設定を ApplicationSet リソースに適用します。

    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    metadata:
      name: bgdk-2
      namespace: bgdk
    spec:
      generators:
      - clusterDecisionResource:
          configMapRef: acm-placement
          labelSelector:
            matchLabels:
              cluster.open-cluster-management.io/placement: all-openshift-clusters
          requeueAfterSeconds: 30
      template:
        metadata:
          annotations:
            apps.open-cluster-management.io/ocm-managed-cluster: '{{name}}'
            argocd.argoproj.io/skip-reconcile: "true"
          labels:
            apps.open-cluster-management.io/pull-to-ocm-managed-cluster: "true"
          name: '{{name}}-bgdk'
        spec:
          destination:
            namespace: bgdk
            server: https://kubernetes.default.svc
          project: bgdk
          source:
            path: apps/bgd/overlays/bgdk
            repoURL: https://github.com/redhat-developer-demos/openshift-gitops-examples.git
            targetRevision: HEAD
          syncPolicy:
            automated: {}
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行して、YAML ファイルサンプルを適用します。

    oc apply -f applicationset-example.yaml
    Copy to Clipboard Toggle word wrap

関連情報

ArgoCD ApplicationSet の詳細は、次のリソースを参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat