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

截图

quarkuscoffeeshop 拓扑图

quarkuscoffeeshop AMQ kafka主题

http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com 示例 quarkuscoffeeshop 应用程序

使用

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.