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 helmel 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
http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com ejemplo
Uso
- Página web predeterminada 5.0.1-SNAPSHOT
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/ Este endpoint se utiliza para ver los eventos que llegan al cluster.
- Página web predeterminada v3.3.1
- http://quarkuscoffeeshop-web-quarkus-cafe-demo.apps.example.com/cafe Este endpoint se utiliza para ver los eventos que llegan al cluster.
- Si despliegas skip_quarkus_cafe_customermock, esto enviará automáticamente eventos al panel de control del café quarkus.
- Si deseas enviar eventos manualmente a AMQ, usa el siguiente comando.
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
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