tosin2013.quarkus_cafe_demo_role
Documents
Veuillez consulter le site Github Pages pour la documentation complète : quarkuscoffeeshop.github.io
Installation de QuarkusCoffeeshop
NOTE : Ansible doit être installé guide d'installation
Le rôle Ansible QuarkusCoffeeshop effectue une installation de base incluant les microservices pour un café, l'installation de la base de données Crunchy PostgreSQL, et AMQ Streams (Kafka).
Le rôle QuarkusCoffeeshop déploiera une application de démonstration orientée événements construite avec Quarkus, AMQ Streams (Kafka), et MongoDB. L’application est déployée sur OpenShift (Kubernetes). Le code source de l’application quarkuscoffeeshop peut être trouvé ici.
Exigences
- Cluster OpenShift 4.12 ou supérieur installé
- Docker ou Podman
Actuellement testé sur
- OpenShift 4.12.2
- OpenShift Pipelines : 1.9.0
- AMQ Streams : 2.3.0-0odm
- Opérateur Postgres : v5.3.0
- OpenShift Quay : v3.8.1
- OpenShift GitOps : v1.7.1
Démarrage rapide
Définir les variables d'environnement pour un déploiement standard
Cette commande déploiera l'application sur un cluster unique avec les services suivants en dessous.
- AMQ Streams
- Configuration de l'Opérateur Postgres
- Déploiement 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
Définir les variables d'environnement pour ACM WORKLOADS
- Serveur Gogs
- OpenShift Pipelines
- OpenShift GitOps
- Quay.io
- AMQ Streams
- Déploiement du modèle Postgres
- Pipelines Tekton du bureau à domicile
- Pipelines Tekton 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
Optionnel : Changer l'espace de noms pour les déploiements Helmpar défaut c'est 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
Captures d'écran
http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com exemple
Utilisation
- Page web par défaut 5.0.1-SNAPSHOT
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/ ce point de terminaison est utilisé pour voir les événements entrant dans le cluster
- Page web par défaut v3.3.1
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/cafe ce point de terminaison est utilisé pour voir les événements entrant dans le cluster
- Si vous déployez skip_quarkus_cafe_customermock, cela enverra automatiquement des événements au tableau de bord quarkus cafe.
- Si vous souhaitez envoyer manuellement des événements à AMQ, utilisez la commande ci-dessous.
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"
}
]
}'
Notes pour les développeurs
Pour développer et modifier le code
- Cluster OpenShift 4.10 ou supérieur installé
- Ansible doit être installé sur la machine
- L'outil de ligne de commande oc doit être installé
- Le module Ansible community.kubernetes doit être installé
ansible-galaxy collection install community.kubernetes
- Installer le binaire Helm
- Opérateur Postgres pour les déploiements Quarkus CoffeeShop 5.0.1-SNAPSHOT
- pip3
Variables de rôle
Type | Description | Valeur par défaut |
---|---|---|
méthode_de_deploiement | docker ou construction s2i | docker |
skip_amq_install | Passer l'installation de Red Hat AMQ | faux |
skip_mongodb_operator_install | Passer l'installation de l'opérateur MongoDB | faux |
single_mongodb_install | Passer l'installation d'une instance mongodb unique | faux |
skip_quarkuscoffeeshop_helm_install | Passer l'installation du graphique Helm quarkuscoffeeshop | faux |
openshift_token | Jeton de connexion OpenShift | 123456789 |
openshift_url | URL cible OpenShift | https://master.example.com |
project_namespace | Nom du projet OpenShift pour le quarkus-cafe | quarkus-cafe-demo |
insecure_skip_tls_verify | Ignorer la vérification tls non sécurisée | vrai |
default_owner | Propriétaire par défaut des fichiers modèles. | root |
default_group | Groupe par défaut des fichiers modèles. | root |
delete_deployment | supprimer le déploiement et le projet pour quarkus-cafe-demo | faux |
amqstartingCSV | Version csv de Red Hat AMQ | amqstreams.v1.6.1 |
mongodbstartingCSV | Version de MongoDB Ops Manager | mongodb-enterprise.v1.8.0 |
config_location | emplacement par défaut pour les modèles d'application | "/tmp/" |
version_barista | Tag de conteneur barista par défaut | 5.0.0-SNAPSHOT |
version_counter | Tag de conteneur counter par défaut | 5.0.1-SNAPSHOT |
version_customermocker | Tag de conteneur customermocker par défaut | 3.0.1 |
version_kitchen | Tag de conteneur kitchen par défaut | 5.0.0-SNAPSHOT |
version_web | Tag de conteneur web par défaut | 5.0.1-SNAPSHOT |
helm_chart_version | Version du graphique Helm Qaurkus Cafe | 3.4.4 |
pgsql_username | Utilisateur par défaut de postgress | coffeshopadmin |
postgres_password | ce mot de passe postgres sera utilisé lors du déploiement | doit être changé |
pgsql_url | URL par défaut de postgres | 'jdbc:postgresql://coffeeshopdb:5432/coffeeshopdb?currentSchema=coffeeshop' |
storeid | ID du magasin pour le front-end web | RALEIGH |
quarkus_log_level | Niveau de log de Quarkus coffee shop | INFO |
quarkuscoffeeshop_log_level | Niveau de log de microservice | DEBUG |
Télécharger le script 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
Pour construire l'image du conteneur
podman build -t quarkuscoffeeshop-ansible:v0.0.2 -f Dockerfile
Tester le conteneur
podman run -it --env-file=./source.env quarkuscoffeeshop-ansible:v0.0.2 bash ou
podman run -it --env-file=./source.env localhost/quarkuscoffeeshop-ansible:v0.0.2
Supprimer les anciens conteneurs
podman rm $(podman ps -a | grep Exited | awk '{print $1}')
podman rmi localhost/quarkuscoffeeshop-ansible:v0.0.2
Dépannage
Forcer la suppression des crds kafka après une mauvaise installation
oc get crds -o name | grep '.*\.strimzi\.io' | xargs -r -n 1 oc delete
À faire
- Ansible k8s – Exemple de gestion du déploiement des objets Kubernetes (K8s)
Licences
GPLv3
Informations sur l'auteur
Ce rôle a été créé en 2020 par 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