ノート:
- このチュートリアルでは、Oracle Cloudへのアクセス権が必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了したら、これらの値をクラウド環境に固有の値に置き換えてください。
ワークロード・アイデンティティを使用したArgo CDでのOracle Cloud Infrastructure Kubernetes Engineクラスタの管理
イントロダクション
Argo CDは、Kubernetes向けの宣言的なGitOps継続的デリバリ・ツールです。このチュートリアルが記述された時点では、Argo CDにはOracle Cloud Infrastructure Kubernetes Engine (OKE)のアクセス・トークンの生成に必要なOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)機能がないため、カスタムArgo CDイメージが必要です。
ノート:カスタム・イメージに使用されたベースArgo CDイメージは、
quay.io/argoproj/argocd:v2.14.9
です。
目的
-
OCI CLIを含むカスタムArgo CDイメージを作成します。
-
カスタム・イメージを使用して、拡張OKEクラスタにArgo CDをインストールします。
-
execProviderConfig
を使用して、基本的なOKEクラスタをArgo CDクラスタ・リストに追加します。 -
Argo CDから基本的なクラスタにアプリケーションをデプロイします。
前提条件
-
PodmanまたはDockerと
argocd
CLIをインストールします。 -
Argo CDをインストールするためのOKE拡張クラスタ。
ノート:ワークロード・アイデンティティは拡張クラスタにのみ使用できます。
-
Argo CDによって管理されるOKEクラスタ。
-
OCIユーザーの認証トークン(OCIコンソールから、ユーザー・プロファイルに移動して「認証トークン」をクリック)は、アクティブ化に最大5分かかる場合があります。
-
OCIユーザーがOCI Container Registryでリポジトリを作成する権限。
Allow group <your_group> to manage repos in tenancy
-
OKEクラスタを管理するためのArgo CDの権限。
allow any-user to manage all-resources in compartment <compartment_ocid> where all { request.principal.type='workload', request.principal.cluster_id = '<cluster_ocid>', request.principal.namespace = 'argocd', request.principal.service_account = 'argocd-application-controller' }
ノート:このポリシーはオープンすぎますが、必要に応じて制限できます。
- ポリシーの置換:
compartment_ocid
:これは、Argo CDで管理するクラスタを含むコンパートメントOCIDである必要があります。cluster_ocid
:これは、他のクラスタを管理するクラスタOCIDである必要があります。アルゴCDを持っている人。request.principal.namespace
:これは、Argo CDがデプロイされるネームスペースです。request.principal.service_account
:これは、Argo CDアプリケーション・コントローラ(クラスタ認証を担当するアプリケーション・コントローラ)のサービス・アカウントです。
- ポリシーの置換:
タスク1: OCIコンテナ・レジストリへのArgo CDカスタム・イメージのプッシュ
ノート: Podmanまたはdockerを使用できます。
-
Dockerfile
という名前のファイルをDockerfile
からダウンロードします。 -
次のコマンドを実行します
podman build --platform linux/amd64 -t argocd-oci:01 .
ノート:コマンドの最後にあるドット(.)は、Dockerfileが配置されている現在のディレクトリ用です。
-
次のコマンドを実行します
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
-
次のコマンドを実行します
podman login ocir.**your_region**.oci.oraclecloud.com
- ユーザー:
- アイデンティティ・ドメインを使用する場合:
your_tenancy_namespace
/OracleIdentityCloudService
/your_email
。 - デフォルトドメインが使用されている場合:
your_tenancy_namespace
/your_email
。
- アイデンティティ・ドメインを使用する場合:
- パスワードはOCI認証トークンです。
- ユーザー:
-
次のコマンドを実行します
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
タスク2: カスタム・イメージを使用したArgo CDのインストール
ノート:クラスタ認証を行うため、
argocd-application-controller
のイメージのみを更新します。
-
argo-CD/manifests/install.yamlからArgo CDマニフェストをダウンロードしてインストールします。
-
ファイルを編集して、
argocd-application-controller
のイメージを変更します。- イメージからの変更:
quay.io/argoproj/argocd:latest
- イメージ:
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- イメージからの変更:
-
次のコマンドを実行して、
argocd
ネームスペースを作成します。kubectl create namespace argocd
-
次のコマンドを実行して、
argocd
をデプロイします。kubectl apply -f install.yaml -n argocd
タスク3: Argo CDクラスタ・リストへのクラスタの追加
-
Argo CDを起動します。
ノート: OCIロード・バランサを使用してArgo CDを公開できます。この例では、かわりに
port-forward
が使用されます。このためには、ポート転送にのみ追加の端末が必要です。-
2つ目の端末で、次のコマンドを実行します。
kubectl port-forward service/argocd-server -n argocd 63265:80
ノート:この端末を閉じないでください。Argo CDを稼働状態に保つために使用されているため、前の端末に切り替えてください。
-
次のコマンドを使用して、Argo CD管理パスワードを取得します。
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
-
次のコマンドを使用してログインします(ユーザーはadmin、パスワードは前のコマンドのものです)。
argocd login 127.0.0.1:63265
-
-
add_cluster.yaml
という名前のファイルをadd_cluster.yamlからダウンロードして編集します。ノート:この例では、安全でないTLSを使用していますが、変更できます。
cluster_name
: Argo CDクラスタ・リストに表示されるクラスタの名前。cluster_api_endpoint
: Argo CDクラスタ・リストに追加するクラスタのエンドポイント。cluster_ocid
: Argo CDクラスタ・リストに追加するクラスタのOCID。region
:クラスタが存在するリージョン。
-
次のコマンドを使用して、ファイルを適用し、Argo CDクラスタ・リストにクラスタを追加します。
kubectl apply -f add_cluster.yaml
-
次のコマンドを使用して、クラスタがArgo CDクラスタ・リストに追加されたかどうかを確認します。
argocd cluster list
タスク4: Argo CDからクラスタへのアプリケーションのデプロイによるテスト
-
deploy_example.yaml
という名前のファイルをdeploy_example.yamlからダウンロードして編集します。cluster_name
:アプリケーションをデプロイするクラスタの名前。
-
次のコマンドを使用して、ファイルを適用して単純なアプリケーションをターゲット・クラスタにデプロイします。
kubectl apply -f deploy-example.yaml
-
次のコマンドを使用して、アプリケーションが正常にデプロイされたかどうかを確認します。
argocd app list argocd app sync guestbook
確認
- 作成者 - Gabriel Feodorov (シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36153-01
Copyright ©2025, Oracle and/or its affiliates.