tosin2013.quarkus_cafe_demo_role

Dokumentation

Bitte besuche die Github Pages Seite für die komplette Dokumentation: quarkuscoffeeshop.github.io

QuarkusCoffeeshop Installation

HINWEIS: Ansible muss installiert sein. Siehe https://docs.ansible.com/ansible/latest/installation_guide/index.html

Die QuarkusCoffeeshop Ansible-Rolle führt eine grundlegende Installation durch, die die Microservices für ein Café, die Installation der Crunchy PostgreSQL-Datenbank und AMQ Streams (Kafka) umfasst.

Die QuarkusCoffeeshop-Rolle wird eine ereignisgesteuerte Demoversion bereitstellen, die mit Quarkus, AMQ Streams (Kafka) und MongoDB erstellt wurde. Die Anwendung wird auf OpenShift (Kubernetes) bereitgestellt. Der Quellcode für die Anwendung quarkuscoffeeshop und die Unterstützungsdokumentation findet sich hier.

Anforderungen

  • Installierter OpenShift Cluster 4.12 oder höher
  • Docker oder Podman

Derzeit getestet auf

  • 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

Schnellstart

Umgebungsvariablen für die Standardbereitstellung setzen

Dieser Befehl wird die Anwendung auf einem einzelnen Cluster mit den folgenden Diensten bereitstellen:

  • AMQ Streams
  • Konfiguration des Postgres Operators
  • Helm-Bereitstellung für 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

Umgebungsvariablen für ACM WORKLOADS setzen

  • Gogs-Server
  • OpenShift Pipelines
  • OpenShift GitOps
  • Quay.io
  • AMQ Streams
  • Bereitstellung des Postgres Templates
  • Homeoffice Tekton-Pipelines
  • Quarkus-Coffeeshop Tekton-Pipelines
$ 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

Optional: Namespace für Helm-Bereitstellungen ändern
Standard ist 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

Screenshots

quarkuscoffeeshop Topologie

quarkuscoffeeshop AMQ Kafka Themen

http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com Beispiel quarkuscoffeeshop Anwendung

Verwendung

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"
        }
    ]
}'

Entwicklerhinweise

Um zu entwickeln und den Code zu modifizieren

  • Installierter OpenShift Cluster 4.10 oder höher
  • Ansible sollte auf dem Computer installiert sein
  • OC CLI muss installiert sein
  • Das Ansible Community Kubernetes Modul muss installiert sein: ansible-galaxy collection install community.kubernetes
  • Installiere das Helm Binary
  • Postgres Operator für Quarkus Coffeeshop Bereitstellungen 5.0.1-SNAPSHOT
  • pip3

Rollendaten

Typ Beschreibung Standardwert
deployment_method Docker oder S2I-Build docker
skip_amq_install AMQ-Installation überspringen false
skip_mongodb_operator_install MongoDB-Operator-Installation überspringen false
single_mongodb_install Single-Instanz-MongoDB überspringen false
skip_quarkuscoffeeshop_helm_install Quarkuscoffeeshop Helm-Diagramm-Installation überspringen false
openshift_token OpenShift-Login-Token 123456789
openshift_url OpenShift Ziel-URL https://master.example.com
project_namespace OpenShift Projektname für das Quarkus-Café quarkus-cafe-demo
insecure_skip_tls_verify Unsicheren TLS-Verifizierung überspringen true
default_owner Standardbesitzer der Vorlagendateien root
default_group Standardgruppe der Vorlagendateien root
delete_deployment Lösche die Bereitstellung und das Projekt für quarkus-cafe-demo false
amqstartingCSV Red Hat AMQ CSV-Version amqstreams.v1.6.1
mongodbstartingCSV MongoDB Ops Manager-Version mongodb-enterprise.v1.8.0
config_location Standardstandort für Anwendungsvorlagen "/tmp/"
version_barista Standardcontainer-Barista-Tag 5.0.0-SNAPSHOT
version_counter Standardcontainer-Zähler-Tag 5.0.1-SNAPSHOT
version_customermocker Standardcontainer-Kundenmocker-Tag 3.0.1
version_kitchen Standardcontainer-Küchen-Tag 5.0.0-SNAPSHOT
version_web Standardcontainer-Web-Tag 5.0.1-SNAPSHOT
helm_chart_version Version des Quarkus-Cafe Helm-Diagramms 3.4.4
pgsql_username Standard-Postgres-Benutzer coffeshopadmin
postgres_password Dies ist das Postgres-Passwort, das bei der Bereitstellung verwendet wird muss geändert werden
pgsql_url Standards-Postgres-URL 'jdbc:postgresql://coffeeshopdb:5432/coffeeshopdb?currentSchema=coffeeshop'
storeid Store-ID für das Webfrontend RALEIGH
quarkus_log_level Quarkus Coffeeshop-Protokollebene INFO
quarkuscoffeeshop_log_level Microservice-Protokollebene DEBUG

Lade das Shell-Skript deploy-quarkuscoffeeshop-ansible.sh herunter

$ 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

Um ein Container-Image zu erstellen

podman build -t quarkuscoffeeshop-ansible:v0.0.2 -f Dockerfile

Container testen

podman run -it --env-file=./source.env quarkuscoffeeshop-ansible:v0.0.2 bash oder
podman run -it --env-file=./source.env localhost/quarkuscoffeeshop-ansible:v0.0.2

Alte Container löschen

podman rm $(podman ps -a | grep Exited | awk '{print $1}')
podman rmi localhost/quarkuscoffeeshop-ansible:v0.0.2 

Fehlerbehebung

Zwingendes Löschen von Kafka CRDs nach fehlerhafter Installation

oc get crds -o name | grep '.*\.strimzi\.io' | xargs -r -n 1 oc delete

To-Do

  • Ansible K8s – Beispiel für die Verwaltung der Bereitstellung von Kubernetes (K8s) Objekten

Lizenz

GPLv3

Autoreninformation

Diese Rolle wurde 2020 von Tosin Akinosho erstellt.

Über das Projekt

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

Installieren
ansible-galaxy install tosin2013.quarkus_cafe_demo_role
GitHub Repository
Lizenz
Unknown
Downloads
115
Besitzer
Associate Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.