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
Скриншоты
http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com пример
Использование
- Стандартная веб-страница 5.0.1-SNAPSHOT
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/ этот эндпоинт используется для просмотра событий, поступающих в кластер
- Стандартная веб-страница v3.3.1
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/cafe этот эндпоинт используется для просмотра событий, поступающих в кластер
- Если вы развернете 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