tosin2013.quarkus_cafe_demo_role
Dokumentacja
Proszę zapoznać się z pełną dokumentacją na stronie Github Pages: quarkuscoffeeshop.github.io
Instalacja QuarkusCoffeeshop
UWAGA: Ansible musi być zainstalowany https://docs.ansible.com/ansible/latest/installation_guide/index.html
Rola Ansible QuarkusCoffeeshop wykonuje podstawową instalację, która obejmuje mikroserwisy kawiarni, instalację bazy danych Crunchy PostgreSQL oraz AMQ Streams (Kafka).
Rola QuarkusCoffeeshop wdroży aplikację demo opartą na zdarzeniach, zbudowaną przy użyciu Quarkus, AMQ Streams (Kafka) i MongoDB. Aplikacja jest wdrażana w OpenShift (Kubernetes). Kod źródłowy aplikacji quarkuscoffeeshop oraz dokumentacja wsparcia można znaleźć tutaj.
Wymagania
- Klaster OpenShift 4.12 i wyżej
- Docker lub podman
Obecnie przetestowane na
- OpenShift 4.12.2
- OpenShift Pipelines: 1.9.0
- AMQ Streams: 2.3.0-0odm
- Operator PostgreSQL: v5.3.0
- OpenShift Quay: v3.8.1
- OpenShift GitOps: v1.7.1
Szybki Start
Ustaw zmienne środowiskowe do standardowego wdrożenia
To polecenie wdroży aplikację w jednym klastrze z następującymi usługami:
- AMQ Streams
- Konfiguracja Operatora PostgreSQL
- Wdrożenie Helm quarkus coffeeshop
$ 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
Ustaw zmienne środowiskowe dla ACM WORKLOADS
- Gogs server
- OpenShift Pipelines
- OpenShift GitOps
- Quay.io
- AMQ Streams
- Wdrożenie wzorca PostgreSQL
- Tekton pipelines homeoffice
- Tekton pipelines 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
Opcjonalnie: Zmień przestrzeń nazw dla wdrożeń helmdomyślnie to 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
Zrzuty Ekranu
http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com przykład
Użytkowanie
- Domyślna strona internetowa 5.0.1-SNAPSHOT
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/ ten punkt końcowy jest używany do wyświetlania zdarzeń przychodzących do klastra
- Domyślna strona internetowa v3.3.1
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/cafe ten punkt końcowy jest używany do wyświetlania zdarzeń przychodzących do klastra
- Jeśli wdrożysz skip_quarkus_cafe_customermock, to automatycznie wyśle zdarzenia do pulpitu nawigacyjnego quarkus cafe.
- Jeśli chcesz ręcznie wysłać zdarzenia do AMQ, użyj poniższego polecenia.
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"
}
]
}'
Notatki dla programistów
Aby rozwijać i modyfikować kod
- Klaster OpenShift 4.10 i wyżej
- Ansible powinien być zainstalowany na maszynie
- Musi być zainstalowane narzędzie oc cli
- Musi być zainstalowany moduł Ansible community.kubernetes
ansible-galaxy collection install community.kubernetes
- Zainstaluj Helm Binary
- Operator PostgreSQL dla wdrożeń Quarkus CoffeeShop 5.0.1-SNAPSHOT
- pip3
Zmienne Roli
Typ | Opis | Wartość domyślna |
---|---|---|
deployment_method | budowa docker lub s2i | docker |
skip_amq_install | Pomijaj instalację Red Hat AMQ | false |
skip_mongodb_operator_install | Pomijaj instalację Operatora MongoDB | false |
single_mongodb_install | Pomijaj jedną instancję mongodb | false |
skip_quarkuscoffeeshop_helm_install | Pomijaj instalację wykresu helm quarkuscoffeeshop | false |
openshift_token | Token logowania OpenShift | 123456789 |
openshift_url | Adres URL docelowy OpenShift | https://master.example.com |
project_namespace | Nazwa projektu OpenShift dla quarkus-cafe | quarkus-cafe-demo |
insecure_skip_tls_verify | Pomijaj niebezpieczne weryfikacje tls | true |
default_owner | Domyślny właściciel plików szablonów. | root |
default_group | Domyślna grupa plików szablonów. | root |
delete_deployment | usuń wdrożenie i projekt dla quarkus-cafe-demo | false |
amqstartingCSV | Wersja Red Hat AMQ csv | amqstreams.v1.6.1 |
mongodbstartingCSV | Wersja MongoDB Ops Manager | mongodb-enterprise.v1.8.0 |
config_location | Domyślna lokalizacja plików szablonów aplikacji | "/tmp/" |
version_barista | Domyślny tag kontenera baristy | 5.0.0-SNAPSHOT |
version_counter | Domyślny tag kontenera licznika | 5.0.1-SNAPSHOT |
version_customermocker | Domyślny tag kontenera symulatora klienta | 3.0.1 |
version_kitchen | Domyślny tag kontenera kuchni | 5.0.0-SNAPSHOT |
version_web | Domyślny tag kontenera web | 5.0.1-SNAPSHOT |
helm_chart_version | Wersja wykresu Helm Qaurkus Cafe | 3.4.4 |
pgsql_username | Domyślny użytkownik postgres | coffeshopadmin |
postgres_password | hasło postgres, które będzie używane w wdrożeniu | musi być zmienione |
pgsql_url | domyślny adres URL postgres | 'jdbc:postgresql://coffeeshopdb:5432/coffeeshopdb?currentSchema=coffeeshop' |
storeid | Identyfikator sklepu dla frontend | RALEIGH |
quarkus_log_level | Poziom logowania kawiarni quarkus | INFO |
quarkuscoffeeshop_log_level | Poziom logowania mikroserwisu | DEBUG |
Pobierz skrypt shell 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
Aby zbudować obraz kontenera
podman build -t quarkuscoffeeshop-ansible:v0.0.2 -f Dockerfile
Testuj Kontener
podman run -it --env-file=./source.env quarkuscoffeeshop-ansible:v0.0.2 bash or
podman run -it --env-file=./source.env localhost/quarkuscoffeeshop-ansible:v0.0.2
Usuń stare kontenery
podman rm $(podman ps -a | grep Exited | awk '{print $1}')
podman rmi localhost/quarkuscoffeeshop-ansible:v0.0.2
Rozwiązywanie problemów
Wymusuć usunięcie kafka crd po nieudanej instalacji
oc get crds -o name | grep '.*\.strimzi\.io' | xargs -r -n 1 oc delete
Do zrobienia
- Ansible k8s – Przykład zarządzania wdrożeniem obiektów Kubernetes (K8s)
Licencja
GPLv3
Informacje o autorze
Ta rola została stworzona w 2020 roku przez 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