tosin2013.quarkus_cafe_demo_role
文档
请查看Github Pages网站以获取完整的文档:quarkuscoffeeshop.github.io
QuarkusCoffeeshop 安装
注意: 必须安装Ansible Ansible安装指南
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
- PostgreSQL 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
- PostgreSQL模板部署
- 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
截图
http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com 示例
使用
- 默认网页 5.0.1-SNAPSHOT
- 默认网页 v3.3.1
- 如果您部署了skip_quarkus_cafe_customermock,这将自动将事件推送到quarkus咖啡仪表盘。
- 如果您想手动将事件推送到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 二进制文件
- Postgres Operator 用于Quarkus CoffeeShop 5.0.1-SNAPSHOT 部署
- pip3
角色变量
类型 | 描述 | 默认值 |
---|---|---|
deployment_method | docker 或 s2i 构建 | docker |
skip_amq_install | 跳过Red Hat AMQ安装 | false |
skip_mongodb_operator_install | 跳过MongoDB Operator安装 | false |
single_mongodb_install | 跳过单实例mongodb | 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 | 默认容器barista标签 | 5.0.0-SNAPSHOT |
version_counter | 默认容器counter标签 | 5.0.1-SNAPSHOT |
version_customermocker | 默认容器customermocker标签 | 3.0.1 |
version_kitchen | 默认容器kitchen标签 | 5.0.0-SNAPSHOT |
version_web | 默认容器web标签 | 5.0.1-SNAPSHOT |
helm_chart_version | Quarkus Cafe Helm图表版本 | 3.4.4 |
pgsql_username | 默认postgress用户 | coffeshopadmin |
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 crds
oc get crds -o name | grep '.*\.strimzi\.io' | xargs -r -n 1 oc delete
待办事项
- Ansible k8s – 管理Kubernetes (K8s) 对象的示例部署
许可证
GPLv3
作者信息
该角色于2020年由Tosin Akinosho创建
关于项目
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.