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 Helm
par 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

topologie quarkuscoffeeshop

sujets kafka AMQ quarkuscoffeeshop

http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com exemple application quarkuscoffeeshop

Utilisation

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

À propos du projet

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

Installer
ansible-galaxy install tosin2013.quarkus_cafe_demo_role
Licence
Unknown
Téléchargements
115
Propriétaire
Associate Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.