CNE AWS Ready: オーバーレイを使用したOSGiモジュールまたはクライアント拡張機能の追加
Cloud Native Experience (CNE) ツールキットは、オーバーレイを使用して標準的な Liferay デプロイメントをカスタマイズします。 カスタムファイル(OSGiモジュール、クライアント拡張機能、設定ファイル、サイト初期化子など)を専用のS3バケットにアップロードし、Pod起動時にそれらを適用するように環境を設定します。
このアプローチにより、カスタムのLiferayビルドが不要になり、標準コンテナの上に変更が適用され、GitOpsを通じて完全に管理されます。
CNEは、オーバーレイを介してOSGiモジュールまたはクライアント拡張機能をデプロイするための2つの方法をサポートしています。
-
手動 オーバーレイ: 場合によっては、モジュールを AWS のオーバーレイ バケットに直接アップロードし、GitOps 構成を手動で更新する必要があります。 このワークフローは、テスト、デバッグ、または単発のデプロイメントに役立ちます。
-
自動化された オーバーレイ: ブートストラップ プロセスと GitOps 同期により、リポジトリに変更がコミットされるたびにモジュールのデプロイが自動的に処理されます。 これは、ほとんどの運用環境において推奨されるアプローチです。
手動オーバーレイワークフロー(AWS UI)
-
オーバーレイバケットを探してください。
AWSコンソールで、お使いの環境に関連付けられているS3バケットを検索してください。 このバケットには、OSGiモジュールおよびクライアント拡張機能のオーバーレイが格納されます。
-
バケット内にオーバーレイリソースを保存するための最上位フォルダを作成し、そこにOSGiモジュール、クライアント拡張機能、または設定ファイルをアップロードしてください。
-
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 -
変更を確定してプッシュする。
Argo CDは環境を同期し、オーバーレイリソースをLiferayデプロイメントに適用します。
自動化されたオーバーレイワークフロー(GitOpsとCI)
-
オーバーレイバケットを探してください。
環境ネームスペースに切り替えます。
kubens liferay-[projectId]-[environmentId]オーバーレイバケットリソースを一覧表示して、S3バケット名を見つけます。
kubectl get buckets.s3.aws.m.upbound.io --selector component=overlayEXTERNAL-NAME列の値をコピーします。 これは、オーバーレイリソースを保存するために使用されるS3バケット名です。 -
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) -
カスタマイズを作成してアップロードする。
以下のGitHub Actionsシークレットを設定してください。
AWS_REGIONAWS_S3_BUCKET_NAMEAWS_ACCESS_KEY_IDAWS_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/ -
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を通じてオーバーレイ構成を管理する。
-
オーバーレイの展開状況を確認してください。
Liferayポッド内のinitコンテナログを確認してください。
kubectl logs liferay-default-0 -c liferay-overlayS3からPodにコピーされたファイルを示す行を探してください。
'/mnt/liferay/overlay/.../file.zip' -> '/temp/osgi/.../file.zip'注オーバーレイファイルは、ポッドの起動時に適用されます。 新しいオーバーレイコンテンツを適用するには、ポッドを再起動してください。