1.2. プルモデル用の任意の名前空間に Argo CD ApplicationSet リソースをデプロイする (テクノロジープレビュー)
Argo CD プルモデルを使用すると、ハブクラスターの任意の名前空間に ApplicationSet リソースを作成できます。
Argo CD ApplicationSet リソースを完全に管理するには、次のセクションを完了します。
必要なアクセス権: クラスター管理者
前提条件
- 管理対象クラスターを登録する手順を完了します。手順については、マネージドクラスターを Red Hat OpenShift GitOps オペレーターに登録するを 参照してください。
-
任意のカスタム名前空間で
ApplicationSetおよびApplicationリソースを有効にするための手順を完了します。手順については、任意の名前空間で ApplicationSet リソースを有効にする を参照してください。
1.2.1. 標準設定の ApplicationSet リソースの展開 リンクのコピーリンクがクリップボードにコピーされました!
ロールベースのアクセス制御 (RBAC) のサポートが制限されている場合は、標準設定の ApplicationSet リソースを展開することを推奨します。
シンプルな RBAC 管理のために、標準設定の ApplicationSet リソースを展開すると、次の利点が得られます。
- GitHub リポジトリーリソースでは名前空間が指定されていません。
-
ワークロード名前空間の宛先は、
アプリケーションテンプレートで指定されます。 -
ApplicationSetリソースは、デフォルトのAppProjectリソースを使用します。
標準設定の ApplicationSet リソースを展開するには、次の手順を実行します。
-
openshift-gitops名前空間で、Placementリソースを作成します。 次の YAML ファイルサンプルを追加して、デフォルトの
AppProjectリソースを使用して、appset-2名前空間にApplicationSetリソースを作成します。apiVersion: v1 kind: Namespace metadata: annotations: name: appset-2次のコマンドを実行して、YAML ファイルサンプルを適用します。
oc apply -f namespace-example.yaml次の 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: {}次のコマンドを実行して、YAML ファイルサンプルを適用します。
oc apply -f applicationset-example.yaml-
ApplicationSetリソースは、ハブクラスターのappset-2名前空間に作成されます。 -
アプリケーションリソースは、管理対象クラスターのappset-2名前空間にデプロイされます。 -
アプリケーションリソースは、マネージドクラスター上のHelloworld名前空間にワークロードをデプロイします。 -
デフォルトの Argo CD
AppProjectリソース設定が適用されます -
GitHub リポジトリーの指定されたパスで定義されているすべての
アプリケーションリソースは、名前空間固有ではありません。
-
1.2.2. 高度な設定のための ApplicationSet リソースの展開 リンクのコピーリンクがクリップボードにコピーされました!
ロールベースのアクセス制御 (RBAC) をサポートしている場合は、高度な設定のために ApplicationSet リソースを展開するオプションがあります。
より高度な RBAC 管理を備えた高度な設定のために ApplicationSet リソースを展開すると、次のような利点が得られます。
-
GitHub リポジトリーリソースで指定された
アプリケーションリソースのワークロード名前空間。 -
ApplicationSetリソースで指定されているワークロード名前空間の宛先は、GitHub リポジトリーと一致します。 -
ApplicationSetリソースは、RBAC 制御にカスタム Argo CDAppProjectリソースを使用します。
高度な設定の ApplicationSet リソースを展開するには、次の手順を実行します。
-
openshift-gitops名前空間で、Placementリソースを作成します。 次の YAML ファイルサンプルを追加して、カスタム
bgdkAppProjectリソースを使用してbgdk名前空間にApplicationSetリソースを作成します。apiVersion: v1 kind: Namespace metadata: annotations: name: bgdk次のコマンドを実行して、YAML ファイルサンプルを適用します。
oc apply -f namespace-example.yaml次の YAML ファイルサンプルを追加して、OpenShift GitOps 名前空間に
bgdkAppProjectリソース設定を設定します。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-
sourceNamespacesは、アプリケーション自体が作成される名前空間です。 -
sourceRepos は、アプリケーションテンプレートが使用するリポジトリーです。 -
destinations は、アプリケーションがワークロードをデプロイする名前空間です。 -
clusterResourceWhitelistは、アプリケーションがデプロイできるクラスタースコープのリソースリストです。このシナリオでは、アプリケーションが新しい名前空間を作成する必要があるため、この名前空間の種類は必須です。
-
次のコマンドを実行して、YAML ファイルサンプルを適用します。
oc apply -f appproject-example.yaml次の 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: {}次のコマンドを実行して、YAML ファイルサンプルを適用します。
oc apply -f applicationset-example.yaml
関連情報
ArgoCD ApplicationSet の詳細は、次のリソースを参照してください。