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ń helm
domyś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

topologia quarkuscoffeeshop

tematy AMQ kafka quarkuscoffeeshop

http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com przykład aplikacja quarkuscoffeeshop

Użytkowanie

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

O projekcie

The quarkus-cafe-demo-role will deploy a event-driven demo application built with Quarkus, AMQ Streams (Kafka).

Zainstaluj
ansible-galaxy install tosin2013.quarkus_cafe_demo_role
Licencja
Unknown
Pobrania
115
Właściciel
Associate Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.