CNE AWS Ready: Configuring the Cloud Native Experience
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

CNE AWS Ready: オーバーレイを使用したOSGiモジュールまたはクライアント拡張機能の追加

Cloud Native Experience (CNE) ツールキットは、オーバーレイを使用して標準的な Liferay デプロイメントをカスタマイズします。 カスタムファイル(OSGiモジュール、クライアント拡張機能、設定ファイル、サイト初期化子など)を専用のS3バケットにアップロードし、Pod起動時にそれらを適用するように環境を設定します。

このアプローチにより、カスタムのLiferayビルドが不要になり、標準コンテナの上に変更が適用され、GitOpsを通じて完全に管理されます。

CNEは、オーバーレイを介してOSGiモジュールまたはクライアント拡張機能をデプロイするための2つの方法をサポートしています。

  1. 手動 オーバーレイ: 場合によっては、モジュールを AWS のオーバーレイ バケットに直接アップロードし、GitOps 構成を手動で更新する必要があります。 このワークフローは、テスト、デバッグ、または単発のデプロイメントに役立ちます。

  2. 自動化された オーバーレイ: ブートストラップ プロセスと GitOps 同期により、リポジトリに変更がコミットされるたびにモジュールのデプロイが自動的に処理されます。 これは、ほとんどの運用環境において推奨されるアプローチです。

手動オーバーレイワークフロー(AWS UI)

  1. オーバーレイバケットを探してください。

    AWSコンソールで、お使いの環境に関連付けられているS3バケットを検索してください。 このバケットには、OSGiモジュールおよびクライアント拡張機能のオーバーレイが格納されます。

  2. モジュールまたは拡張機能をアップロードしてください

    バケット内にオーバーレイリソースを保存するための最上位フォルダを作成し、そこにOSGiモジュール、クライアント拡張機能、または設定ファイルをアップロードしてください。

  3. GitOpsでオーバーレイを有効にする。

    環境固有の liferay.yamlで、オーバーレイセクションを設定して、バケットとリソースを参照するようにします。

    liferay-default:
       overlay:
          bucketName: gma-bstest1-overlay-able-dev-766749
          copy:
             - from: overlay_test_1/osgi/client-extensions/*
               into: osgi/client-extensions
          enabled: true
    
  4. 変更を確定してプッシュする。

Argo CDは環境を同期し、オーバーレイリソースをLiferayデプロイメントに適用します。

自動化されたオーバーレイワークフロー(GitOpsとCI)

  1. オーバーレイバケットを探してください。

    環境ネームスペースに切り替えます。

    kubens liferay-[projectId]-[environmentId]
    

    オーバーレイバケットリソースを一覧表示して、S3バケット名を見つけます。

    kubectl get buckets.s3.aws.m.upbound.io --selector component=overlay
    

    EXTERNAL-NAME 列の値をコピーします。 これは、オーバーレイリソースを保存するために使用されるS3バケット名です。

  2. CIアップローダーの認証情報を取得します。

    環境ネームスペースに切り替えます。

    kubens liferay-<projectId>-<environmentId>
    

    CIアップローダーユーザーを特定します。

    kubectl get users.iam.aws.m.upbound.io --selector aws.liferay.com/username
    

    アクセスキーを取得する:

    AWS_S3_ACCESS_KEY_ID=$(kubectl get secret <ci-uploader-secret> -o jsonpath='{.data.username}' | base64 -d)
    AWS_S3_ACCESS_KEY_SECRET=$(kubectl get secret <ci-uploader-secret> -o jsonpath='{.data.password}' | base64 -d)
    
  3. カスタマイズを作成してアップロードする。

    以下のGitHub Actionsシークレットを設定してください。

    • AWS_REGION
    • AWS_S3_BUCKET_NAME
    • AWS_ACCESS_KEY_ID
    • AWS_ACCESS_KEY_SECRET

    ワークフローの例:

    name: CNE Workspace Build
    
    on: [push]
    
    jobs:
       build:
          runs-on: ubuntu-latest
    
          steps:
             - uses: actions/checkout@v2
             - name: Set up JDK 11
               uses: actions/setup-java@v2
               with:
                  java-version: '11'
                  distribution: 'adopt'
             - name: Build with Gradle
               run: cd workspace/ && ./gradlew build deploy
             - name: Configure AWS Credentials
               uses: aws-actions/configure-aws-credentials@v1
               with:
                  aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
                  aws-secret-access-key: ${{ secrets.AWS_ACCESS_KEY_SECRET }}
                  aws-region: ${{ secrets.AWS_REGION }}
             - name: Upload customizations to S3 bucket
               run: |
                  aws s3 cp \
                     --recursive \
                     --region ${{ secrets.AWS_REGION }} \
                     workspace/bundles/osgi/ \
                     s3://${{ secrets.AWS_S3_BUCKET_NAME }}/workspace_build_${{ github.run_number }}/osgi/
    
  4. GitOpsでオーバーレイを有効にする。

    環境固有の liferay.yaml (liferay/<projectId>/<environmentId>/liferay.yaml) で、アップロードされたアーティファクトを使用するようにオーバーレイを設定します。

    liferay-default:
       overlay:
          bucketName: <overlay-bucket-name>
          copy:
             - from: "workspace_build_<build-number>/osgi/client-extensions/*"
               into: osgi/client-extensions
          enabled: true
    
    ヒント

    YAML の解析の問題を避けるため、パス から を常に引用符で囲みます。たとえば、 workspace_build_1/osgi/client-extensions/*のように記述します。

    変更内容をコミットして、GitOpsリポジトリにプッシュしてください。 Argo CDは環境を同期し、オーバーレイ構成を適用します。

    各ビルドは、以前の成果物を上書きしないように、固有のフォルダを使用します。 オーバーレイは、initコンテナを介してPodの起動時に適用されます。 GitOpsを通じてオーバーレイ構成を管理する。

  5. オーバーレイの展開状況を確認してください。

    Liferayポッド内のinitコンテナログを確認してください。

    kubectl logs liferay-default-0 -c liferay-overlay
    

    S3からPodにコピーされたファイルを示す行を探してください。

    '/mnt/liferay/overlay/.../file.zip' -> '/temp/osgi/.../file.zip'
    

    オーバーレイファイルは、ポッドの起動時に適用されます。 新しいオーバーレイコンテンツを適用するには、ポッドを再起動してください。