tosin2013.quarkus_cafe_demo_role

Documentos

Por favor, consulta el sitio de GitHub Pages para la documentación completa: quarkuscoffeeshop.github.io

Instalación de QuarkusCoffeeshop

NOTA: Debes tener Ansible instalado. Consulta la guía de instalación en https://docs.ansible.com/ansible/latest/installation_guide/index.html

El rol de Ansible de QuarkusCoffeeshop realiza una instalación básica que incluye los microservicios para una cafetería, la instalación de la base de datos Crunchy PostgreSQL, y AMQ Streams (Kafka).

El rol de QuarkusCoffeeshop desplegará una aplicación de demostración basada en eventos, construida con Quarkus, AMQ Streams (Kafka) y MongoDB. La aplicación se despliega en OpenShift (Kubernetes). El código fuente para la aplicación quarkuscoffeeshop se puede encontrar aquí.

Requisitos

  • Cluster de OpenShift 4.12 o superior instalado
  • Docker o Podman

Actualmente probado en

  • OpenShift 4.12.2
  • OpenShift Pipelines: 1.9.0
  • AMQ Streams: 2.3.0-0odm
  • Operador de Postgres: v5.3.0
  • OpenShift Quay: v3.8.1
  • OpenShift GitOps: v1.7.1

Inicio Rápido

Configurar variables de entorno para la implementación estándar

Este comando desplegará la aplicación en un solo cluster con los siguientes servicios:

  • AMQ Streams
  • Configuración del Operador de Postgres
  • Despliegue de helm de 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

Configurar variables de entorno para ACM WORKLOADS

  • Servidor Gogs
  • OpenShift Pipelines
  • OpenShift GitOps
  • Quay.io
  • AMQ Streams
  • Despliegue de plantilla de Postgres
  • Pipelines de Tekton de homeoffice
  • Pipelines de Tekton de 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

Opcional: Cambiar el espacio de nombres para los despliegues de helm
el valor predeterminado es 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

Capturas de Pantalla

topología de quarkuscoffeeshop

temas de kafka en quarkuscoffeeshop AMQ

http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com ejemplo aplicación quarkuscoffeeshop

Uso

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

Notas para Desarrolladores

Para desarrollar y modificar código

  • Cluster de OpenShift 4.10 o superior instalado
  • Ansible debe estar instalado en la máquina
  • Debes tener instalado oc cli
  • Se debe instalar el módulo community.kubernetes de Ansible ansible-galaxy collection install community.kubernetes
  • Instalar el binario de Helm
  • Operador de Postgres para los despliegues de Quarkus CoffeeShop 5.0.1-SNAPSHOT
  • pip3

Variables de Rol

Tipo Descripción Valor Predeterminado
deployment_method construcción de docker o s2i docker
skip_amq_install Omitir la instalación de Red Hat AMQ false
skip_mongodb_operator_install Omitir la instalación del operador de MongoDB false
single_mongodb_install Omitir la instalación de una sola instancia de mongodb false
skip_quarkuscoffeeshop_helm_install Omitir la instalación del gráfico helm de quarkuscoffeeshop false
openshift_token Token de inicio de sesión de OpenShift 123456789
openshift_url URL de destino de OpenShift https://master.example.com
project_namespace Nombre del proyecto de OpenShift para el quarkus-cafe quarkus-cafe-demo
insecure_skip_tls_verify Omitir la verificación de tls insegura true
default_owner Propietario predeterminado de los archivos de plantilla. root
default_group Grupo predeterminado de los archivos de plantilla. root
delete_deployment eliminar el despliegue y el proyecto para quarkus-cafe-demo false
amqstartingCSV Versión csv de Red Hat AMQ amqstreams.v1.6.1
mongodbstartingCSV Versión del Gestor de Operaciones de MongoDB mongodb-enterprise.v1.8.0
config_location ubicación predeterminada para las plantillas de la aplicación "/tmp/"
version_barista Etiqueta del contenedor barista predeterminada 5.0.0-SNAPSHOT
version_counter Etiqueta del contenedor counter predeterminada 5.0.1-SNAPSHOT
version_customermocker Etiqueta del contenedor customermocker predeterminada 3.0.1
version_kitchen Etiqueta del contenedor kitchen predeterminada 5.0.0-SNAPSHOT
version_web Etiqueta del contenedor web predeterminada 5.0.1-SNAPSHOT
helm_chart_version Versión del gráfico Helm de Qaurkus Cafe 3.4.4
pgsql_username Usuario predeterminado de postgress coffeshopadmin
postgres_password esta es la contraseña de postgress que se usará en el despliegue debe ser cambiada
pgsql_url URL predeterminada de postgres 'jdbc:postgresql://coffeeshopdb:5432/coffeeshopdb?currentSchema=coffeeshop'
storeid ID de la tienda para la interfaz web RALEIGH
quarkus_log_level Nivel de log de quarkus coffee shop INFO
quarkuscoffeeshop_log_level Nivel de log de microservicio DEBUG

Descargar el script de 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

Para construir la imagen del contenedor

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

Probar el Contenedor

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

Eliminar contenedores antiguos

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

Solución de Problemas

Elimina de forma forzada los kafka crds después de una mala instalación

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

Por Hacer

  • Ansible k8s – Ejemplo de gestión de implementación de objetos de Kubernetes (K8s)

Licencia

GPLv3

Información del Autor

Este rol fue creado en 2020 por Tosin Akinosho

Acerca del proyecto

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

Instalar
ansible-galaxy install tosin2013.quarkus_cafe_demo_role
Licencia
Unknown
Descargas
115
Propietario
Associate Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.