ワークロード・アイデンティティを使用したArgoCDでのOracle Cloud Infrastructure Kubernetes Engineクラスタの管理

はじめに

ArgoCDは、Kubernetes向けの宣言的なGitOps継続的デリバリ・ツールです。このチュートリアルが記述された時点では、ArgoCDにはOracle Cloud Infrastructure Kubernetes Engine (OKE)のアクセス・トークンを生成するために必要なOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)機能がないため、カスタムのArgoCDイメージが必要です。

ノート:カスタム・イメージに使用されたベースArgoCDイメージは、quay.io/argoproj/argocd:v3.1.1です。

目的

前提条件

タスク1: ArgoCDカスタム・イメージをOCIコンテナ・レジストリにプッシュする

ノート: Podmanまたはdockerを使用できます。

  1. 次を含むDockerfileを作成します。

    FROM quay.io/argoproj/argocd:v3.1.1
    
    USER root
    
    
    RUN apt-get update; \
        apt-get install -y --no-install-recommends python3-venv; \
        python3 -m venv /opt/oci; \
        /opt/oci/bin/pip install --no-cache-dir --upgrade pip; \
        /opt/oci/bin/pip install --no-cache-dir "oci-cli==3.65.0"; \
        ln -s /opt/oci/bin/oci /usr/local/bin/oci; \
        apt-get clean; \
        rm -rf /var/lib/apt/lists/*
    
    USER 999
  2. 'Dockerfile'を含むフォルダ内で次のコマンドを実行します。

    podman build --platform linux/amd64 -t argocd-oci:01 .

    ノート:コマンドの最後にあるドット(.)は、Dockerfileが配置されている現在のディレクトリ用です。

  3. 次のコマンドを実行します

    podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
  4. 次のコマンドを実行します

    podman login ocir.**your_region**.oci.oraclecloud.com
    • ユーザー:
      • アイデンティティ・ドメインを使用する場合: your_tenancy_namespace/OracleIdentityCloudService/your_email
      • デフォルトドメインが使用されている場合: your_tenancy_namespace/your_email
    • パスワードはOCI認証トークンです。
  5. 次のコマンドを実行します

    podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01

タスク2: カスタム・イメージを使用したArgoCDのインストール

  1. argo-cd/manifests/install.yamlからArgoCDマニフェストをダウンロードしてインストールします。

  2. ファイルを編集して、ArgoCDイメージをカスタム・イメージに置換します。

    • イメージからの変更: quay.io/argoproj/argocd
    • イメージ: ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
  3. 次のコマンドを実行して、argocdネームスペースを作成します。

    kubectl create namespace argocd
  4. 次のコマンドを実行して、argocdをデプロイします。

    kubectl apply -f install.yaml -n argocd

タスク3: クラスタをArgoCDクラスタ・リストに追加する

  1. ArgoCDを起動します。

    ノート: OCIロード・バランサを使用してArgoCDを公開できます。この例では、かわりにport-forwardが使用されます。ポート転送にのみ追加の端末を使用します。

    1. 2つ目の端末で、次のコマンドを実行します。

      kubectl port-forward service/argocd-server -n argocd 63265:80

      ノート:この端末を閉じないでください。ArgoCDを稼働状態に保つために使用されているため、前の端末に切り替えてください。

    2. 次のコマンドを使用して、ArgoCD管理パスワードを取得します。

      kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
    3. 次のコマンドを使用してログインします(ユーザーはadmin、パスワードは前のコマンドのものです)。

      argocd login 127.0.0.1:63265
  2. add_cluster.yamlという名前のファイルをadd_cluster.yamlからダウンロードして編集します。

    ノート:この例では、安全でないTLSを使用していますが、変更できます。

    • cluster_name: ArgoCDクラスタ・リストに表示されるクラスタの名前。
    • cluster_api_endpoint: ArgoCDクラスタ・リストに追加するクラスタのエンドポイント。
    • cluster_ocid: ArgoCDクラスタ・リストに追加するクラスタのOCID。
    • region:クラスタが存在するリージョン。
  3. 次のコマンドを使用して、ファイルを適用し、ArgoCDクラスタ・リストにクラスタを追加します。

    kubectl apply -f add_cluster.yaml
  4. 次のコマンドを使用して、クラスタがArgoCDクラスタ・リストに追加されたかどうかを確認します。

    argocd cluster list

タスク4: ArgoCDからクラスタへのアプリケーションのデプロイによるテスト

  1. deploy_example.yamlという名前のファイルをdeploy_example.yamlからダウンロードして編集します。

    • cluster_name:アプリケーションをデプロイするクラスタの名前。
  2. 次のコマンドを使用して、ファイルを適用して単純なアプリケーションをターゲット・クラスタにデプロイします。

    kubectl apply -f deploy-example.yaml
  3. 次のコマンドを使用して、アプリケーションが正常にデプロイされたかどうかを確認します。

    argocd app list
    argocd app sync guestbook

確認

その他の学習リソース

docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。