quarkus_cafe_demo_role

Документация

Пожалуйста, посетите сайт Github Pages для полной документации: quarkuscoffeeshop.github.io

Установка QuarkusCoffeeshop

ПРИМЕЧАНИЕ: Ansible должен быть установлен инструкция по установке

Роль Ansible QuarkusCoffeeshop выполняет базовую установку, которая включает микросервисы для кофейни, установку Crunchy PostgreSQL DB и 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
  • Тектоны для домашнего офиса
  • Тектоны quarkus-coffeeshop
$ 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

топики 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
  • В сообществе Ansible должен быть установлен модуль kubernetes ansible-galaxy collection install community.kubernetes
  • Установите бинарный файл Helm
  • Postges Operator для развертываний Quarkus CoffeeShop 5.0.1-SNAPSHOT
  • pip3

Переменные роли

Тип Описание Значение по умолчанию
deployment_method метод развертывания: docker или s2i build docker
skip_amq_install Пропустить установку Red Hat AMQ false
skip_mongodb_operator_install Пропустить установку MongoDB Operator false
single_mongodb_install Пропустить установку отдельного экземпляра mongodb false
skip_quarkuscoffeeshop_helm_install Пропустить установку helm chart quarkuscoffeeshop false
openshift_token Токен входа в OpenShift 123456789
openshift_url URL для OpenShift https://master.example.com
project_namespace Имя проекта OpenShift для quarkus-cafe 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 Тег контейнера по умолчанию для customer mocker 3.0.1
version_kitchen Тег контейнера по умолчанию для кухни 5.0.0-SNAPSHOT
version_web Тег контейнера по умолчанию для веба 5.0.1-SNAPSHOT
helm_chart_version Версия чартов Helm для Qaurkus Cafe 3.4.4
pgsql_username Имя пользователя по умолчанию для postgress coffeshopadmin
postgres_password Это пароль postgress для развертывания должен быть изменен
pgsql_url URL по умолчанию для PostgreSQL 'jdbc:postgresql://coffeeshopdb:5432/coffeeshopdb?currentSchema=coffeeshop'
storeid Идентификатор магазина для веб-фронтенда 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 году Тосином Акиношом

О проекте

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
Загрузки
106
Владелец
Associate Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.