tosin2013.quarkus_cafe_demo_role

ドキュメント

完全なドキュメントはGitHubページサイトでご覧ください: quarkuscoffeeshop.github.io

QuarkusCoffeeshop インストール

注意: Ansibleをインストールする必要があります。詳細はここを参照してください: https://docs.ansible.com/ansible/latest/installation_guide/index.html

QuarkusCoffeeshop Ansibleロールは、コーヒーショップのマイクロサービス、Crunchy PostgreSQLデータベース、AMQ Streams(Kafka)の基本的なインストールを行います。

QuarkusCoffeeshopロールは、Quarkus、AMQ Streams(Kafka)、MongoDBで作成されたイベント駆動のデモアプリケーションを展開します。このアプリケーションはOpenShift(Kubernetes)にデプロイされます。ソースコードは quarkuscoffeeshop アプリケーションのサポートドキュメントもここで見つかります: こちら

要件

  • OpenShift 4.12 以上のクラスターがインストールされていること
  • Docker または podman

現在のテスト環境

  • OpenShift 4.12.2
  • OpenShift Pipelines: 1.9.0
  • AMQ Streams: 2.3.0-0odm
  • Postgres Operator: v5.3.0
  • OpenShift Quay: v3.8.1
  • OpenShift GitOps: v1.7.1

クイックスタート

標準デプロイメント用の環境変数を設定

このコマンドは、以下のサービスを持つ単一クラスターにアプリケーションをデプロイします。

  • AMQ Streams
  • Postgres Operator 設定
  • quarkus coffeeshop helm デプロイ
$ cat >source.env<<EOF
CLUSTER_DOMAIN_NAME=clustername.example.com
TOKEN=sha256~XXXXXXXXXXXX
ACM_WORKLOADS=n
AMQ_STREAMS=y
CONFIGURE_POSTGRES=y
MONGODB_OPERATOR=n
MONGODB=n
HELM_DEPLOYMENT=y
DELETE_DEPLOYMENT=false
DEBUG=-v
EOF
$ podman run -it --env-file=./source.env quay.io/quarkuscoffeeshop/quarkuscoffeeshop-ansible:v4.12.1

ACM WORKLOADSのための環境変数を設定

  • Gogsサーバー
  • OpenShift Pipelines
  • OpenShift GitOps
  • Quay.io
  • AMQ Streams
  • Postgresテンプレートデプロイメント
  • homeoffice Tektonパイプライン
  • quarkus-coffeeshop Tektonパイプライン
$ cat >source.env<<EOF
CLUSTER_DOMAIN_NAME=clustername.example.com
TOKEN=sha256~XXXXXXXXXXXX
ACM_WORKLOADS=y
AMQ_STREAMS=y
CONFIGURE_POSTGRES=y
HELM_DEPLOYMENT=n
DELETE_DEPLOYMENT=false
DEBUG=-v
EOF
$ podman run -it --env-file=./source.env quay.io/quarkuscoffeeshop/quarkuscoffeeshop-ansible:v4.12.1

オプション: helm デプロイメントのための名前空間を変更 デフォルトは quarkuscoffeeshop-demo

$ cat >source.env<<EOF
CLUSTER_DOMAIN_NAME=clustername.example.com
TOKEN=sha256~XXXXXXXXXXXX
ACM_WORKLOADS=n
AMQ_STREAMS=y
CONFIGURE_POSTGRES=y
MONGODB_OPERATOR=n
MONGODB=n
HELM_DEPLOYMENT=y
NAMESPACE=changeme
DELETE_DEPLOYMENT=false
DEBUG=-v
EOF
$ podman run -it --env-file=./source.env quay.io/quarkuscoffeeshop/quarkuscoffeeshop-ansible:v4.12.1

スクリーンショット

quarkuscoffeeshop トポロジー

quarkuscoffeeshop AMQ kafka トピック

http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com
quarkuscoffeeshop アプリケーション

使用法

  • デフォルトのウェブページ 5.0.1-SNAPSHOT
  • デフォルトのウェブページ v3.3.1
  • skip_quarkus_cafe_customermock を展開すると、自動的にイベントがquarkus cafeダッシュボードにプッシュされます。
  • 手動でイベントをAMQにプッシュしたい場合は、以下のコマンドを使用します。
export ENDPOINT="quarkuscoffeeshop-web-quarkus-cafe-demo.apps.ocp4.example.com"
curl --request POST http://${ENDPOINT}/order \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
-d '{
    "beverages": [
        {
            "item": "COFFEE_WITH_ROOM",
            "name": "Mickey"
        },
        {
            "item": "CAPPUCCINO",
            "name": "Minnie"
        }
    ],
    "kitchenOrders": [
        {
            "item": "CAKEPOP",
            "name": "Mickey"
        },
        {
            "item": "CROISSANT",
            "name": "Minnie"
        }
    ]
}'

開発者ノート

コードを開発し、修正するためには

  • OpenShift 4.10 以上のクラスターがインストールされていること
  • Ansibleが機械にインストールされていること
  • oc CLIをインストールする必要があります
  • Ansible community.kubernetesモジュールをインストールする必要があります ansible-galaxy collection install community.kubernetes
  • Helm バイナリをインストールする
  • Quarkus CoffeeShop 5.0.1-SNAPSHOTデプロイメントのためのPostges Operator
  • pip3

ロール変数

タイプ 説明 デフォルト値
deployment_method docker または s2i ビルド docker
skip_amq_install Red Hat AMQインストールをスキップする false
skip_mongodb_operator_install MongoDB Operatorインストールをスキップする false
single_mongodb_install シングルインスタンスmongoをスキップする false
skip_quarkuscoffeeshop_helm_install quarkuscoffeeshop helmチャートのインストールをスキップする false
openshift_token OpenShiftログイントークン 123456789
openshift_url OpenShiftターゲットURL https://master.example.com
project_namespace quarkus-cafeのOpenShiftプロジェクト名 quarkus-cafe-demo
insecure_skip_tls_verify 不正なTLS検証をスキップする true
default_owner テンプレートファイルのデフォルトオーナー root
default_group テンプレートファイルのデフォルトグループ root
delete_deployment quarkus-cafe-demoのデプロイメントとプロジェクトを削除する false
amqstartingCSV Red Hat AMQ CSVバージョン amqstreams.v1.6.1
mongodbstartingCSV MongoDB Ops Managerバージョン mongodb-enterprise.v1.8.0
config_location アプリケーションテンプレートのデフォルトの場所 "/tmp/"
version_barista デフォルトのコンテナバーリスタタグ 5.0.0-SNAPSHOT
version_counter デフォルトのコンテナカウンタータグ 5.0.1-SNAPSHOT
version_customermocker デフォルトのコンテナカスタマモッカータグ 3.0.1
version_kitchen デフォルトのコンテナキッチンタグ 5.0.0-SNAPSHOT
version_web デフォルトのコンテナウェブタグ 5.0.1-SNAPSHOT
helm_chart_version Qaurkus Cafe Helm Chartのバージョン 3.4.4
pgsql_username デフォルトのPostgresユーザー coffeeadmin
postgres_password デプロイメントに使用されるPostgresパスワード 変更する必要があります
pgsql_url デフォルトPostgres URL 'jdbc:postgresql://coffeeshopdb:5432/coffeeshopdb?currentSchema=coffeeshop'
storeid ウェブフロントエンド用ストアID RALEIGH
quarkus_log_level Quarkusコーヒーショップのログレベル INFO
quarkuscoffeeshop_log_level マイクロサービスのログレベル DEBUG

deploy-quarkuscoffeeshop-ansible.shシェルスクリプトをダウンロード

$ curl -OL https://raw.githubusercontent.com/quarkuscoffeeshop/quarkuscoffeeshop-ansible/master/files/deploy-quarkuscoffeeshop-ansible.sh
$ chmod +x deploy-quarkuscoffeeshop-ansible.sh
$ ./deploy-quarkuscoffeeshop-ansible.sh -d ocp4.example.com -t sha-123456789 -p 123456789 -s ATLANTA

コンテナイメージをビルドする

podman build -t  quarkuscoffeeshop-ansible:v0.0.2 -f Dockerfile

コンテナをテストする

podman run -it --env-file=./source.env quarkuscoffeeshop-ansible:v0.0.2 bash 
または
podman run -it --env-file=./source.env localhost/quarkuscoffeeshop-ansible:v0.0.2

古いコンテナを削除する

podman rm $(podman ps -a | grep Exited | awk '{print $1}')
podman rmi localhost/quarkuscoffeeshop-ansible:v0.0.2 

トラブルシューティング

不適切なインストール後にkafka CRDを強制削除する

oc get crds -o name | grep '.*\.strimzi\.io' | xargs -r -n 1 oc delete

やること

  • Ansible k8s – Kubernetes (K8s) オブジェクトの管理デプロイメント例

ライセンス

GPLv3

作成者情報

このロールは2020年に トシン・アキノショ によって作成されました。

プロジェクトについて

The quarkus-cafe-demo-role will deploy a event-driven demo application built with Quarkus, AMQ Streams (Kafka).

インストール
ansible-galaxy install tosin2013.quarkus_cafe_demo_role
ライセンス
Unknown
ダウンロード
115
所有者
Associate Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.