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 ändernStandard 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
http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com Beispiel
Verwendung
- Standard-Webseite 5.0.1-SNAPSHOT
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/ Dieser Endpunkt wird verwendet, um die Ereignisse zu sehen, die in den Cluster kommen
- Standard-Webseite v3.3.1
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/cafe Dieser Endpunkt wird verwendet, um die Ereignisse zu sehen, die in den Cluster kommen
- Wenn du
skip_quarkus_cafe_customermock
bereitstellst, werden automatisch Ereignisse an das Dashboard des Quarkus Cafés gesendet. - Wenn du manuell Ereignisse an AMQ senden möchtest, verwende den folgenden Befehl.
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.
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